Frans Bergman 4 лет назад
Родитель
Сommit
c5c7969633
3 измененных файлов с 563 добавлено и 0 удалено
  1. 474 0
      24.input
  2. 69 0
      24.py
  3. 20 0
      24.small.input

+ 474 - 0
24.input

@@ -0,0 +1,474 @@
+ewnwnwsenwnwnwwnweswnwnenwnwesenwwnww
+wswwswwnwwswswswswnewswwwewsew
+seseeseswwneseseseseseenenesewsesesew
+nwwnwnenenwneseseenewnenenenenenwnenenene
+enwnenwwnwwwswswseewnwenwwnw
+nwsenwsenwewnwewwwwnwnenwwnwswwe
+seseseeseeseneseseseeseseesesw
+nwsweswsenwnenesweseenenwswnenwenwwe
+nwswnwnwneenwnenwnwnwnwnwwnwswswnwwenwnw
+nwwnwnwnwenwnwnwnwwnwnwnwswwwnwnwe
+neswseseseeewnwsenwswsweseswwswsesw
+swnenenwneeneeeeeneeneee
+wesewseseseseswnesewseseseenwsenenwse
+eneeseswswswswnwsewseenwnwswseswswnwsw
+seswsweswneeswswnewwswnwnwnewnesesesese
+enenweeneeeeewneeneswese
+eneeneeeneeneneenwseeswnenenewsee
+enwnwenwsenwnwnwnwnwnwnwwnwnwswnwnwnwnwsw
+wwwwnwwwnwwsewwnwnwwnwwsenenww
+eeneswneeneeeeesesewenwswnwenenwsw
+seneswsewsewneneeeneeeeswwnwee
+nwwwswwsewswewwwwswnewswwwwsew
+senwseseseseswswseseseswseesesesese
+wwswseswwswswswseswenwswwnenwswswswsw
+seseneswswseswswneswneseswwswwswwneswwsw
+nwswwswswseswswswwnwsweeswnwsweswsw
+seseesesesenwseeseseseseseswse
+neenesweswnwnwwwnwsenewnwnewwswwnw
+senwseswseseseswnewsesweswswsweswse
+wwnwwnwswwnwwwwwnwne
+sesesesenenewsesesweseseswsewsewse
+seswneseseswsewnenweswseswsenweswneswsesw
+eneswnewneneneeneneneeneneneeneene
+weseswwwwnwnwwwseswwneeswwww
+seeeenwseenwnwswseeeseseeseeeee
+sesesenwseswneseeenwseseseswswwswesenw
+nwnwenwnwnwwswnwnwnwnwwenwsenwnwnww
+nwnwnwneneswwnenwnenenwnwsenwnenwnwnenwne
+senewnwneenwwswwnwnwneenenwsw
+neneneneneenenwnenenesenenwnesenwswnene
+neswswsweswswswswnenwswwswswewneswsw
+sesesesesesenwswswsesesesesewswnese
+eneseeseeeseeswsesese
+wwseseseswswseseseeswwseswnewseenesw
+eeeeeeeeswnewwenweewwnwswse
+nwwswenwnwswenwnwnwwnwewnwnwwnwwnw
+nwnwsewnwwnwenwnwnwnwwnwswnwnwnwnww
+nwnwwswswnwneeneswnwnwenwenwnwnwnwwnw
+neswneneneneneneenenesw
+newenwswseeweseesweweseneewnesee
+enwwswwwnwwnwseswwwwwnenwnenesw
+seswnwseseneneseeswswswnewwswswew
+wnwsewwnwwenwseeeww
+swswswswswnwswswswnesenwswsesweswswwswsw
+wneweswswswswswswswwwswwsewswnwsw
+swwswswneswswswwswwneswswswswswswswesw
+seeseseeeenwenweeenwsenweswswnwse
+swswswswswswswswwneswneseswwswwsww
+neeneneseneewsenenenenewnenenenenene
+nwwnwseeneswswnwneswneeswseenwnwnesww
+wneswseswswnwswwswwswwswwnewenese
+seewesesesesewseseseeseseseneseesese
+sesenwnwswneswswseswwsewneswneseenenww
+swswewseseswnwswseseseswsewswnenwsesese
+swwswswswswswwnewswewwswswwswswe
+wsesesewneneeswsweeneswwnwswsw
+neswswswswseswseseswswseswswneswsw
+enwseewsweseeeeeeesesweneseenw
+wewnewwwwwwnewwwswwwwsww
+eswnwwswsenwwwenwswwswwsenenesw
+ewnwnwswsenwnwnwnwwwnwenwwnwnwnwnw
+wnwenenwenwnwsenwnwswnenwnewnenenese
+sewwenwwwnwnwwwnwnesenwnwnw
+eeeeeeeneeeeweeeseesw
+wswsewnenwwwnwnwnwnwnwnwnwneswnwww
+swenweeseeeewneneeeenenweese
+neeesweswwneeeeeneeeneesenee
+swwwneseswswswwwswsewswswnw
+eswenenwnwswnwwnwwnwsewnwneswnwneswnwne
+nenwneneneesenenwnesenwwnenenenenwnww
+wwenwswswwswwnwsenwwwseewwswwww
+swwswwwswwnwnwswweswswwswswswwe
+eeneeseneseeeesweeeesesw
+nweesewnewneseneneneneneseeeneenene
+enwweswwseseenwswweee
+wwwnwnwnenwwnwswnwnwwwswwnwenwwnw
+nwseneneneeneneeeeneewswswwne
+nesesesesweseeseseseeesenwse
+eseesenwnwswseneswseseeese
+nwseswneswnewnwsene
+eeeeeeweseseweeneeeeesee
+nenesewnesenwewwwsewwwewwnesesew
+wwnwswseswsenesewsenwseeee
+seseseswseswnwseseneseseswsenewswswsesw
+seenwenweeseseesweswesenewewee
+swneenenenenenwnwnenwnenenwnwnenwnwne
+sewwwwwwsenewsewnwenwswswnenwnwnw
+seseseswsewseseseewnewsesenwnesenene
+nwnwnesenweswswnweswnwnenenwnewnwnwwnwne
+swenenwseswnewweswnenenwewnwnewnw
+nenenenesenewenenenenwneneswnwneenwwne
+nesewwnwnwswseenenwnwwewnesenwnwswsw
+eeewenwseeeseesesweseenwnwee
+nwwswnenwsenwwswneewwwwwnwwswnwsenw
+nwnwwnenenewnenenenenwnwnenwneneseenene
+nwswswswswswswswswswswswseswswseswesw
+swswseseseeseseseseneesesesewsenwnwseswse
+wswwnewwwswwswwewswwwseneswww
+wwwwwwwswwew
+ewewnwswnwwswnwwwwnwewwwnwwnwnw
+nesenwneneeneneeneeneeeneneeewne
+seseseseseswwsesesesesenese
+seswsweneswseeswswwseswnewseswnwsw
+swweneswneneeeneeeeneeeenw
+wnwnenweswewnwwwwnwswsewnwnwnwwwnw
+swseneeeneswseewwneseweesewwese
+nwwnwwnwwnwnwwnwwnewwnwnwwnwsesese
+senenwswseswseesesenesesesewwsesenesesese
+nwnwnwnenwnenwnwewnwneswwnwenenwnwnw
+nwenwnweseswwwnwnwnwnwnenenenwnwnwnwnw
+nwneneneenenenwneswnenenenenwnenenene
+swsweswwswneswswswswswwwsww
+wwsewwwnewwwwswnewwwwwww
+nenweeewswneneswneeeseesweseswewne
+sesesweeeenweeeeenwswwnwwee
+neeewwnewesewwwnesewwewseenww
+enwwwswnwwenwwnwwwenwwswwww
+newnwsenwwswwswnwsewnenenwnwneesenwsew
+nenenewneeneneneeneneeswnenenwswnee
+neenewsenenwneneneswsenenenenwneneswnw
+eswneesesenwwseseeeseeewnesesesese
+eeswnwnwnwnwnenewnwnwsenwnwnwnwnwnwnwnw
+seswsesesweneseswswwswwseswswseseseswsw
+swnwsesenwwnewnwwwwnwnwwenwneneswnwnw
+wsenwseeseseseweneseeesese
+nwsenwnwwnwewenwnwsw
+seeswseneeneswsesewseswneseseseseeenw
+nwswswswswseeswswneswseseseseswswseseswswne
+swnwnwswenwsenwswewwneewwswwnwne
+wnwwsenwenwswnwnwnwnwnwnwnwnwnwenene
+wwnwswnwwnwwwnwwnwwnwnwwenwnwwse
+nwneswenenwnenenenenenenwneswneswnwnwnene
+neneenenwneneeeswnenewneeseneewene
+ewwswsenwwnwsenwnwnwnwwwnwnwwnwwse
+eeeeneseeeeeenweeweseeneee
+nwnwnwnesenwnwwnwneswnwnwnwnw
+seseseseewesenewneseseseneesweesesw
+weswnesweswwnenwswseneswseneswwswwsw
+nwneeswnenenwnewnenenwneswswneneesenwne
+swnewweewswwswswwnwewwwswswnwsww
+swswswsenwswswswswsweswswwseswswneswse
+weeeseeeeewneeeeneeseseewse
+newseneneneswnenwneneeseseewneewsee
+neneenwnewnweseswwneeswnwnwswnenwnwnw
+neesenweneenweenesesweswenweeew
+eeseseneseeseseseeeewenwseeesee
+weseseswswswswswswseseseseswse
+eewswwseseseseseseeeseseenenw
+swwnwsenwnewswnwswsweeswwwwswsenese
+neneewneeeeeeseeneeeneeeenw
+swseswsweswswswwswnwenwswswswswswnew
+swswswswswswnesewswseseenwseswswswswswsesw
+wnenesweesenweeswwnwseenwnesweswee
+nenwnwnwswswnwnwsenwwnwnenwesesenwnewswe
+swsenwesesewswenwwseneswswseneswne
+nwnwnenwnwenenenenwswnwnwnw
+eeneneneeswnweneeswswneeneeneeene
+nwswswewwnwswwwswwenewseswwww
+senwseseswwseesenesweswnwseseseeenwe
+eweneeeeseneeeeee
+wwwswwwwesewnewwww
+nwnwnwnwnwnwswnwnwnwnwnwnwenwswnwnwneenwnw
+eeeseenweeeeeeeseewnesesewe
+swswewswswswswswswswseswenwseswswnesw
+nweswenwnwesweseseseeeeee
+nwenenenewswwsenenwnwnwnenenwnenw
+nwneneneswneneneneseneneneneneneneneene
+swswnwwswwwswsweswsweneswswswswwswsww
+swswneenenwwnwwsewswenenewwseseswnw
+nenenesweneeswneeeeneneswenenenenee
+nenwseenwnwneswnenenweeneswnwnewsenesw
+swwwswwsewwwswswnewwwwwswswne
+weesesenwenwneswneeesweweneswnew
+nwenenesenwneneneneswswnwwneswnwnwenwne
+senwnwwnwnwnwwsenwnenwnwswseneww
+senwseseseseseseneneseseswesenwswsesesesw
+wenweneeseeseweeeweeneeeenee
+seseswewneseseseesese
+seeseeewseeeeseewe
+eeswnweeeeneeeneeee
+eneweeeeeeeenee
+sweseswswswswswswswwswswseseswnwswsesw
+nwwsewnewwenwnwnwswswnw
+weseswsewseswnwswnwsesesenwneseswsenese
+newnwneeenewsenwswnwnwnenwnewnenenw
+nwsenwnwnwnwnwnwsenenenwnwnwnwwnenenewne
+wneswnwwwwsewwsewwwwwwenwe
+wwswswswnenewswwswewwsenwweww
+enenesweeneneeneeseeneeneeewnwe
+neneneneneswnenwnewenwnenenwneneenenwne
+nwnweeeswneseseswnwsesweseeseenwewe
+ewnwnwswnwnwnwwswnwnwnewnwneseewww
+wenwwsenwswwnenwnwnwwenwwnwnwseww
+enwswnwnwnwsenwnwswnwnwnwnenwnwnenwnwnw
+nwnwenwwwnwnwnwwsenwnwnwnwnwnwnw
+nwswswnwnwenenwnwnwnwnwenwnenenwnenwnenw
+nwwswwswswneneswsewwseswwwsewswnesw
+nwsewwwwwwswwnwenwwwwwwnew
+nwnwnwnwnwnwneneswnenwnenwnwnwne
+nenenenenesesenenenenenenenenwnwnenenenew
+swswwewswwnenwnewwwsewsw
+nwnwnwnenwsewsewnwnewwneswnwnw
+swswswswswseswseseseneswwswseneseswsesw
+nwnwnwnwnwnwenwnwnwwnwnwnwnwwwenwnwsw
+eneeeeeeeeeenesenenenenewewne
+eneewewwseewenwsweeneeeesene
+sewseseswswswseswseseseneseswseneswsesesw
+ewwnwwswswnwnesesewnweesweseeenene
+wswnewsenwwwwwnwnwenwwwwwwwwnw
+eeseeneeweneeeeeeweeeseee
+wswswswswswswwswswswnwswewswwnwswewsw
+wseseeesenwseseeeeenwsesesesw
+eseesewnweeswneeeewese
+sweswswswnwswswwswwnwswwewewnewsew
+eeeneeeneeneenwenwsweneswneeenee
+swenwseneweseneneneeewswewnwneeese
+wwnwnwsweeeneswnewseswneswswneese
+seswsesesenwseseseseswswesenwseseswsese
+senenenenweeeneeneeweeneeeesw
+seseseneswseseswwswseseneswswseneeswse
+wwswwwenwswwwswseswww
+sweswswseseswswnwswseswsw
+eeeweeeneneweneweseeneee
+seswwseseneneswswseswneeseswwswwsesw
+nwenenewneswnewwnewnesenwenwnesenwne
+nwnenwwnwnenwseswsenesenenenenwesenwne
+neswswwswwswwsww
+nwwsewwwsewenewwswwnewwwswwse
+nwsenwnwsenenwnwnwnwnwnwnwnwnwnwwnwnwnwnw
+nwsenwwnwnesenenenwnwnwnwnwnwenwnwnenene
+seseseswnewseseswwneneseswe
+neswwswswswswsweseswsesesesenwseswnwsese
+eseesweeeneeseseseenwseneseseswse
+wswwsewewwwwwwwwwswwwwnew
+newnwwswnewwswwwwswswsesewwsweswsw
+eeeneneneneneseneswnwneenenenenenwne
+nwswnwenenenenenwnenenewnesenenwnwnwne
+wsenwwwwewwnewwnwsewwswwnwww
+neseseewneeesenweswneeesesewesese
+nwnwnenenwnwnwnwnwnwnwnwnwnwnesenw
+nwwwnwswnwwnwnwenwwnwwewwwwse
+neseswswswseswswswswswsesw
+sweeneneeenewnwswneeeneneeenee
+nwswenwenwswnenenenwseesenwwswswese
+eeeswseeeneneeewseesesweeeee
+nenenwnesenwsenenenenwnwneseneneswnenese
+enwnwnenwnenwnenenewnwswnwnenwnenwnwnesw
+eeeeewseeenwsw
+nesenenenwwenwnwnenwnwswnenesenwnwnenw
+sewswneneswsewww
+weswswswswswnwwswwewwwwswswwswsw
+nwswnweswnenwnenwnwnwnwseene
+enwenwnenesewneeeswnewseenenwnee
+eeeeseenwneenenenenwnenweeeseswse
+nwseswseswswnwswesenwesesene
+wnwwnwwewnwnwnwwwwnewwswnewwnwse
+eswseswswswwswswswswswswswnwsw
+wwneswwwewnwswewwwswwwwsew
+seseseseseswsewneswseseseneswseseswswnesese
+nwneswswswsweswewswswswwseswswnwswswesw
+neswnenenewswnwswsenwnwenwnenenenwnwnwswne
+swnwneseneeeneneeeeneneneswneene
+eseeeenweeeeesweese
+seseeseseseseseseswwseseseneesesesese
+eseseeseenwseseseenweseeseenwesee
+nwswneneneneneneeneneeneeneesenenwse
+nesewnenenenenenewnenenenenenenenesene
+nenwnwwsenwwnwswsewnwnwseeswenwwnww
+swseswswsenwseseswsweseswswswsw
+neswswnwnwneswnwswnweneswnwweenwnwswne
+swswsweswswswswwswnwswwwswwswseeswnw
+nwnwnwnwnwswnwwnwnwnwenwnwnwsesenenwnw
+nwseneseswseseswswnwseseswenewswsesese
+neneeeswnenwneneeseswneneeneswwnene
+seneswswswswswnwseneseseswswswseesewsee
+neesenenenweeesweenwww
+wseswwswewswwwswwwswwwwwnwnewsw
+swnwswneswswswswswseswswswseseswsweswsw
+seswseswswswsesweseswwenwswsesw
+sewseseseseseeseseenewsesesesesesesene
+sewsesesesesenesenesewseseseeswsesesese
+enenenenenenenenenenenenenewnenesene
+sewwnesewwwnweneeewnwwww
+enwswewswwnwnwnwnwwnwswwnwnwenwnwenw
+wwwweeswnwwsenwsenwnwwswnwenwwnw
+nwnwneneeneseenenwwneswnenwwswnenwneenw
+nwnwwwnwswnwwnwwweneswew
+wnwnwwwsesenwnwwwnwnwnwwnwnwnenwnwne
+seswswwsewswneswswnwswsenwneswseswswesw
+nwnwnwnenesweswnwnwnenenenenwnwneeswnwnw
+newnwsewsewwswswwswwswneewwnew
+wwwnwwnwwwsenwwnwwwwewnwwew
+seneneswwnewsenwswnesesewnenwsee
+wnwnwnenwnenwswnwnwnenweswnwnwnwsenwne
+nesenwswneseswnwneswswswsewse
+nenenwneseneneeeswnw
+eeeweeeeesenweeesenw
+wswsenwnweeeswnesenwsesenwwswesww
+nenenwsewneswnwnwneenewnenwenenenwne
+eeeseeeseeseeeewewseeeee
+neeseewseeeeewneeeeeeesenwesw
+swewseeneswswswswwnwswswwswswswwnw
+swswswswswnwenenewswswseswswswnesw
+wneswseneneneenenewnenenene
+nwnwswswnwenenwnene
+eeeeswneneswwsenweneseeenweene
+seseneswswnweswswsenesesew
+eesenwnweseeeseeseeeeeseseese
+wwwsewnwewwwswswwswwwwwswneww
+neseeneneesesesesweeesesewsewsee
+nwnwnenwwwnwesenwwnwnwwnwwnwwwnwnw
+newseseswseswwesesese
+sweenwnewsenwnwwwwwwswe
+wnwswneswnewnwwnewnwwwwwwswww
+eeeseseseseeeseneeeswweenwnwse
+neswswswswnenwswswswwswswswswswseswsww
+eeeneseeswneenewnweseeneeeneene
+enesenwsesesewseseseseweseseseseseee
+wswseenwwnwwnwnwnwwnewenwwwwnw
+wnwwwwsewswwswenwwwswwwwsww
+nwnwnwnwnwnwnenwnwnwwsenwwsenwnwnwnwnw
+seseeswswnwswsenwnesw
+swsesesesewseseneswswseeseswsewsesesw
+nenewwswewswwnwwsesweswwwswwwsenw
+swswswswswseswseseseseswsenweneseswsesesw
+wswnewwwwwwnwneseswnewswsewwww
+wswnwsweseneseseesesesesesesesesesww
+neneneneewneswnenenenenenenenenenenese
+wnwnwnwnwneneesenwnwewnwnewsenwnwnw
+neneneeneseswenenwneneeenweneene
+neeneneneswneneeeswneenenwneeneene
+nwnenwnwnwnwnwnwnwsenwnwnwnwnwneswnwnwnese
+swwenwnwnwnwswwnwnwnenwnwnwenwweww
+wweneeneeneneneneneenene
+enwseeswesenwseswee
+sewnwswwwsenenenweswswnwnweeeeee
+swenwsenenwnwnwwwnwwnwnweenwnwwnwnw
+newseneswnwwwwswwwwwwewnwswnw
+wwsenwsweesweseeenewsenwnwseee
+neneswenwnwneneneneneneneneneneswneswne
+seweeesenweeseneesweeeeseseee
+nwwwnwwwnwnewwwswwnwsewnwwwwew
+nwnenwsenwnwnwnwnwnwwnwnwenwnwnwnwswnwnw
+neneweswnenenenene
+eeeeseeewenweeeeeneneeee
+senenenweswneneneswnee
+swnenwswnwnwsenwwnwnwwnwwwwnwewnwenw
+eswnwnenenwnenenenwnenwneswnwnenenw
+nesenwnwnwnenenenenewwnenwsenenenwswne
+wweseswwwenenewnwseeeswenewnwsw
+swsesweeeseswnesewnwenwseseneenenwesw
+swwswesenwsweswswswswseswseswwswswneswse
+ewwnwnwswwwwsenwwnwnwwwnwnewseww
+nwnwswswseneswseseseswseewswwseseneswse
+newswsweswswneseswswswswswswnenwseswsesew
+ewseenwswnwwnwnenwnwneneneeswswenene
+seseswswwseseseswswswseswneswswneseswsese
+wswesewwwwnewwnwnwesewnwwsesw
+nesesesweseeseeeseswesenwenwewse
+neneneswnwnenwwsenenenwnwnenwsenwenee
+eeeweeeeeeeeweneeeewese
+nenwnwwnwwwnwnwwsesewwnwnwnwnwwnww
+seseeseesweesesesenweesenweesese
+eweenwseeeeeeeeweeeewe
+nwneewneneneneneswnewnenenenenenwenene
+swswneswwswwwnwwseneseswwsw
+neneenwewnwswesesene
+seseseswswnwswseswsesesesesewneeswnwse
+wswnewnwwnwnwwnwwwwwnwwewswnew
+wnenwnwnenenenwneenwnenenenenenesewnesw
+nweswenenwwnenwnenenwneseswnenww
+swwnwnwswnwseneswsesesweseswneee
+seewnwwneseneswseswewnwnwnewwnwwnw
+enwseseeenweeseseseee
+seswseswseswnenwsenwseswswseswwseseswswsw
+seesesesesesesesewsesenenwseseseneesesw
+eeeseenwseeeseesewesesesenesese
+swsweswswswswswswweswswswswnwseswswswsw
+wwnwsweswswwnewwswwswswseswswwww
+swswswseneewwswnwwwseeswnwnwswnwswse
+ewseeeeeenweeeeeeseeesese
+ewwwwswsewwnwswnwwwswwwsenesww
+wwswswwnwwwwswwwswewswwwswse
+esenwsesesewsesesenweswseseswseeesee
+nwnenenenwswnwnwewneseneenenenenenenene
+esesesenwwseseseeseenweseseswswe
+wwnwwsewwwwwswnwseewwnwww
+seneneseenenwwewneneneenewneeneee
+nwneenenenwnwneswswnwnenwwneenwnwsene
+seseeeweseseseseeneweeeseeesese
+nwwnwnwnwnwnwenwnwenwnwwnwswwwsenw
+swnwnwenwnwnwnwnwnwsenwnenw
+swwseswswswswnenwswswswswswswswswswswsw
+newwwnwsewewnwnwsewwnwnwww
+eeeeeseenweeeeeene
+swwnwnwsenwwnwnwwewewwswnwseew
+ewnwnwnenwsesenwnwwswwnewwnwwnewsw
+eseswnesewsesenweneseenwweseseese
+nwnenwnwswwnwenwwswwwnwnwnwwnwwne
+neneeeeeeenweswnee
+nwnweswnwswnewswnwsenwweswenenwesw
+neenewneewenenenwsee
+nenwnenwwnwnenwenwnenwnwnenwnwnesenesew
+swswswswnwswswwswswseneswswwswswswswsw
+newseeswwseeneeeeeneneneneneswwe
+neneneneneswneeewenwwsewnenwnwswswne
+eneeneeneneeneeseeeewnesweene
+nwnwneswwseswswswneeweenesewnwseswswsw
+nwseseswnwseenwsenwwsenwnwnwnwenwwnenew
+enenwwswsewwwneeswnewswsewnew
+nenwnwnwnwenweswsenwenwnwswnwswswse
+eenwwnesesenesesesewsesesewsesew
+nwwnwsenwneseneneswneneneswenwsw
+nenwnenesenwnenenwnwnwsenesenenenwnenenwnw
+seeeewswnwewseneewne
+wswwswsweswswswsweswsw
+enesenwseseswesenwsenenwswenwsweswsesw
+eeswnenwnenenenenwneneweseswne
+wwnewwwwwnwewsewwwwwwew
+newseseneswnwnwnenwneneweseseewnesw
+seeewsenesesweseweeseenwnwesene
+nwnwnenenwnwnwnwsenenwnesenenenwnenwnwne
+nwwnweswwwwnwenwwnwnwwwweswe
+wsewwwwwnwwwsewsenenewwwwwswsw
+swneneeneeneswnesewnenewseenesewe
+nenwswswswswswswswswswseswwswswswswsw
+seseewesweseseeseenweeseseseesenwsw
+esewneseseneseseswseswwswseswseseswsese
+nwnwnwnwneeweswnenenenwnwenwswseew
+wnwenwneenwwnwnwwnwenwsenwwnwnwnw
+swswneswswswseswswneswswwswnwswswwew
+nwnenesweneeeeneeswnweeeeene
+nwswswwswswseseneswswwnewsweswswswsw
+wswwwwwewwwe
+nenenenesewnenenenenwnenenenwwswnwsene
+eeseseenweeeesweeeeewee
+wswnwneswnwwsewwswswswwweswseswswew
+wsesesewenwswseswseweeswswesesw
+senwswseswswseswswnwswnwnesweweenesewse
+weneneneeneneswneeeenenwneswswnee
+nwnwnwnenwnwenwnenenwwnwsewsewenenwnw
+nenenenenewneneneneneneneneneene
+eswseswwwwwwwnwswsewweswnewe
+wseweenweeneewseeseswesese
+wnewenwsweeneenesenesweneeneee
+nwnwwnwnwwwnwnwsenwwnewwenwsenww
+swneseswswswsenwwenwswwwswswneswwwnew
+esenwenwswwswenwswsewnwswswswenw
+swnwewneeswswswswswswswnwseseseseesesw
+nenewnwnenesenenenesweneneeneneneneenene
+neswsewnewswswswwseswswneswwswseswswsw
+nwswwnwnwenwnwnwnwnwnwnwnwwnwwnwnw
+seseneswnwneswsesenwswnewnwnwsenwewnenene
+neneeesesenwneneeeneneeswneeenww
+eeesweeswseeseweeeneseeeeenw
+seseseeeswwswwneswswwnwnwseeswese
+swnwnwenwnenenwnwneenenwnenwnwnenenwswsene
+wwsenewnwwnwwwwwwwsenwswnwwww
+enenewnwswseeneseewneseseswesesee
+nwwwswsewwnwwnwwwwswswswseswswe
+wseswwseswnwseeseseeseseseseeswne
+enwsesweeeeeneeeeeeeeeenw
+seseeseseseeseswsesenwweeseenesenwsesw
+senwneseseseswseswseswseswnwsesesewsesesese

+ 69 - 0
24.py

@@ -0,0 +1,69 @@
+input = []
+
+with open("24.input") as f:
+    for line in f.readlines():
+        seq = []
+        i = iter(list(line.strip()))
+        c1 = next(i, None)
+        while c1 != None:
+            if c1 in ['s', 'n']:
+                seq.append(c1 + next(i))
+            else:
+                seq.append(c1)
+            c1 = next(i, None)
+        input.append(seq)
+
+def get_pos(seq):
+    pos = [0, 0]
+    for move in seq:
+        if move == 'w':
+            pos[0] -= 2
+        elif move == 'e':
+            pos[0] += 2
+        else:
+            if move[0] == 's':
+                pos[1] += 1
+            else:
+                pos[1] -= 1
+            if move[1] == 'w':
+                pos[0] -= 1
+            else:
+                pos[0] += 1
+    return tuple(pos)
+
+counts = {}
+
+for seq in input:
+    pos = get_pos(seq)
+    if pos not in counts:
+        counts[pos] = 0
+    counts[pos] += 1
+
+print("Answer 1:", len([v for v in counts.values() if v % 2 == 1]))
+
+def count_adjacent(map, pos):
+    x, y = pos
+    adjacent = [(-2, 0), (2, 0), (1, 1), (1, -1), (-1, 1), (-1, -1)]
+    return len([1 for (off_x, off_y) in adjacent if map.get((x + off_x, y + off_y), False)])
+
+map = {k: v % 2 == 1 for (k, v) in counts.items()}
+max_x = max([abs(x) for (x, y) in map.keys()]) + 1
+max_y = max([abs(y) for (x, y) in map.keys()]) + 1
+
+for i in range(0, 100):
+    next_map = {}
+    for x in range(-max_x, max_x + 1):
+        for y in range(-max_y, max_y + 1):
+            if (x + y) % 2 == 1:
+                continue
+            count = count_adjacent(map, (x, y))
+            if map.get((x, y), False) == True:
+                next_map[(x, y)] = count in [1, 2]
+            else:
+                next_map[(x, y)] = count == 2
+    map = next_map
+    max_y += 1
+    max_x += 2
+    #print("Day {}: {}".format(i + 1, sum([1 for v in map.values() if v])))
+
+print("Answer 2:", sum([1 for v in map.values() if v]))

+ 20 - 0
24.small.input

@@ -0,0 +1,20 @@
+sesenwnenenewseeswwswswwnenewsewsw
+neeenesenwnwwswnenewnwwsewnenwseswesw
+seswneswswsenwwnwse
+nwnwneseeswswnenewneswwnewseswneseene
+swweswneswnenwsewnwneneseenw
+eesenwseswswnenwswnwnwsewwnwsene
+sewnenenenesenwsewnenwwwse
+wenwwweseeeweswwwnwwe
+wsweesenenewnwwnwsenewsenwwsesesenwne
+neeswseenwwswnwswswnw
+nenwswwsewswnenenewsenwsenwnesesenew
+enewnwewneswsewnwswenweswnenwsenwsw
+sweneswneswneneenwnewenewwneswswnese
+swwesenesewenwneswnwwneseswwne
+enesenwswwswneneswsenwnewswseenwsese
+wnwnesenesenenwwnenwsewesewsesesew
+nenewswnwewswnenesenwnesewesw
+eneswnwswnwsenenwnwnwwseeswneewsenese
+neswnwewnwnwseenwseesewsenwsweewe
+wseweeenwnesenwwwswnew