feat: solve day 24
This commit is contained in:
parent
da96bf0fb9
commit
e8aad99eca
471
24/input.txt
Normal file
471
24/input.txt
Normal file
@ -0,0 +1,471 @@
|
|||||||
|
neswsesewswswswswswneeswswswswwwnwsw
|
||||||
|
nenesenenwneenwnwweneswnenenenwnw
|
||||||
|
wewnesesweswsenwnwnwsww
|
||||||
|
eeneswneewneseneeeseeweeesenwe
|
||||||
|
nwnenenenenenewnwnesenwnwnenenenenenwnese
|
||||||
|
nwwenwswwnwwwenwnwwnwnwwwnwnwsew
|
||||||
|
nwnwnenwnwnwnwnwnwswnwnenwswnwnwnenenwne
|
||||||
|
swsesenweseswseseswswnwswswswseesesesw
|
||||||
|
nweneneswnenenenenwnenwnwswswnwnwwswsenwne
|
||||||
|
wnwnwenwnwnwnwnwsewnwnenwnwwwsw
|
||||||
|
senwewwsewswswnwseswsenwswswsewnenww
|
||||||
|
nenwnesenwnenwnwnwnenwenwswnwnewnwswnw
|
||||||
|
neneswwsesenwsesewnenenenenenewenwne
|
||||||
|
weneneeneneneneeene
|
||||||
|
ewnwsenwwwwnwnewwneswnwsenwwnwsesww
|
||||||
|
neenwnwnenenenwwnwnwnenenenenwswnwnenwnwe
|
||||||
|
wwnwswwwnwwnwwwwwwnewnw
|
||||||
|
neneneneeneneneneneneswnenenenenenenene
|
||||||
|
nwwnenwnenwnenenenenesenenwnenenwnwnwne
|
||||||
|
nenenwsenwsesesenwwnwneenesewnenwnene
|
||||||
|
nenenewneneeneneneneeseneswnenenenwnene
|
||||||
|
seseenwewseswsese
|
||||||
|
seseeseseseseswsesesesesesesesenesesese
|
||||||
|
sewswswnwswswswswwew
|
||||||
|
wseswnwnwnwnenewnwnwwnwwnwnwnewnwsw
|
||||||
|
neeeenenwneeeeeeswneneneeneee
|
||||||
|
swnwnwnwnwnwnenenwnwewnwnwnenenwnwneenwne
|
||||||
|
swswsweswseeswseswneswwswseswnwsesww
|
||||||
|
swnewwnewwweewwwwnwsewwwww
|
||||||
|
eneswswwewwwswswesewwswswnwwe
|
||||||
|
eswnweeeeeneeeeeeesweeee
|
||||||
|
wswswnweswwswnewswseswswswswswswswe
|
||||||
|
nwewnwwwwnwwwwneswswwwwwnew
|
||||||
|
nwnwnwnwnwwnwnwwenwnwnwnwsenwnwnwswnwnw
|
||||||
|
swswnewswswswswwswswwwwweseswswswnww
|
||||||
|
swneewswswswwswnwnwswwnwwsenwswese
|
||||||
|
nenenenwswnenenwnenenwnwnwnenenwnenenwne
|
||||||
|
nwnwnwnwwneswswenwenwenwnwnwnww
|
||||||
|
neneseswnenwneneneneneenesw
|
||||||
|
nweswswnwsewswnwwseeseneswnwneene
|
||||||
|
wwwwswwwnwswwwswsewewwswwsw
|
||||||
|
wewswwewswswswnweswwswswsweswwsw
|
||||||
|
sesesesesesewseswsesesesesesenesenesesw
|
||||||
|
wsweeneeeeneeeene
|
||||||
|
eseeeeeeeeeeeenweseseseee
|
||||||
|
wesesewswnesewneeswseewsewnwesesw
|
||||||
|
seweeneneeweeeneneeeneneeseew
|
||||||
|
wswseswswwenwswwwswwwsw
|
||||||
|
eweweeewseneswseenweswnweswene
|
||||||
|
wwswwwwwwwsewnewswwwwswwww
|
||||||
|
swseewseneeneswswnewneesewsenwese
|
||||||
|
sewwwwwwwnwwwnwwww
|
||||||
|
seseneeseseeenwsesweseeeseswsesesese
|
||||||
|
neenewnwneneeeneseneneeneseeneneene
|
||||||
|
nwenwwwswnwwwwwnw
|
||||||
|
nwseswseseswneseeswneswswneswswsewswse
|
||||||
|
swswswwswwswwswnewwswwswwseswswe
|
||||||
|
wnwwnwwnwnwsenwnwnwwnww
|
||||||
|
swswnwseseseswsesesesewenesewenwsese
|
||||||
|
eseseesenweeseswseseenwee
|
||||||
|
nenwseseneeeeeenweseenweweee
|
||||||
|
swsweseswnwswswswswswswseswswswneseswsw
|
||||||
|
wnewenesenesweswwnwwseesesesee
|
||||||
|
wsesesesewseneseseesesesesesesesesesese
|
||||||
|
seeseeseeeseeswsweesesenwneenwnw
|
||||||
|
nwwnwnwnwsenwnwwswnwnwsenweswnwnwnwnwnee
|
||||||
|
esenenenenenenenenenewnewnenenenenene
|
||||||
|
eswswswswswwswswswwnwswswswswswwswsw
|
||||||
|
nwnenwnwenwesenwsewsenwwsewswnwsenw
|
||||||
|
nwnwnwwnwnwnwwnewwwnenwsenwnwwnwwsw
|
||||||
|
weeseswwenwnwwewwwwnwseenesw
|
||||||
|
wwswswswwswwwnwwwswsewswwsw
|
||||||
|
ewsewweswwwewwwwwwnwenwnw
|
||||||
|
eenwnwnewneweneswseenewseswwsesw
|
||||||
|
neenenenenenenewwneneseneneneeneene
|
||||||
|
seswnwswswseswswnwnwseseseeswseswswseswsesw
|
||||||
|
seseneswseewsesweseseseseseswnwsesesese
|
||||||
|
nwnwnwnwnwwnwnwnwnwnwenwnwwnwnwwnwnw
|
||||||
|
seswswsenwwseneseseseswswneseswnesesesesese
|
||||||
|
eseeseeeeeenweenwesweneenee
|
||||||
|
nwneswnwnwnwnwnwswneeseswenwswnwnwnww
|
||||||
|
swsesweswseswswnwswswswswswswnweswswsw
|
||||||
|
neseseesweseeeseeesewneeewsene
|
||||||
|
neneswnewneneswseswneswnenw
|
||||||
|
seweeweswwwnenesewwwnwnewsew
|
||||||
|
swwweswswswwswswwswswnwswswwswswsw
|
||||||
|
wneneenenesenewsenenwneswnewneenenw
|
||||||
|
senwnewnwnwnwnwnwnwwnwswwenwsesenwnwne
|
||||||
|
wwwwwwnwswsewwwwwwwsw
|
||||||
|
neneweneeeeenenweneeeeeenwsese
|
||||||
|
swswsweswswswswswswswswnwseseswswseseswsw
|
||||||
|
swswswswseswswnwswswseswswnwswneswsee
|
||||||
|
nwewnenwseneneswsenenenewnenwnesenwnenw
|
||||||
|
eseswnwswswseneswseseswswseeswswswwsw
|
||||||
|
seseeeseseseweneeseeeesesesesesese
|
||||||
|
eewnweswswsweeenenwwnwse
|
||||||
|
wwswwwswwsewwswnwenwnwswswwwesw
|
||||||
|
wwewwwwwwwswwwnewwwwww
|
||||||
|
nwenwwnwnwnwnwneseswnwnwnwnwnwnwnene
|
||||||
|
nwwnewnwnwwnwnwnwwnwnwsenwwwnwnwww
|
||||||
|
sewswneswseeswseneseswswswsewneseswnw
|
||||||
|
newneswswwwwsweswswenesesewneswsw
|
||||||
|
nwnewwwwwnwswwseswwwwnwwseese
|
||||||
|
wwwwnewwwwwwenewswwwwwsww
|
||||||
|
eseeeeeewseneswswseweeneesesee
|
||||||
|
nwnwnwswnenwnewnwenwnwnwsenwenenwnwwnwne
|
||||||
|
swseswseswsenesewswseseswswswseswsesese
|
||||||
|
swswsesesesweswnesesesewsese
|
||||||
|
eeweeeeseseeesee
|
||||||
|
swnwnwnwnenwnwnwnwnwnwnwnwnwnwwnwsenenw
|
||||||
|
nwwnwwwnwswwwwwwnwwewwewww
|
||||||
|
swnenenenenenenenenenenenenenenenenene
|
||||||
|
swswneswswswswswseswswnwswswswswswewsw
|
||||||
|
nwneswnwnenwnwnwnenwnenenenenwnwnenwnwenw
|
||||||
|
nwnwnwnenwnwnwnenwnwnwnwnenwsenwnwnwnwwnw
|
||||||
|
wnwnwwnwswwwsenwnwnwnwnwwnewseeww
|
||||||
|
nwenwnwnwenwnwwnwnwwsenwnwswwwnwnwnw
|
||||||
|
eeweeseseeeseseeseseseseseese
|
||||||
|
neeenesewswsweeneenweesenenwswesw
|
||||||
|
nwwnwnwnwewwnwnwnwwnwwnwnwnwewnwnw
|
||||||
|
wnwneswwwswwwewwwwswwsewwswne
|
||||||
|
nwnwsesenenwnenwswseswnenwwnwnenwnwnwnene
|
||||||
|
nenenwnwnewnwswnwnwnenwneneneeneenww
|
||||||
|
wwnwswnwnwnwnwnwswswsenwnwenwneesee
|
||||||
|
nenwnwnwnwnenenwnenwnesenenenenenwnwsenw
|
||||||
|
swseswswseswseseseswneseswswswseswswswsw
|
||||||
|
swswsweneswnwwsweswswswswswswswnesw
|
||||||
|
wnwwwwwwwwswwwewnewwnwwwwse
|
||||||
|
nwnenenenenenwnwnwwnwenwnwwsenesesenwnw
|
||||||
|
nenwneeeeeswswneeeeeneeeneswnee
|
||||||
|
nenwnwnwnwnwnwsenwwnwnwnwwnwnwnwsenesenw
|
||||||
|
nwnwwnwwswwwnwwnwwnwsewwnwnewnw
|
||||||
|
wnwwwwenwseswnwswewnww
|
||||||
|
ewwnwwwswwnwwnww
|
||||||
|
nwnenwnenenenenenenenewnesenene
|
||||||
|
sesesesweenwsenwenwsenweesenwenwnw
|
||||||
|
neneeeeswenwneeswsenwenenenenenenee
|
||||||
|
seeesenwswwesenwsesenwseseswesenesee
|
||||||
|
nenwnwnenwswnenwnwsenwnesenwnwnwnwnenenw
|
||||||
|
eeeeeeeeeeesweenwswne
|
||||||
|
esesweswnwsenweeesesesenweeesww
|
||||||
|
eseseeseseseseseweeseeeseesee
|
||||||
|
swnenenenwnwnesenenewnwneeneneneenenesw
|
||||||
|
neneneenenenenewneneneseneneneneeewse
|
||||||
|
wnwnwnwnwenwnwwewswwwwwnwsewwwe
|
||||||
|
neneeneneneneneneneneneswne
|
||||||
|
seswswseseeswswnwseseneswswseseseseswsese
|
||||||
|
wswnwswweneweenwwswswneswswwseswne
|
||||||
|
eswwwswswneswwswwnwwwenwwwswsewsw
|
||||||
|
wswswswswenwnwnwswswswswswswseswneeswe
|
||||||
|
wwwwwswswwwenenwnwnwwnenwsesww
|
||||||
|
wseweeenwnewneneneneseeneneenwswse
|
||||||
|
senwwnenwnwnewseswwwsewswnewneene
|
||||||
|
nenwnwnweneneenesesweneneneneneneswsw
|
||||||
|
swseswswswswwswswswneseswseswsewswswnesesw
|
||||||
|
enewnenwnenenenwsenenwnwnwnenenwseswene
|
||||||
|
wwnewwwswwwwwwwwwswsewwww
|
||||||
|
wsenwnwnewnwnwnwnwnwnwnwnwnwnwnwwnwnw
|
||||||
|
wenwnwwwwnwwsenwneswsewwsewnwnw
|
||||||
|
neenewneneeeneeee
|
||||||
|
neseswnwswswnwnwseseswseewseseneseswseswsw
|
||||||
|
nenenewwnenenewneeenenenweswsene
|
||||||
|
seeeeesesesweeenweesenwseeseswe
|
||||||
|
swesenweseewseeseeswswesenwenenewne
|
||||||
|
seseseseseseeeswnwswne
|
||||||
|
wwwwwwwwwwnwnwsewnwwwwsewe
|
||||||
|
nenwnwneeswnwnwenwswswnwnwnwswnwnwnwnwnwnw
|
||||||
|
swswswesewswswseswswswseswswseswswsw
|
||||||
|
neneenenenenenenenenenewnenenenenenene
|
||||||
|
wneseenenwnwwswseswswwnewnwwwww
|
||||||
|
nwnwnwwnwnwweseneswwnwseenwnwnwwnwsw
|
||||||
|
nwnwsenwnwnenwnwnwnwsenwnwnwnwsenwnwnewnwnw
|
||||||
|
wsewneeneneneneneneeeneswe
|
||||||
|
nenwnwnweweswneswne
|
||||||
|
eseeeeeseeeeeeeeeweewee
|
||||||
|
newnwswnenwneneneneeneweswnenwnee
|
||||||
|
wwnwwwwwwnwwnwnwnwsewnwwwww
|
||||||
|
wwnwwnwwnwswwnwwwwnwwwnweww
|
||||||
|
neseseseseseswsesesesesesesesesesesesesw
|
||||||
|
nenwnwnwnwswwnwwnwnwwnwswnwnwnwwnwnwe
|
||||||
|
neenweeeeeeeeeeneeswseeeswe
|
||||||
|
swswswswwswswnwswswsesweswswnwswwsw
|
||||||
|
wnwsenwwnwwnwnwnwnwnwnenwnwnwnwnwnwnw
|
||||||
|
seswnwswenesesewneswnwsewsesesenenesw
|
||||||
|
eneewnweseswweeenee
|
||||||
|
neeneswneswsweswwnenweee
|
||||||
|
eeseesenewneeeneneswenewne
|
||||||
|
swnwsewnwnwneweswnenwneneseesenwwsesw
|
||||||
|
wseewswwnenwswswseesweseneswnwswese
|
||||||
|
seseseseseswsesesewswseseswseseseseswnene
|
||||||
|
seseswsesesewnenewseneswnesew
|
||||||
|
wswseswnwwwwewwwwwswwwwswww
|
||||||
|
nwnwwnwnwnwnwnwnwnwnwwnwnwnwnwnwenwe
|
||||||
|
nenwsesenenenenenwnwnwnenwsenenwnwnenwnewne
|
||||||
|
nwnenenwnenwnwswnewnwnwenenwnwnwnwnene
|
||||||
|
neseswswnwnwnwneswsweneseseswswnwnewesw
|
||||||
|
swwsewwwewswswnwwswswwnwsw
|
||||||
|
neweeswneeeneeneneenwswneseewnw
|
||||||
|
sewswwweseenwneesewwsewswneee
|
||||||
|
wwwnwnwswwwwwwnenwnwnwnwnwnwwnw
|
||||||
|
wwwswwwwwwwwnewwwwneswwsew
|
||||||
|
nwseswswswneswenesewseeswswswswswnenw
|
||||||
|
enwswseeeseseswesesesesesenesenwseese
|
||||||
|
nenenwneswnwnwneneenwnwnweswnenwnwnwnwnw
|
||||||
|
nwswweneeeeeeeeeeneeeswnese
|
||||||
|
sweseseseseeeswenwneeeeese
|
||||||
|
seswswseeswsesewesweswswsesesesenwnwsesw
|
||||||
|
eenwnewesesewseneeswseewsweenwe
|
||||||
|
seseswnwwwnewwswweswnwwnewwesw
|
||||||
|
eeeeeeseseseeseweeeeeeseenew
|
||||||
|
weseeneswenwewe
|
||||||
|
swswsesenwseswseseswseneesewswsesesesese
|
||||||
|
seswseseswswswseseswswswneswswswsesesw
|
||||||
|
swwswwsewswwswnwwsesweswnwsenwnwnee
|
||||||
|
eneweeneneneeeeeeee
|
||||||
|
sesesesenesewsesese
|
||||||
|
nwnwnenwnewnenwnwnwsenenwnenwnwnwnwnwne
|
||||||
|
swneswseseswswnwseseseseseswwseswswsese
|
||||||
|
swswsewnewswwswswswswnenwwwneswsewsw
|
||||||
|
nwswswsweneseseswseneswseseswnweswew
|
||||||
|
swseswswswseswswswswseseswseswnesesw
|
||||||
|
nenwnenenwenwnwnwnwnenenwwwenwnenwne
|
||||||
|
swwnwnwwwwnwewwnwnwnwnwnwwnw
|
||||||
|
esenwneswnenwneeswwswenwseneseeenw
|
||||||
|
eeeswsenwweneenenenesenenewsenenesew
|
||||||
|
wwswsenwwwnewwewwswwswwwwne
|
||||||
|
wswesweenewswswnwswsweswnwnwswswe
|
||||||
|
swswseneswswswswsewswsw
|
||||||
|
wnenenenewneenesenwwseeneneswne
|
||||||
|
seeseseseeseenweewseseneseseeseese
|
||||||
|
seseesesewseseseseseesweseneseesese
|
||||||
|
swnwnwneseswswswswwe
|
||||||
|
senwnwnwnwnwnwswnwwnwnenenwwnwnwnwwnww
|
||||||
|
wwwsenwewwswswwnwsewwewswsww
|
||||||
|
swwswswswneseseseswsewseswswneswswsesw
|
||||||
|
seseeeseseseeseseseseseesewesesese
|
||||||
|
seseeeseweeneseewseeeeeseee
|
||||||
|
nesenwnwnenenenenwnwnwnwnwnwnenenwsenw
|
||||||
|
seseseeesesesenweseseeswseseseenese
|
||||||
|
swswswswswswswseswswswswswswswnenwswswswsw
|
||||||
|
senwwswwswswwswswwswswswneswsweswsw
|
||||||
|
swesenwswseswnwnwseseswseswswsweseesesw
|
||||||
|
wwswswwwswwweswwswswwswswwswsw
|
||||||
|
swewsweswswewnwwnewewwsewnwswww
|
||||||
|
wnewseseswswnwswwnwnwwnwswseswseeew
|
||||||
|
swsenwseseswswseneswswseseseswseseseswsw
|
||||||
|
swswwwewswswswwwweswwwwesww
|
||||||
|
swswswneeswnwswswswswswweswswswswswnwsw
|
||||||
|
enweneeseeneneswswsewneneneeeene
|
||||||
|
wswwswnwwwewwnwswesewswseenwe
|
||||||
|
sesesesweeeseeewsenwseseeeseeee
|
||||||
|
swswswswnwswswswswswswswsweswswseswswswsw
|
||||||
|
seseewseseeseesesesesesesesesenwsese
|
||||||
|
eweeseweeneeeeneeeeeeeeese
|
||||||
|
eeeeeeeeeeeeeeenweeeesw
|
||||||
|
nwswswswwwwwwwswswweswwwswswsw
|
||||||
|
weswswnwswweswnwnwneswsenesewwenesw
|
||||||
|
enweeseeseeneseseseewseeseeesesee
|
||||||
|
nwnwnwnwnenwwnwnwnwnwsesenwnwwwnwnwe
|
||||||
|
seseseeneseeseseeseeseeseeeweese
|
||||||
|
sesesweeswseswsenweswseswnwsenwswswsw
|
||||||
|
sesweseeeeeeenwseswnewse
|
||||||
|
swwnwwnewwwwwwnwwwwwnwnwww
|
||||||
|
swswswneswswswswswswwswwwswwswwesw
|
||||||
|
wnewneneweneeneseswsenewnesweneene
|
||||||
|
eseeeseeeseenesw
|
||||||
|
sesenwseneseseseseswswswsesesewsesesesesw
|
||||||
|
nwneneneneswnenwnwnenenwneenenwnwnenwnene
|
||||||
|
neneenewnenenenenenenesweeeeeesee
|
||||||
|
nenwwswnwenwnwnwsesenenww
|
||||||
|
eenweswsweeeeneeneeweneene
|
||||||
|
nenewwneseenwnenwnwsenwnenwwnw
|
||||||
|
wwwnenewwsenesenwnwsewewwswswswnew
|
||||||
|
seswwswneswswswwnwswwswwswswswwswwsw
|
||||||
|
ewneneeeeenweesweswenweneneene
|
||||||
|
sweswsenwswswwswnewnenewswenweenw
|
||||||
|
sweweseesesesesewsenwseeweenesenwse
|
||||||
|
swnwnwwwwwwwne
|
||||||
|
nwnwswswseswswswswwswswswswswswse
|
||||||
|
seswseseswswseseseeseswnwswsenweswseneswse
|
||||||
|
eeswnweseeneeeeseewseseseseesesee
|
||||||
|
swswswswswswseswwswsweswswneswswwnenw
|
||||||
|
wnwenwwwwnwwwwwnwwnwwww
|
||||||
|
swwswwswswswswswwswwnwswswswswswswse
|
||||||
|
nwwwwwswnwwnwwnwwwwnwnwneww
|
||||||
|
eeneswenwnwswnwsweswswnwswnenenwnwse
|
||||||
|
swswseswswseswswswswneswswseneswseswswse
|
||||||
|
neeeeeeeeeeneneweweeeene
|
||||||
|
nwnwneenwnwnwnwswneswnenesenwswewnww
|
||||||
|
weswwswswnesewsewswswwneneseeese
|
||||||
|
wswswswseswswnesesesw
|
||||||
|
enwneswwnenwnewnenwnweenwnenwneswnesene
|
||||||
|
eswwswswswswswwswswswwswswswnweswswsw
|
||||||
|
eswsenweswswnwswswswswsewswwwnwswswsw
|
||||||
|
nenwnenenenenwnenenewneenenenenwnenene
|
||||||
|
wnesesenewwwsewwwnwnwwnenwwswnewsw
|
||||||
|
wwswswwswwswswwswswwnwswseswswswsw
|
||||||
|
neneneneneswnenwnenenenwnwswnenwswnenee
|
||||||
|
sesesesenesesenesewsesenewseswsesesese
|
||||||
|
wneewseswwwnewswswswswenwnewwww
|
||||||
|
swwnwswswswswnwswswswwsesweswswwesw
|
||||||
|
seseswseswseseswseswnweseseseseswseswse
|
||||||
|
swswseseswswswswsesweswnwseeseswnwsese
|
||||||
|
neswswnwnwsewnwenwwnwwweenwsewnw
|
||||||
|
ewneeneneenesweneeeneeenenenene
|
||||||
|
nwnwwnenwnwwnwnwnwsewnw
|
||||||
|
eeneneeseenweseswneesweneenenenw
|
||||||
|
neneneneeneneeneswnwnwneswnenenenenenenwne
|
||||||
|
nwneneswsewswnwsewwnenwewnw
|
||||||
|
nenwsenenwnenenenwnesenenenenenenenenwse
|
||||||
|
seeeesesenwseeesesewsewseeseese
|
||||||
|
nenenenenenenesesewnenwnenenenwnwnwnenw
|
||||||
|
neeneneeewneeneneneneeneenenenee
|
||||||
|
wswnwswseewnwnweneewwneww
|
||||||
|
seseenwseweswnwneenenenenwnwseeneswse
|
||||||
|
seswsenwswseeseseswswswseswswseswsesenwsw
|
||||||
|
neseeseswseswsesewswswnwswwseswnenwsesw
|
||||||
|
nwnenwswnenenwnwnwnwnwsenwnw
|
||||||
|
nwnwwswnwwenwnwwnewnwnwnwwnwnwsenwnw
|
||||||
|
seseeswseenwnwseneseeeesesewswsesese
|
||||||
|
neneswnwenwnenenenenenenwnenwnwnwnwnwnesw
|
||||||
|
swswswseeswneswswswswswsweswwneswswswnw
|
||||||
|
swseswswswswswswneeswwswwswswswseswsesw
|
||||||
|
sesesesewnwseseseseseseseeseseseseswsese
|
||||||
|
neenenwwenwswnwneswsweenwnw
|
||||||
|
wwnwwwnwwnwwnwnwnwseenwwnwnwnwnwnw
|
||||||
|
swneswsesweswswswswswswswswwwswwsw
|
||||||
|
esweeneeneeeneenesweeee
|
||||||
|
eeeeeenweesweeeeeeweew
|
||||||
|
seseswswewseswwseeswenwnwswseswswse
|
||||||
|
nenesesesweswnenwewseewnwseswewne
|
||||||
|
eseweseseseseeesesesesesesesesesee
|
||||||
|
sesenwswseeswswsesesesenwseseseeneseese
|
||||||
|
swnwswswnwnwsenwneenwwnwnenwwneenwe
|
||||||
|
nwwwwnwnwnwnwnwwnwnwnwswewwwnwwnw
|
||||||
|
seseswsewesesewseseseseseseeseswsesese
|
||||||
|
senwswwnwnenweesewswenenwneneswswwne
|
||||||
|
eseweneswsesewwnwwseseswswnesenesew
|
||||||
|
swwswswswswseswswswswsweswswsw
|
||||||
|
eesenweweseseeeeeeeseeseseese
|
||||||
|
seeeeneenewweeene
|
||||||
|
nenwswswseeewsewwnwwnwwwswwsenw
|
||||||
|
swswswswwwnewwswnwwnewwewewsww
|
||||||
|
sewwswswneeswwnwswwwswnewswwswswsw
|
||||||
|
swwewwnwswswswnwnwweswneeeeww
|
||||||
|
swswwswswseeseswneeweswswnwnwswene
|
||||||
|
newwnwseesewsesenwsewseewesenwene
|
||||||
|
wswwwnwwsenwwnewwnwsewwnwwne
|
||||||
|
swswseseswnweswnwneeswneswsesesenwwswnesw
|
||||||
|
nwnwnwnwwnwnwnwsenwnwwnwsenwnwnwwnenwnw
|
||||||
|
nwswwenwswsweswwswswwseswswswnwsesw
|
||||||
|
nwewwwnwwsenwwwnwesw
|
||||||
|
wnwnwnwnwnwwnwsenwnwneswnwenwwsenwnw
|
||||||
|
swnenwnwwnwnenwnenenwnenwnwenwnwenwnwsw
|
||||||
|
swswnwswsweswwseswnwwswswnwsenwswew
|
||||||
|
eeeeneeswseeeeeeeeeenenwene
|
||||||
|
neeeneneneeeneeeeneswneneenenee
|
||||||
|
nwnwnwwnwnwneenwnwnwnwsenenwnwnwnwnwnw
|
||||||
|
eeeseeeswseenwenenwseeseeeesw
|
||||||
|
neeneneeesenweeeene
|
||||||
|
neneenenenesenenenenenenenenenenenenwne
|
||||||
|
senwwswswwswswsewneseeseswneswswswswene
|
||||||
|
neeeeneeeseseeeeseeseeseesesww
|
||||||
|
eeeneneenewneneseneneneeeeneee
|
||||||
|
swnwwnwsenenwnenwnwsenwnwnenewnwenwne
|
||||||
|
neneneneneenenenenwnenenwwsenenenenenenw
|
||||||
|
wwnewwwseswwnewww
|
||||||
|
nwenesenwnwnwnwnew
|
||||||
|
swseseswseswseswswswenwswswseswseneswse
|
||||||
|
senwswsweseneeeeneeneeswnesewswwnw
|
||||||
|
eenenwswswnwswewwneenwwwwsewsenw
|
||||||
|
seeeenenwneneeneeeneeswe
|
||||||
|
newenweeneswneneswne
|
||||||
|
swswswseswswsenewwnwwwnwnesweswwww
|
||||||
|
nwneneeeneswneneneneeneeneeneeene
|
||||||
|
eeeeeeesweeeeewnweseeenw
|
||||||
|
swseswswswswswsewneswnwswswsesesesesesese
|
||||||
|
nwnwsenenenwswnwnenenwwsenenwnenewseswse
|
||||||
|
wsewswwswwwswwnewseenenenewwwse
|
||||||
|
nwnewnenenenenenwnenenenenenenwnenwsenw
|
||||||
|
wnwwwsenewwnwwwwwwwwwwww
|
||||||
|
nenwnenewseeseeswswenwwsesewsw
|
||||||
|
enwnenesweneneneneswenenwswneneeenenene
|
||||||
|
seeeeeenwnweeseeseeswseseeeee
|
||||||
|
wwnwwnwswwwwnwwnenesww
|
||||||
|
seswswswneseseseseswseseseswsesesesewswse
|
||||||
|
wnenwseseeseswswwseseswswswswseswswseswsw
|
||||||
|
wnwnwnwneenesenwnwnwnwnwnwnw
|
||||||
|
nenenenwneeneneneneneneswnenwnenenenenwne
|
||||||
|
sewwswswswwswswwswwswnwseswwswneswsw
|
||||||
|
eeeneeeswsenwwseseeeeeeeseese
|
||||||
|
swswswswswswneswswswswswwswswswsw
|
||||||
|
newswwswwnenwsewwwwwwwwwswsew
|
||||||
|
sesesesenwseseseseseseeseseswsenwsesese
|
||||||
|
swswsesweswwseswwswnwswswswswswwnwnw
|
||||||
|
nenenwneneswnenwsenewnesesewnwnewnee
|
||||||
|
sesesesesewneseseseneseseseseseseswsesee
|
||||||
|
nenenenenwwnesesenenenesesenewneenwene
|
||||||
|
wnwwwwsewnwswneenwwenwswwwwww
|
||||||
|
swseswswnwswswseswswswnwswswseseeswswswswsw
|
||||||
|
wnwwnwwnwwwnewwwnwwswwwwwsewe
|
||||||
|
neeeeneneenenenesewneneeneeenene
|
||||||
|
seneenweeneeeeeneenweeeeseee
|
||||||
|
enewnenwsenenwnenenenenesenwnenenwnenenw
|
||||||
|
neeneneswneneweenwneneeneeenenee
|
||||||
|
wwwswwswsweswneswswwswsewswswww
|
||||||
|
swwwswswseswwwswswwsenenwswwwwnw
|
||||||
|
neenwneneneeseswswewnwswnenwnenenwnenwne
|
||||||
|
seeseewwweeseweseeseeesesenwe
|
||||||
|
swneneneneneneneneneneneeneneneneenene
|
||||||
|
wwswseesweswneenenwnwseesewswnwene
|
||||||
|
seseseswseswswseswseneseseswswseswsesesew
|
||||||
|
neeneneseenewenenwswnweeneeswneswne
|
||||||
|
seswwneswsewnwnewsenwswswenwww
|
||||||
|
wwsewwwwwwwnewswwewwwwwww
|
||||||
|
nenenenwnenenenenenwnesenenenenenenenene
|
||||||
|
eseswswswwnwswneswneseeswswswswswswswww
|
||||||
|
neeesweenewenenweneneewnenenenene
|
||||||
|
nwswwwnwwewswwswwwswseswwwwswswsw
|
||||||
|
wwenwnwewswwwnenwwwnewnwswww
|
||||||
|
nwneenenwswwwsewewwsesewwsewswnw
|
||||||
|
seswseneswseeenenwseeseswneswsesesesenw
|
||||||
|
eeseswweseeseseesesesesenw
|
||||||
|
neseseseewwwneseseenwseseeseseeee
|
||||||
|
seswnwsweseseeswseseswnwnwsesesenweseswe
|
||||||
|
neseseswswswswsesesw
|
||||||
|
nenenenewnenwnwnesenenenenwnenwwneneenene
|
||||||
|
sweseseeswsesenweseesesewsesenwenesee
|
||||||
|
senenenenwwnwwnesenenesenenwnwnwnewnwe
|
||||||
|
swwnwseneswseseseneseseneseswnwnesewwswse
|
||||||
|
wnwnwnewnwnwwnwnwnwwsenwswwnwnenwwww
|
||||||
|
wnewwwnwwwwwsewwwwwwwnwwnw
|
||||||
|
eeesenwenesenweenwesweneeeeee
|
||||||
|
wsesenewnenenenenw
|
||||||
|
eeeeeseneeweneeeeeeeeee
|
||||||
|
eneseneweneneeeeswneeneeneneww
|
||||||
|
nwnwnwnwnwnwnwenwnwnwwewnwnw
|
||||||
|
seseseswswseseseswsesesewseseseseseswne
|
||||||
|
swwwsweswswswswwswswswswswneww
|
||||||
|
seeenweseweseesesweeeeeenwe
|
||||||
|
nweneneeneeeeeeeeneseeeneene
|
||||||
|
wswnewwwwwwwwswswwwswewwww
|
||||||
|
swswswseswswswwseseswneswseswseseswswsesw
|
||||||
|
swswswswseswswswsenwnweswswswseswsewesw
|
||||||
|
nwswnwwnwswnwnwnenwnwenenwsenwne
|
||||||
|
nwwnwesenwnwnwnenwwwnwnwewnwnwnwnwswnw
|
||||||
|
wswswswnwwwwwneswwswwsewwswwsw
|
||||||
|
nenewneneneeneewnenenenenenenwnenenene
|
||||||
|
nwseseswswseseseeeseeseneseseseseese
|
||||||
|
eswseeseseeewnwseeseseeeseseesese
|
||||||
|
nenwnwnwneneeneneneneneneneneneneneswnw
|
||||||
|
nwnenwneneneneenwnenenenenenenwnewnene
|
||||||
|
nwneneenenenwseeseneeneeenenenewnene
|
||||||
|
wneseswsweswswsenwswswswsweeswnwswnw
|
||||||
|
swneeswsewswswenweneswnwnesewew
|
||||||
|
nwnwnwnwnwnenwnwnwnwsenwsenwwnwnwnwnwnwne
|
||||||
|
neswneswnewneswseseswnwnwswnewseswsee
|
||||||
|
eenenwseweeneeneneeweneweeene
|
||||||
|
nenwwwnwnwneenenenwswnwnwswseenwswnwenw
|
||||||
|
sweswnwswsweeswwswnenw
|
||||||
|
wsewsewsenwneswnwnwwewswnwweenw
|
||||||
|
nenwnenwswnwnenwnwnenenwnenwnenwnenenene
|
||||||
|
swwneswwewwswneswwwswswwswwwse
|
||||||
|
swsewswwsewwswneswswwseneswswswnesw
|
||||||
|
seenenwsweesenwseswnweseeeeenwe
|
||||||
|
swwswwswswswweswnwsweswswswswnenwwwsw
|
||||||
|
wnwnwwswenwweswenwwwwwnwnwswnw
|
||||||
|
swswwswwwswwwwsewwwwwswswwnesw
|
||||||
|
neswswswswswswswwswswswswwswswswwwe
|
||||||
|
wenwenwwseswwwnewnwseseswwneswneww
|
||||||
|
nwswswswneswswwwsewwswswswswswsesww
|
91
24/main.py
Normal file
91
24/main.py
Normal file
@ -0,0 +1,91 @@
|
|||||||
|
from typing import Iterable
|
||||||
|
|
||||||
|
STEP_LOOKUP = {
|
||||||
|
"e": ( 1, 0),
|
||||||
|
"w": (-1, 0),
|
||||||
|
"ne": ( 1, 1),
|
||||||
|
"sw": (-1, -1),
|
||||||
|
"nw": ( 0, 1),
|
||||||
|
"se": ( 0, -1),
|
||||||
|
}
|
||||||
|
|
||||||
|
def read_input(filename: str) -> list[list[str]]:
|
||||||
|
tiles = []
|
||||||
|
with open(filename, "r") as f:
|
||||||
|
for line in f.readlines():
|
||||||
|
line = line.strip()
|
||||||
|
steps = []
|
||||||
|
i = 0
|
||||||
|
while i < len(line):
|
||||||
|
if line[i] == "e" or line[i] == "w":
|
||||||
|
steps.append(line[i])
|
||||||
|
else:
|
||||||
|
steps.append(line[i:i+2])
|
||||||
|
i += 1
|
||||||
|
i += 1
|
||||||
|
tiles.append(steps)
|
||||||
|
return tiles
|
||||||
|
|
||||||
|
def get_black_tiles(tiles: list[list[str]]) -> set[tuple[int, int]]:
|
||||||
|
black_tiles = set()
|
||||||
|
|
||||||
|
for steps in tiles:
|
||||||
|
x = 0
|
||||||
|
y = 0
|
||||||
|
for step in steps:
|
||||||
|
dx, dy = STEP_LOOKUP[step]
|
||||||
|
x += dx
|
||||||
|
y += dy
|
||||||
|
if (x, y) in black_tiles:
|
||||||
|
black_tiles.remove((x, y))
|
||||||
|
else:
|
||||||
|
black_tiles.add((x, y))
|
||||||
|
|
||||||
|
return black_tiles
|
||||||
|
|
||||||
|
def part1(tiles: list[list[str]]) -> int:
|
||||||
|
return len(get_black_tiles(tiles))
|
||||||
|
|
||||||
|
def get_neighbors(tile: tuple[int, int]) -> Iterable[tuple[int, int]]:
|
||||||
|
for offset in STEP_LOOKUP.values():
|
||||||
|
neighbor = (tile[0]+offset[0], tile[1]+offset[1])
|
||||||
|
yield neighbor
|
||||||
|
|
||||||
|
def count_neighbors(tiles: set[tuple[int, int]], tile: tuple[int, int]) -> int:
|
||||||
|
count = 0
|
||||||
|
for neighbor in get_neighbors(tile):
|
||||||
|
if neighbor in tiles:
|
||||||
|
count += 1
|
||||||
|
return count
|
||||||
|
|
||||||
|
def simulate(black_tiles: set[tuple[int, int]]) -> set[tuple[int, int]]:
|
||||||
|
white_tiles = set()
|
||||||
|
for tile in black_tiles:
|
||||||
|
for neighbor in get_neighbors(tile):
|
||||||
|
if neighbor not in black_tiles:
|
||||||
|
white_tiles.add(neighbor)
|
||||||
|
|
||||||
|
new_black_tiles = set()
|
||||||
|
# Any black tile with zero or more than 2 black tiles immediately adjacent to it is flipped to white.
|
||||||
|
for black_tile in black_tiles:
|
||||||
|
black_count = count_neighbors(black_tiles, black_tile)
|
||||||
|
if black_count == 1 or black_count == 2:
|
||||||
|
new_black_tiles.add(black_tile)
|
||||||
|
|
||||||
|
# Any white tile with exactly 2 black tiles immediately adjacent to it is flipped to black.
|
||||||
|
for white_tile in white_tiles:
|
||||||
|
if count_neighbors(black_tiles, white_tile) == 2:
|
||||||
|
new_black_tiles.add(white_tile)
|
||||||
|
|
||||||
|
return new_black_tiles
|
||||||
|
|
||||||
|
def part2(tiles: list[list[str]]) -> int:
|
||||||
|
black_tiles = get_black_tiles(tiles)
|
||||||
|
for _ in range(100):
|
||||||
|
black_tiles = simulate(black_tiles)
|
||||||
|
return len(black_tiles)
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
tiles = read_input("input.txt")
|
||||||
|
print("part1: ", part1(tiles))
|
||||||
|
print("part2: ", part2(tiles))
|
20
24/test.txt
Normal file
20
24/test.txt
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
sesenwnenenewseeswwswswwnenewsewsw
|
||||||
|
neeenesenwnwwswnenewnwwsewnenwseswesw
|
||||||
|
seswneswswsenwwnwse
|
||||||
|
nwnwneseeswswnenewneswwnewseswneseene
|
||||||
|
swweswneswnenwsewnwneneseenw
|
||||||
|
eesenwseswswnenwswnwnwsewwnwsene
|
||||||
|
sewnenenenesenwsewnenwwwse
|
||||||
|
wenwwweseeeweswwwnwwe
|
||||||
|
wsweesenenewnwwnwsenewsenwwsesesenwne
|
||||||
|
neeswseenwwswnwswswnw
|
||||||
|
nenwswwsewswnenenewsenwsenwnesesenew
|
||||||
|
enewnwewneswsewnwswenweswnenwsenwsw
|
||||||
|
sweneswneswneneenwnewenewwneswswnese
|
||||||
|
swwesenesewenwneswnwwneseswwne
|
||||||
|
enesenwswwswneneswsenwnewswseenwsese
|
||||||
|
wnwnesenesenenwwnenwsewesewsesesew
|
||||||
|
nenewswnwewswnenesenwnesewesw
|
||||||
|
eneswnwswnwsenenwnwnwwseeswneewsenese
|
||||||
|
neswnwewnwnwseenwseesewsenwsweewe
|
||||||
|
wseweeenwnesenwwwswnew
|
Loading…
Reference in New Issue
Block a user