Compare commits
11 Commits
fb3a3918cd
...
97d51cb00c
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
97d51cb00c | ||
|
|
d630a568b7 | ||
|
|
a9452f5231 | ||
|
|
7b6c3bfa2a | ||
|
|
92841964b2 | ||
|
|
153f4f79b6 | ||
|
|
3a396c8c47 | ||
|
|
d82dcaa421 | ||
|
|
5f0fb357bd | ||
|
|
3dca21452a | ||
|
|
4283467970 |
36
day13.py
36
day13.py
@ -20,17 +20,27 @@ def part1(test_mode=False):
|
||||
def part2(test_mode=False):
|
||||
my_input = aoclib.getInputAsArraySplit(day=DAY, split_char=",", test=test_mode)
|
||||
|
||||
bus_ids = {-i: int(v) for i, v in enumerate(my_input[1]) if v != 'x'}
|
||||
lowest_common_multiple = math.lcm(*bus_ids.values())
|
||||
base_multipliers = [lowest_common_multiple // interval for interval in bus_ids.values()]
|
||||
modular_multiplicative_inverses = [
|
||||
pow(base_multiplier, -1, interval)
|
||||
for base_multiplier, interval
|
||||
in zip(base_multipliers, bus_ids.values())
|
||||
]
|
||||
bus_ids = {i: int(v) for i, v in enumerate(my_input[1]) if v != 'x'}
|
||||
# utilizing the Chinese Remainder Theorem we are searching for x = i (mod bus_ids[i]) for all i
|
||||
# watch https://www.youtube.com/watch?v=ru7mWZJlRQg for an easy explanation
|
||||
|
||||
# finding the "left" part of each (mod x) part
|
||||
base_multiplier = {i: math.prod(bus_ids.values()) // v for i, v in bus_ids.items()}
|
||||
|
||||
# finding the "right" part of each (mod x) part utilizing the Extended Euclidean Algorithm
|
||||
# s. Python documentation on pow(x, -1, y)
|
||||
ext_multiplier = {i: pow(base_multiplier[i], -1, bus_ids[i]) for i in bus_ids}
|
||||
|
||||
# sum all multiplications together and add our offset
|
||||
# EEA gives us base_multiplier[i] * x == 1(one!) (mod bus_ids[i])
|
||||
# but we need base_multiplier[i] * x == i (mod bus_ids[i])
|
||||
answer = sum(i * base_multiplier[i] * ext_multiplier[i] for i in bus_ids)
|
||||
|
||||
# and shrink it down
|
||||
# for the -answer see pythons behaviour when calculating the mod of negative numbers with positive divisor
|
||||
# also: http://python-history.blogspot.com/2010/08/why-pythons-integer-division-floors.html
|
||||
lowest_common_multiple = math.lcm(*bus_ids.values())
|
||||
answer = -answer % lowest_common_multiple
|
||||
|
||||
return answer
|
||||
|
||||
return sum(
|
||||
offset * multiplier * mmi
|
||||
for offset, multiplier, mmi
|
||||
in zip(bus_ids.keys(), base_multipliers, modular_multiplicative_inverses)
|
||||
) % lowest_common_multiple
|
||||
|
||||
47
day23.py
47
day23.py
@ -6,64 +6,51 @@ TEST_SOLUTION_PART2 = 149245887792
|
||||
|
||||
|
||||
class Cup:
|
||||
def __init__(self, label, left=None, right=None):
|
||||
def __init__(self, label, right=None):
|
||||
self.label = label
|
||||
self.left = left
|
||||
self.right = right
|
||||
|
||||
|
||||
def buildDoubleLinkedListDict(cup_list):
|
||||
def buildLinkedListDict(cup_list):
|
||||
cups = {}
|
||||
left_cup = None
|
||||
first_cup = None
|
||||
last_cup = None
|
||||
for cup in cup_list:
|
||||
thisCup = Cup(cup, left_cup, None)
|
||||
thisCup = Cup(cup, None)
|
||||
if first_cup is None:
|
||||
first_cup = thisCup
|
||||
else:
|
||||
last_cup.right = thisCup
|
||||
left_cup.right = thisCup
|
||||
left_cup = thisCup
|
||||
last_cup = thisCup
|
||||
cups[cup] = thisCup
|
||||
|
||||
first_cup.left = last_cup
|
||||
last_cup.right = first_cup
|
||||
thisCup.right = first_cup
|
||||
|
||||
return cups, first_cup
|
||||
|
||||
|
||||
def play(cups, current_cup):
|
||||
def play(cups, current_cup, max_label):
|
||||
first_pickup = current_cup.right
|
||||
first_after_pickup = current_cup.right.right.right.right
|
||||
current_cup.right = first_after_pickup
|
||||
first_after_pickup.left = current_cup
|
||||
|
||||
pickup_cups = [first_pickup.label, first_pickup.right.label, first_pickup.right.right.label]
|
||||
destination_label = current_cup.label - 1 if current_cup.label > 1 else max_label
|
||||
while destination_label in [first_pickup.label, first_pickup.right.label, first_pickup.right.right.label]:
|
||||
destination_label = destination_label - 1 if destination_label > 1 else max_label
|
||||
|
||||
current_label = current_cup.label - 1 if current_cup.label > 1 else max(cups.keys())
|
||||
while current_label in pickup_cups:
|
||||
current_label -= 1
|
||||
if current_label == 0:
|
||||
current_label = max(cups.keys())
|
||||
|
||||
desination_cup = cups[current_label]
|
||||
|
||||
desination_right = desination_cup.right
|
||||
desination_cup = cups[destination_label]
|
||||
first_pickup.right.right.right = desination_cup.right
|
||||
desination_cup.right = first_pickup
|
||||
first_pickup.left = desination_cup
|
||||
desination_right.left = first_pickup.right.right
|
||||
first_pickup.right.right.right = desination_right
|
||||
|
||||
return cups, current_cup.right
|
||||
|
||||
|
||||
def part1(test_mode=False):
|
||||
my_input = aoclib.getInputAs2DArray(day=DAY, return_type=int, test=test_mode)
|
||||
cups, current_cup = buildDoubleLinkedListDict(my_input[0])
|
||||
cups, current_cup = buildLinkedListDict(my_input[0])
|
||||
|
||||
for round in range(100):
|
||||
cups, current_cup = play(cups, current_cup)
|
||||
for _ in range(100):
|
||||
cups, current_cup = play(cups, current_cup, 9)
|
||||
|
||||
answer = ""
|
||||
add_cup = cups[1]
|
||||
@ -76,9 +63,9 @@ def part1(test_mode=False):
|
||||
|
||||
def part2(test_mode=False):
|
||||
my_input = aoclib.getInputAs2DArray(day=DAY, return_type=int, test=test_mode)
|
||||
cups, current_cup = buildDoubleLinkedListDict(my_input[0] + list(range(max(my_input[0]) + 1, 1000001)))
|
||||
cups, current_cup = buildLinkedListDict(my_input[0] + list(range(max(my_input[0]) + 1, 1_000_001)))
|
||||
|
||||
for round in range(10000000):
|
||||
cups, current_cup = play(cups, current_cup)
|
||||
for _ in range(10_000_000):
|
||||
cups, current_cup = play(cups, current_cup, 1_000_000)
|
||||
|
||||
return cups[1].right.label * cups[1].right.right.label
|
||||
|
||||
68
day24.py
Normal file
68
day24.py
Normal file
@ -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)
|
||||
33
day25.py
Normal file
33
day25.py
Normal file
@ -0,0 +1,33 @@
|
||||
import aoclib
|
||||
|
||||
DAY = 25
|
||||
TEST_SOLUTION_PART1 = 14897079
|
||||
TEST_SOLUTION_PART2 = 0
|
||||
|
||||
|
||||
def transform(key, subject_number, loop_size=1):
|
||||
for _ in range(loop_size):
|
||||
key = key * subject_number % 20201227
|
||||
|
||||
return key
|
||||
|
||||
|
||||
def part1(test_mode=False):
|
||||
my_input = aoclib.getInputAsArray(day=DAY, return_type=int, test=test_mode)
|
||||
|
||||
loop_card = 1
|
||||
public_key_card = 1
|
||||
while pow(7, loop_card, 20201227) != my_input[0]:
|
||||
loop_card += 1
|
||||
public_key_card = transform(public_key_card, 7)
|
||||
|
||||
public_key_door = my_input[1]
|
||||
|
||||
# as we start with a key of 1, it's just a matter of
|
||||
# multiplying public_key_door with itself loop_card times ....
|
||||
return pow(public_key_door, loop_card, 20201227)
|
||||
|
||||
|
||||
def part2(test_mode=False):
|
||||
# there is no part2 for day 25
|
||||
return 0
|
||||
535
inputs/24
Normal file
535
inputs/24
Normal file
@ -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
|
||||
20
inputs/24_test
Normal file
20
inputs/24_test
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
|
||||
2
inputs/25_test
Normal file
2
inputs/25_test
Normal file
@ -0,0 +1,2 @@
|
||||
5764801
|
||||
17807724
|
||||
Loading…
Reference in New Issue
Block a user