From 92841964b28dc94cd81572b807359ec77549e234 Mon Sep 17 00:00:00 2001 From: Stefan Harmuth Date: Thu, 24 Dec 2020 07:05:26 +0100 Subject: [PATCH] day24 --- day24.py | 68 +++++++ inputs/24 | 535 +++++++++++++++++++++++++++++++++++++++++++++++++ inputs/24_test | 20 ++ 3 files changed, 623 insertions(+) create mode 100644 day24.py create mode 100644 inputs/24 create mode 100644 inputs/24_test diff --git a/day24.py b/day24.py new file mode 100644 index 0000000..ec852f0 --- /dev/null +++ b/day24.py @@ -0,0 +1,68 @@ +import aoclib + +DAY = 24 +TEST_SOLUTION_PART1 = 10 +TEST_SOLUTION_PART2 = 2208 + + +def getTileGrid(from_input): + grid = {} + for line in from_input: + x = 0 + y = 0 + while len(line) > 0: + if line[0] == 'e': + x += 1 + line = line[1:] + elif line[0] == 'w': + x -= 1 + line = line[1:] + elif line[0] == 'n': + y -= 1 + if line[1] == 'e': + x += 1 + line = line[2:] + elif line[0] == 's': + y += 1 + if line[1] == 'w': + x -= 1 + line = line[2:] + + if (x, y) in grid: + del grid[(x, y)] + else: + grid[(x, y)] = True + + return grid + + +def part1(test_mode=False): + my_input = aoclib.getInputAsArray(day=DAY, test=test_mode) + + grid = getTileGrid(my_input) + + return len(grid) + + +def part2(test_mode=False): + my_input = aoclib.getInputAsArray(day=DAY, test=test_mode) + grid = getTileGrid(my_input) + + for i in range(100): + black_neighbour_count = {} + for coord in grid: + x, y = coord + for nCoord in [(x-1, y), (x-1, y+1), (x, y-1), (x, y+1), (x+1, y-1), (x+1, y)]: + black_neighbour_count[nCoord] = black_neighbour_count.get(nCoord, 0) + 1 + + for nCoord, nCount in black_neighbour_count.items(): + if nCoord in grid and nCount > 2: + del grid[nCoord] + elif nCoord not in grid and nCount == 2: + grid[nCoord] = True + + for coord in grid.copy(): + if coord not in black_neighbour_count: + del grid[coord] + + return len(grid) diff --git a/inputs/24 b/inputs/24 new file mode 100644 index 0000000..a65f7ae --- /dev/null +++ b/inputs/24 @@ -0,0 +1,535 @@ +swsenenwneswnewseswwseswnwsweeswnw +esweeeeneeeneeeweeeenenenee +ewewsewswnewnwnewwwwsew +nwnwnwnwnenwwnwsenwnwnwnwnwnwnw +nwswseswneswseswswneswswseneseswswsenwswse +swswswneswswswswwneseswwswsw +newnwwnwnenenenenwsweenenwnenwnenese +senwsewseneneseneenenwwneneeswnewsw +eeeeneweeeseeeeeenewneswe +wnwswwewwwsewnwnwwnwnwwwnwnwnww +nenwnwnwnesenwwnwnwwneswnwnenesweneenwnw +nwwnwwwwenwwswnwwwwwewsesew +swnwswwswswewswseswnwne +wswnewswnwwwwenewsewwwwneswe +nwnwnenenewneneneneneenenesenwneswneswse +nwewsenwnwneseswwwwwwswwswwwwe +nesenwseneswseswnwneseseseseseswnwse +wnesweseswenwnenwnweseeseseeswnwse +swswnenenenenewneneeeneneeneneenenene +seseseseeweseeesee +wwwwwwwwwnewnwwwswww +sesenwesenwseeseseseewswneseseesesw +wnewwwsewnwwnwnwewnwswnwwwwnwe +nwnwnenwnwneneenewswnwnenwswnwnesenwsw +eeswwneeneneeneeneeeeesw +seneenesewneeneswwnenenweeenenewwe +seswseswsenwswswseswswswswenwswsesesw +nwnwnenwnenwnenwnwnwnenwswnenwwwnwese +wnwwwwwnwwwnwwnwnwseneenwnwnww +ewnwnwnwnwnwnenwnwnwnenenwsenenwnwnene +neneweeeeneeneesweseswswneseswse +seswseeneswswswseseewsewnwswswwnwne +swwneneneweseswnenwneeneneeeeeeee +swwwwwwwwwwwwswswwswswnesew +eewenwseeeeeweeeeneeese +neneneneneeneswneeenee +sewnwnwwswnwseenwwnenenwwnw +swsweswswswswsewseneseswswsesweswnwsw +nenewewwwwwwwwwnewwswsesewww +enwsweneseseeesese +swneseseseneeseesenwwseneswseseseseew +nwswswneeeewneseenwnwnesewwswnwesw +nenenwneenwneneneneneneneneneswenewne +nwneneseeenwnwnwneneneswneswwnenwnwnenw +neseenenwneeneneneeeeneene +sesesewseseseswneseesesesesenewseswsese +senwnewseneneeeneeeeeenesenwnene +eeweneneeenweeeseesweeeee +esesenwswnwseewseswseeeseswenenwse +neeneeeseswseeesweneeseeesweee +swweswnwneswswwswswneswswswswswsw +wwswwwnwnwnenewnwenwswnwsesenwnwe +neseneenwneeeeeneneeeewneeene +swsenwsesesweswsewswswswsenwneseswsesw +wewwwwwnwwwwwnwwwnw +swseweeenwswneseseesenese +senwsesesesesesesewseesewe +sewnwnwnweswnwnwsenwnwnwnwsenwnwnwnwnw +swswswswswswswswswseswswswswswswwswnesw +wswnwnwsewwnwewwewwnesewwne +enenenwnewnenwnenenwwneswneseswnenwsenwnw +seseseswswseswsewnwsewswswseeseeswse +nwseswnweswnwneseweswsesweseseswne +seseswwnwswneneseneneseeseesenwswnwww +wswswwwwswwneswseswnwswswsew +senwnwwnwnwesewswnewswwsenwwnwnwwnw +swsewneswswswswwswswwswswswsw +eneseeeswneswneeseesenwewsenwewnwnw +neneneeeneweneneeswe +neeeseeenwnweewswnewneseneenenee +senewesesenweseseeesewsesesesesesee +eseeeseseseenwseeneseseeewse +nwnwseseenwenwnenwwswnwnwnwwnwnwnwnwnw +senewweseeenwsesesenesewsesesesee +enenenwswnenewswenwnwneenwwnwswnenene +eswseseneswsenwswseseseswsesesewsenwsesee +wnwneswneseneneneneeneneswenenenenewne +seswneewsenesesewnwwswnesewswesenwne +eswwesenwwenwnwnweseseeeeeese +neeneswneeswnenesenwnwneswnenwneneswsene +swswneseseswswswswwewnwsenwesweneswnwe +nwenwwwnwnwnenwnenwnwnwnwnwsweneswe +seseneneeseseeeeswsenwwwesesenwe +sweswseswwnwsesesewseseseseswseneswnene +seswseseseseseswwseswsenesesesesesesese +sesesenwswswseswswsw +senwseeeeseseeseseseenwewswesee +wwsenwewwnewwswwwwwswwwwwne +nwnwnwneswnwnwnwsenwwwnwwnwnwnwenwse +swwwswswswwwsewnenwswwswwswseww +enweenesesesenewnwnwwswswswseseese +swnenenenenenenenwnenesenewnenwnenenwnene +enenesweeeeseneeneeeneeneeew +wnweseeswnwwenwnenwnwnwwenwnwsenwwnw +neswswswseswswswwswnesw +neswseeneseswsewseseswseseswswwswswse +seeneswsesenweeeseeseswsewenesee +wewewwnenesewsenwwnenwnwseswsww +nwnwsesewnwseeeswnwnwseewseenw +nwwwwwnwwnwnwwwwnwsenwwwwsew +eenwneseeeneeneenenwseeeeeee +nwenwnwnenwswnwneesenwwwnwnwnwsenwnw +swswswswseswswswswwseswswswswswswswswne +swwwwwwwwwwnwwewwwnwwww +esweeeeeeneeenwnwenesw +eeenweeeseese +wwwnewwsewewwwwwwwwww +seseseeseseesesenwesewseeseseseswnesese +senwnwwneswwswwnenwwwewnwnwwnww +swnwsesewneenwenwseenwneeseeseewsw +eneeneneneneneneswsewswsenenenwnenenenw +wneesweseswswwsewswnweswswewswswse +neseneneeewneneenewnenenenenenenenene +wswnesewwsenewswswswswneswswswsweesw +swswsesenwseswsewseswneseseseswsesw +seswwswwwseswswswswswweswneswswnewsww +neneesenewewnenwneneneswnwweswswnese +swswswwwswswswswswwneswswwwswseww +neenenenenenenenenenwsewneneneneswnenene +eneeeeseenenwwesenesweeseeesw +swswswswswswwswnwswswwswseswswswsw +eneseseseswsesesewsesesesesenwseseswenese +nenesweenenenewneneeeneswnweenene +eneswsenwseenwenwene +swsewnenwenwwwwseseseswnwwne +seeseseseseseseswsewsesesenwseseseewse +swenewswnenwswsweswneswswswse +wnwwnwwwswwwwnwsenenwnwwwnwwww +eswswwswswnwswswwwswswsewsweeswww +nwwnwenwnwnwwnwsewnwwwnwnenwnwnwnwnw +seswwseeswswseenwneseswnewwswseswsw +enewwwswesewwnenwseswseweenwnwnew +swseswseesenwseseseseseseseswseswwsee +neneneneneneneneneneneenwnewneswe +wnwswswnewnwnwwwsenewweeswnwnenww +swenweenweeneswneeeeneneee +nesweswswseeswswsenwswsewwseneneswse +nwneswewnwnenwnwnenesenenenwnwnwneswnene +wenwswnwnwnwnwnenwnwnwenenwnwnwnwnwnwnwne +seseneesewnwnwneenwseeswswsesewnese +swnewswnwswnwnwnwwenwnwseewnwnenenww +seesesewenwneeeenwnesenenwsweseswnwsw +swnenenwnwnwnenenwnwnwnwswnenenenenwnwse +ewewnwwswesewsweswnweswswnwnwwnesw +neseneewwswwwwnwwwewwwwwsww +enwnwnwwswnesewwnwnwsewswnw +sewwwwwsweswnwswswnwwwwewsesw +neneneseweneenenwesewnenenenenenese +eeeenweeeeswseewnweewneswnew +wnwnenwnweneneswnenwenenenwnesenwne +eseseseseswsenwseseswsesesesesesesesese +eseeseeseeesesenwwseene +nenwnwnwnewnwnesenwnwsenwnwneneseesw +ewwnwnewnwwnwnwnwnwnwswswswwwnwenw +senwwneeneeeneneneenewneswenwnene +nwnenwnenwewenwnenewseeeenwswswwswe +wwewwwwnwwnwwwnw +eeeeeeseseeeeeeeeeew +wnwneeeseeneeneeneeneweseeenesw +nwwnwsweswwwseww +swswwswneswseswswswseswswseswsesweswwsw +newneneeneseenenenenenenenenenenewwne +nesewwwwswwnwwwnwwwneewwwsee +enwseseseseeseseseeeseesese +seeseseseseseeseseswneseswseseesesesenwse +nwseeseeesesewswseswwsenwseswneseesw +wneseenwnenwenwneeneneneneneeseesee +nwneesenwsweeneneneeseeneesenwww +nenenwswnwswnwnwnwnwnwnenwnenenwnenwnwnwnw +nwnwnwenwnwnwnwnwnwnwnwnewnenwnwswnwnw +wwwwnwwnwwnwewnwnwnwwnwwwswnw +neewneenewseneneeneneneneneneneene +neneneneneneneneneneswnenwnenenwnesenwnene +eeeeeeeseeeeeeeneeweee +ewwsweswsweseswswswswnwnwewnwnesw +weswswseseenweneesenenwnwnwneswswse +nwswswseswwswswswswwwswsww +seswseswwseseswswswneseswseswswswneseswswsw +eneeneewnenwneeseeneneeneneneseeee +eenwnweswenwenenwswswneeeewese +nenenenesweneswneswnenwne +enweseeseeneesweswnwsee +swnesesenenwwswnwsesenweneenenweswwew +nenwnwnwnwnwnwnwnwnwwnwnesenwswnwenwnw +nwwnenwnwnwswnwswsenwnwenwnwswnwenwnwe +swweeenwneswnwnwwswsewwswswseneew +esewnwseenwseseenweseseseesesesenwse +enweseeeeseseeneeseeeseweee +eeseeeeseseseeeewneeeseeeswe +swswwwnewswwswwswwswwswsw +eewseeenwsweenweneesewnweew +wswswsenweswnwsenwnwswswwneseweneww +nenewswnenesenenenenenwnwnenewneenenene +nwnwnwnwnwenenwnwnwwnwnwnw +sweweesweseeeswnweenwseneeenwee +ewesesenweseenwseseseeseneseeeswe +eneenenewnenenenenesenenene +eeeesesweeewseseeeneesewenesew +wswwwswswswwswswnwsweswswwswnewseswsw +swswswseswswswswswswswswswseseseswswenw +neenenwenenweseweneenesenwswneswnwswne +seswwwwwwwwwwwwwwwwnesenewne +swswswswswsweswswseswswswswswswseenwnwswsw +eneeeseeseseeseeseewseseseseee +swneswswwnewewswswsewwswwswnewse +wnwnwwwswwnwwewwwwwseewnewsw +senweeneeseeewenwsew +nwnwnwnwseswnwnwnwnwenwnwenwnwnwnwwwwsw +eeseneeeswewenwneeseeeeeee +wnwenwwnwnwnwnwe +wswwswswwwwwwsewswwneswswswsww +nwnwnwnwnenwnwnenenesw +nenewwnwnwswnwesenwneseneenenwneewne +nwneneswnwnenenwnwwsenwnenwnenenwnenenw +swwwwswswnenwsweswenwswseneswwswnese +eeeeewneweeeeswsewesweenwene +seswsewnwwnenwwsesenesewnwweeswswnwse +senweeseseswnewseseswsenesese +nwsenwnwnwnwnwnwenwnwnwnwwnwwwnwww +wseseseseseswswswswneswse +nwneneswnenenenenwnenwne +esenwseeswseseseseseseswsesenesenwswse +seswswswswnenwswenewenwneswseswwswswswse +sweswwwnwswwswwnweswww +swwswsewswwswwswwswswwnewneww +swseneswwnwweswswseswseeswwneswswswew +eseseseesesesenweeseseseweeseswese +swswnwnwnweswswswswswswswee +swseneswsesenesweewwseneswseswswnwnw +sewseeseseseeeseseesesesenese +seswnesesesesesesewseseseswsesesesesese +seseseseswseswseseseseswsesewseswsenese +enwnenwenwnenwnwswsenwnwswne +enenewnenwneneneneneneneewnenenenene +nwwsweneswwswwsewswwswwswwenwswsw +swsewseseneswswswseseswseeswseswsesese +neneseewneseneneneeneneenwnenewe +wwnwwwewswewwwwwwwswwswww +eeswneneneneneneneeneneneswswnenenwnw +nwnwnenenwnwsenwnwnenenwnenw +eeseseseesenwseseeesesesewseseseseesw +wewwwswwwswwwwwwswnwsewwnw +nwwnwnwwwnwnwewnwnwwnwswswnwwnwe +nenwnenwnwnenwnwnwswnwnwwnwnesenwnweswnenw +wwneweenenwswnesesewnewswswwwse +seswswsesesesewswseseseseseseneseswsese +swswseswseseswseswseneeswswseswsesewse +eneneenweeewnwesenenwseswseewwe +swenenweeeneeeneewseeswenwee +enesenewwwswseseswsese +eswneseweneneeneneeenweneneeee +eseseeseseeweswswenwneeeeneewne +wnwwneenwwwwsenwwwwnwwwwww +nwnweseenweewneswesweeeeeneew +swswswwnewswwswseneswwwswwwswsww +nenwswnwnwnwenwnwnwnenenwnwnenwnwnwnene +nwnwwwwnwnwwnwnewnwnwnwnwsenwwww +wswnwwseswwswwswwnwwewswsewswew +wneeweneneneseneswnewnenesesenenwnee +sesesesenwseswseswsesesesenwsewseneesese +swseswsenwsweseswsewswsweswse +nesesesweewwsweswseseswnwnwnwswsee +nenwnenwnwnenenwneswseseenw +sesenwswsenenwseswnew +sewseseseseeseseseseseesesesesenwseseswse +sewwenwnwnwwnenwnewswnwwwwnwwwnww +nwnenesewnwnwnwnwnwnenwsenwnwnwnwnwnwnwnw +nenwseneswnweseseswneweswnesenweewne +sesenwseseseewseseewseneseesesesesw +wwnwwnwnwwseswwnwenwnwwwnwnwewww +seseswsenwseswswseswwneseswsese +sweeswnenenenwneneenweeeneeeeene +seseseseswneswseswseswsenwseseseswsese +enenenenenenwnwnwnwnenesenenwnwneswnwnene +swwsweswwswwwswswswsw +wwswwnwsewswwnenwwwwwnwenwnww +eenwnwseseseseeeeeeeeeweeswswe +nwsenwnwnwnwnwnwnwnwnenwnwnenwwne +swwswswsweswswswswwesweseswswswswsww +seseesenwseweseeeseseewseseswsese +nwseeeesweeeeeseeweeenweeee +seeswneseseseseseswsesesesesesesesenw +eswenewsenwwneeeneeneeneenenee +wswenwnwenwwnenwwswesewseneweewsw +sweswenwswnwswswnwnwwnweenenwnwe +nwenweeswswwww +nwneneneswnwnenenenwnwneneswnwnwnesenenene +swseeesweeewsesenwweseenweenee +nenwneswneswneneenesenesewnwnesenewnenene +sewsesesesesesesenwseseeseneseewwsese +seswswswswwswwneswwswswswswwswwwnw +eeesenweeewseweeeswweneswnenw +eeeeeneeeweseeweeeeeeee +seswnesesewwseseeenesenewseswwnesw +eeeeeeseeewseeeeeneseeee +nwwwnwenwwswwnwenwwsenesenwwnw +wwwwwwwwwsenwwnwwnwwnwwwsew +seswswswseswseseswswswseswnwesenwseswsesw +eneeneeneneeeeweneneneseweneee +swwwwewswnwswewnwswwswwswwwswsw +eswneseeneneewneswseeweeeneenwnenw +swswnwwwseswnwnesewseswwnwswsenwswe +swswswwsewnwwwewswwneswsewwwnw +nwnwwnwnwwnwnwsenwnwnwnwnwnwseenwnwnwnw +seseseewsesesesesesenenewsesesesesesesese +nesenenenenenwnwwnwnenwnenenewneneneene +wesesesenweseseseswseseswsenwswsesewse +eseeswseeeswenweeseseeeneeee +neswwnwwwwnwwwewwnwswwenwww +nwswnwnenwnwnwnwnwnwnweswne +nwwwsenwnwnwwnwsenenwswnenwwnwnewwse +seenwseeenwweseeeweesweeeese +swswsweswswswneswswseswswwwswswswswneswne +ewwwswwwwswwwwnwwwwwswww +seswsenwseseseswsesesese +neneeswewnenwswneneseswenwseewenene +swnwnwenenenwnwnwnwseenwnwsenenwnwwnw +nwneswneneneneneneseneneswnenenwnenw +nwnwnwnwnwnwsewnwnwseenwnwnwnenwnwswnww +seswseseswseseswneswneswswseswswseswswsese +wnwnwnwnwnwnwnwnenwnwnwnwnwnwsesenwnwnwnw +seseseeesesewsenenwseweeseesesee +nwnenwwweseswnwwwnewwswseneseww +swnwseseseesesesesesewseneseseseseswsesw +seseseseesewneseseseneseeeseseeswsese +nwnwwnwnenwewwnwneseswwwwnwww +esesesesewseseseseseeseesenwsesesese +eswswnwswswneswswswseweseseswswswswne +swneenenenenenwnenenenenenwnenwnesenene +nwwswnwswswnwnenweeenenesenwwsenesw +eeeeeeeeeenweeeeenwswswee +nwnenenenwswnenenwnenenenw +nwwwnwnwenwnwnwsenwwwnwwnwwnwnwnwnw +ewneweseeseseseseese +nwnenwnwnwnewsesenwnw +nenenwnewnwnwnenwsenwswneenese +wnwwwwwnwwwwnewsewwwnwwswwnenw +enweseeeeseseeeee +wesweseneswsewnewwneewenenenwnwse +eseeswseeseeseseseseeseenweeee +wnwnweweswsesenweseseseseseswewsese +eeeneeseeenwseeeneenwseweeee +esenwseswseswswseswseseseswseseseswswse +wwseswnewwwswewwwswnewwwew +eeeneeeeeeenweeseenweeswee +sesenwneewswweneswnewsenenwenwswnw +nwnwneseenenewewnenewswneesenenene +swweswswwswswwnwwwswswwwswnwwesww +swnenenenwneneenwnwnwnenesweswnwnenenwnw +nenwnwwewwnwnwnwsewswneenwswswnwnw +nwwwsewwnwnewnesewwwwnwnwnwnww +wswwnwsenwswnweswweswswwwwenenw +neswswswneseswwswwwsewswwswnwnwneesw +newewwswwswwewwwwwwwwseswne +neenenweesweneneeneneneneneneneenese +eseseseeswseweenweseseeesesesesee +swseswseswswswseswseswswswnwsw +nenenenenenesewneewsenenenenenenenenene +eeswneseenweseeeeeeseewsewseee +nwewswswwswswwswswwswswswswswswnwse +nwnwnwnwnwnenwnwnwnenwswnwnwnw +eeeseeeeeeweenweseseseeese +swswwwswnewsewswwwnwswswsenwswsesw +seseswsesewsenesenesenw +seseswswseneswswswneswseswswnwsesesesesese +nwnwwnwnwnwenwnwnwnwnwnwnwnwnwnwnwnw +neeneseeneneneneeneenewneneneswnenew +nwsenwnwnwnwwnwsenwnwnwnwnwenwnwnw +swswswnwswswswswneswneswswswswewseswnwsw +seswneswswswswswswswseswswswswswswenwsw +wwwwnewnewnewswwswwswwwseswww +swenweswseswseneseswswsesewsese +ewswseswwsewsweswwswwswsenenenesene +swwnwnwnwseneseenenenwneswwwwwseswse +nesweneneeseneneneneneenenenenenwnwnenee +enwnwwwnwnwnwnwnwnwnwnenwsenwnwwwnwnw +wwwwwswwwwwnwwwewwnew +nenenesenenwnwswenwnwnenenwneneneneeswne +eeneeneneesweeneneneneeeeewene +eeseseenwnwsesesenwesenwesesesewese +neeeeswswneeeeeeenweeene +seseesewnesewseseeseseswseneseswnwsene +sesesewseeeneeseeseseseseeseeese +wswwnwwnewsewnwnwnwesewwnwnesene +eseeneenenewnenenwseesenwnwnesewnene +eseeneeswnwneesesewwneswewwneesw +neneswseneenwnenenenewneneneneneneseneene +sesesweseswsesesewseswsesewsesweswse +sewsesesesesewseseseneseeseneesesese +swwwenwwnwswnwnwneswwwnenwsewnwww +swwswswseseswswnwseswswswswsweseswsesw +senwenwnewweneneswswnwswwsenwenwenwnw +nenwnenenenenenenenenwneneneneneneenwwsw +wwnwwsewsewswnewsenwneesw +nenwnwseswnwnwenwesewnwneeswswnwnwswnw +nenwswnenenenenweneseneewseeneewswene +esenwwsenenenewnwnwswnwnwnwwwwnwnwnww +sesenweeeseseeeseseeseeeseswese +neneneneneenenenewsenenenenenenenenene +eeeseeeesweneneneeeeeenenwe +eswwwwnwneewwswwnwwneswwseswswwsw +wseseeeesesesesenweeneseseseseeee +esesesenweeeeeweeeswenwne +wwwwswneenwsww +seseswseneswswswseswseswswsewswswswseese +weseswseeeneseseewnweseesesesee +swswswswswswswswneswswsw +swwswswswswswswswwswswenwwswww +nweneneneeeneneeneeseneneneneene +swwswwwneneswswwswwswwseswnewswsw +eeeewenwweeeesweeeee +wnwseeewswswwwswsewwswnewnenew +ewseneeswswneswenweswnwwwwneswwe +eswseswnenwswseswwseseesesesenesesesw +senweeseseesesesesesw +nwsesesewsewnweweseseeseswsesesw +sewwwseseswswneenewenenwsenwseww +nwnenwnwneswswsenweswneneneenenenenene +eswnweeeeneeseneeeswenweneenw +wsenwnwwnwnwnwnwnwnwnwnwwnw +nwnwenesewenwnwnwwwnwwnwnwwnwew +nwsenwnenwnesenwnwnwnww +wnewneswnwwsesenwwweweseneneww +swseseseneeseswsewse +nenwsenwnwsenenwwnwwnwnenwnesenwnwnwnw +neswswswswnweewnenwswswswswswswseswswne +nwseseseseseeeseseseeeeseeeswsese +wnwnwnwwwenwsewnwnwwnwnwwnwnwnenw +wwwwwnwwewnwww +nwswswswswswswswswswswswswswneswseswneswsw +nenesweneneeneneneneneeneneenenee +swswswswswswwseswwswwswsweswswswnwwsw +nwwewswwnwwwwnewwnw +eeewenweeeseneeeseeeeeeeswe +swswenweswseseswneswswswsewsesesenenww +eeseeeeeeneswseseseeeweeeee +eeeseseeeeeeeeseenwenenweswesw +neswseswswseseseswsesw +sesenwwseneesewseneseseewneswswneswne +senenwswswwwsewwsenenwwenwewnew +neeseeweeeneeenenweeseeeee +nwswwswswswseswwswswswnewswswwswsesw +swneeneneeneswnwsesesesewnwesewsesesw +swswenwneneewneswwswswesesewsesw +nwnwsenenwnenwsenwnwnenwneneeswwnenewnwnw +swsenenewswswsewwnewwwnwsewswwsw +swenenenwseseneweenene +wswwswneswsewswswswswswswsw +wsenwsenwwwsewwnwswwnenwwnwnwnwew +nesweweeswwseseseseeeeneenwew +wseseneswnwswseseswseswswsenwwswswswesw +wwnwnwnewswenweswenwnwenwnwswnww +seswneswswseswwseswswseneswswnweswswswsesw +swwwnewswwswswwwwwsww +enwswswneeneneeneneneeneee +swswwswswswswswswswneswswswswswsw +sweseneswwseeeneeenwnenweswnenwne +eseeeeweneeseesewseswnewe +enwesweseenwseseeeesweeeenese +eswsweesenwenweeeeseeeeeenwee +eeeesenweseeeeeesweeseeee +wwseenenwnwwnwnwwwwnwswsenwwnwenw +sesenwseseseeseseswseswseswseswnwsenwsese +eeeeneeneswnenwee +seswneseswseswnwswswesesewseswswswswsenwse +nwnwwnwwenwnwnwnw +eenenenwneneeswneeneneseneneenenene +seeseseseswseseesesene +seseseswseseswnwswswwseswsweseswsesesenw +nenenenenenesenenwnenenenenenesenenenewnenw +nwenwnenenwnwenwswnwnwnwnwnwnwneneswsw +nwneswswnenenwnwnenwnenwnenwnwswnenwnwnw +eneneneeeeneeeweneeneenene +enenenenwnenenesenenenenewneenenenene +seseseseseswsesesesesesesesesesewnenesese +nwnwenwwnwenwwwenwnwnwnwwwnwwsw +eeseeesweeeseeeseeeeewnwenee +sweneneeneeeeneeewneneeneneenw +nenewnwneseseneneenwwswneneenenwwse +nwswwwwneswsewwswwneweweswnwsew +swswnwswswsweswsesw +nwwnwnwnenwnwnwswnwnwwnwnwnwnwwnwwew +swwwwwswswwwwneswwswsewwwwsw +seswsenenenewewnenenwnenewenenenenesee +wwnwwewnwnwenwwnwnwwnwswwwsww +wswswswswswswneswswseswswswswswswwswsw +sweseeeeeeeeenwneneeeenweee +eneneneeneneneswnenenenewenenenenwnesw +swseeesewsenwswsesesw +eeneneenenwneeneweswsweneneeene +swseseseseseseseseseeeenwswseesesesenese +eneweeneeneneseenenenewseeeneenew +eeswswseenenwnewe +ewenwwsesesesenwnwwesenenwnesesew +wwwwnwwwwnwenwwwnwwwwsenww +swnwsesewnenwsesesesene +sewnenenenwneenewsenwnenewneeesesw +swswswswswswswswseswnwswsww +seswswsenwwswseswnesweseseswswseseesenwse +eswswwswswnwseswswswswswsweswswswswsw +nwnweswwnesenwnwnwnweswnwnwnw +eswnewwswesewwwnwewwesenwnwwsww +eswnwneneneeeeswnesewnesweeeee +ewswwnwnwnwwwnwnw +eeneneeeneneneeenweneesweswnese +seswseseseswseneseseswweseseswswswseswsw +nwnwnwnwnenwwwenwenwnwnwesenwwnwnw +sewwnwwenwswnwnww +wseneseswseseswswenwseseswswswswswwse +seseeneseweneneswnwseenwswnenenenwnene +nenewswnwseseneeneneneseneneneewnenw +eneeeneeneeeeneeneweese +wwewwswwwwwwswswwww +seswseseseseseswseseneseswnesesesesese +neneswseswnwwseswswswwswswsweswnwwswe +newwswswswswwswswneeswnewswsewese +eseeeseeseeeeeseewe +enenewnenesesenewnwswsenesenenwneneneesw +neeseeeeesesweseseseeseseenweese +nweswswswswswseeneswwsewswswswswswe +wwwwwwsenwwwnwwenewwwnwwsww +swsesewnwswswswneweswswseeswswneswsew +swseswswswswswswswnesweeswswswsenwswswnw +eeeneseeneweneeeweeeneeneenee +nwnwnwnwnwenwnwnwnwswnwenwnwnwnewnwswswnw +nwwnenwwenwnwwwsenwnwnwswnwwneww +senewswswnenenenwneeneneneneneeenenenene +eeseseeseesesenweseeseeseewse +neswnesenenwswnenwswnenwswnwneswswnewseee +senwnwnenenwnwnwnenenwnwnenwnwnenene +wwnwwwwwwwwsenewnwww +nwnwnwnwwnwnenwnenwnwneneenwswenwnwse +wwwwnwsewswswwswenwswwswswwwww +nwwwwnwwswenwwwnwenwnwnwnwswnww +nenwesenwewneneseeseenwenewnenee diff --git a/inputs/24_test b/inputs/24_test new file mode 100644 index 0000000..3dc2f67 --- /dev/null +++ b/inputs/24_test @@ -0,0 +1,20 @@ +sesenwnenenewseeswwswswwnenewsewsw +neeenesenwnwwswnenewnwwsewnenwseswesw +seswneswswsenwwnwse +nwnwneseeswswnenewneswwnewseswneseene +swweswneswnenwsewnwneneseenw +eesenwseswswnenwswnwnwsewwnwsene +sewnenenenesenwsewnenwwwse +wenwwweseeeweswwwnwwe +wsweesenenewnwwnwsenewsenwwsesesenwne +neeswseenwwswnwswswnw +nenwswwsewswnenenewsenwsenwnesesenew +enewnwewneswsewnwswenweswnenwsenwsw +sweneswneswneneenwnewenewwneswswnese +swwesenesewenwneswnwwneseswwne +enesenwswwswneneswsenwnewswseenwsese +wnwnesenesenenwwnenwsewesewsesesew +nenewswnwewswnenesenwnesewesw +eneswnwswnwsenenwnwnwwseeswneewsenese +neswnwewnwnwseenwseesewsenwsweewe +wseweeenwnesenwwwswnew