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