Compare commits
15 Commits
34d3ba95ff
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| 2fffa5ff00 | |||
| 1756e53efc | |||
| 27083bf502 | |||
| 12155f7fe8 | |||
| 0af82b0d8b | |||
| 6064f85200 | |||
| efd89d58f9 | |||
| 904f7f7c27 | |||
| 0af1538d7f | |||
| 11ca505c83 | |||
| 8995e45bfc | |||
| 71629c5523 | |||
| 0a36d9db83 | |||
| 28c35f5375 | |||
| 659572734a |
151
15/15-1-with-anim.py
Normal file
151
15/15-1-with-anim.py
Normal file
@@ -0,0 +1,151 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
|
import numpy as np
|
||||||
|
from PIL import Image, ImageDraw, ImageFont
|
||||||
|
import cv2
|
||||||
|
from time import time
|
||||||
|
|
||||||
|
file = "./input.txt"
|
||||||
|
#file = "./ex.txt"
|
||||||
|
#file = "./ex_s.txt"
|
||||||
|
|
||||||
|
start_time = time()
|
||||||
|
|
||||||
|
def array_to_image(ar):
|
||||||
|
# Konvertiere das Array in ein NumPy-Array
|
||||||
|
np_array = np.array(ar)
|
||||||
|
# Erstelle ein leeres RGB-Bild
|
||||||
|
height, width = np_array.shape
|
||||||
|
image = Image.new('RGB', (width, height))
|
||||||
|
# Fülle das Bild mit Pixeln basierend auf den Array-Werten
|
||||||
|
for y in range(height):
|
||||||
|
for x in range(width):
|
||||||
|
if np_array[y, x] == "#":
|
||||||
|
image.putpixel((x, y), (255, 0, 0))
|
||||||
|
elif np_array[y, x] == "O":
|
||||||
|
image.putpixel((x, y), (0, 255, 0))
|
||||||
|
elif np_array[y, x] == "@":
|
||||||
|
image.putpixel((x, y), (255, 255, 255))
|
||||||
|
else:
|
||||||
|
image.putpixel((x, y), (0, 0, 0))
|
||||||
|
return image
|
||||||
|
|
||||||
|
def add_text_to_image(image, num):
|
||||||
|
draw = ImageDraw.Draw(image)
|
||||||
|
font = ImageFont.truetype("arial.ttf", 20) # Wählen Sie eine Schriftart und Größe
|
||||||
|
draw.text((5,5), f"{num:04d}", fill=(255, 255, 255), font=font) # Weißer Text
|
||||||
|
return image
|
||||||
|
|
||||||
|
def pil_to_cv2(pil_image):
|
||||||
|
return cv2.cvtColor(np.array(pil_image), cv2.COLOR_RGB2BGR)
|
||||||
|
|
||||||
|
def read_input(input_file:str) -> tuple[list[list[str]], list[str]]:
|
||||||
|
out_field=[]
|
||||||
|
out_moves=[]
|
||||||
|
f = open(input_file, "r")
|
||||||
|
for line in f:
|
||||||
|
line = line.strip()
|
||||||
|
if line == "":
|
||||||
|
continue
|
||||||
|
if "#" in line:
|
||||||
|
temp = []
|
||||||
|
for b in line:
|
||||||
|
temp.append(b)
|
||||||
|
out_field.append(temp)
|
||||||
|
elif "<" in line or ">" in line or "^" in line or "v" in line:
|
||||||
|
out_moves.append(line)
|
||||||
|
f.close()
|
||||||
|
return out_field, out_moves
|
||||||
|
|
||||||
|
def get_position(game_field) -> (int, int):
|
||||||
|
for li in range(len(game_field)):
|
||||||
|
for ro in range(len(game_field[li])):
|
||||||
|
if game_field[li][ro] == '@':
|
||||||
|
return li, ro
|
||||||
|
|
||||||
|
def print_field(f:list[list[str]]):
|
||||||
|
for r in f:
|
||||||
|
for s in r:
|
||||||
|
print(s, end="")
|
||||||
|
print()
|
||||||
|
|
||||||
|
def do_move(f:list[list[str]], m:str)-> list[list[str]]:
|
||||||
|
li, ro = get_position(f)
|
||||||
|
#print(li, ro, m)
|
||||||
|
if m == ">":
|
||||||
|
for i in range(ro+1, len(f[li])):
|
||||||
|
if f[li][i] == '.':
|
||||||
|
for ml in range(i,ro,-1):
|
||||||
|
f[li][ml] = f[li][ml-1]
|
||||||
|
f[li][ro] = '.'
|
||||||
|
return f
|
||||||
|
elif f[li][i] == '#':
|
||||||
|
return f
|
||||||
|
elif m == "<":
|
||||||
|
for i in range(ro-1, 0, -1):
|
||||||
|
if f[li][i] == '.':
|
||||||
|
for ml in range(i,ro):
|
||||||
|
f[li][ml] = f[li][ml+1]
|
||||||
|
f[li][ro] = '.'
|
||||||
|
return f
|
||||||
|
elif f[li][i] == '#':
|
||||||
|
return f
|
||||||
|
elif m == "v":
|
||||||
|
for i in range(li+1, len(f)):
|
||||||
|
if f[i][ro] == '.':
|
||||||
|
for mr in range(i,li,-1):
|
||||||
|
f[mr][ro] = f[mr-1][ro]
|
||||||
|
f[li][ro] = '.'
|
||||||
|
return f
|
||||||
|
elif f[i][ro] == '#':
|
||||||
|
return f
|
||||||
|
elif m == "^":
|
||||||
|
for i in range(li-1, 0, -1):
|
||||||
|
if f[i][ro] == '.':
|
||||||
|
for mr in range(i,li):
|
||||||
|
f[mr][ro] = f[mr+1][ro]
|
||||||
|
f[li][ro] = '.'
|
||||||
|
return f
|
||||||
|
elif f[i][ro] == '#':
|
||||||
|
return f
|
||||||
|
return f
|
||||||
|
|
||||||
|
def sum_gps_coord(f:list[list[str]]):
|
||||||
|
result = 0
|
||||||
|
for l in range(len(f)):
|
||||||
|
for r in range(len(f[l])):
|
||||||
|
if f[l][r] == "O":
|
||||||
|
result += (100 * l) + r
|
||||||
|
return result
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
field, moves_list = read_input(file)
|
||||||
|
print_field(field)
|
||||||
|
|
||||||
|
fourcc = cv2.VideoWriter_fourcc(*'mp4v')
|
||||||
|
fps = 30
|
||||||
|
frame_size = (len(field[0]), len(field))
|
||||||
|
out = cv2.VideoWriter('./solution_p1.mp4', fourcc, fps, frame_size)
|
||||||
|
gif_anim=[]
|
||||||
|
|
||||||
|
img = array_to_image(field)
|
||||||
|
gif_anim.append(img)
|
||||||
|
cv2_image = pil_to_cv2(img)
|
||||||
|
out.write(cv2_image)
|
||||||
|
|
||||||
|
for moves in moves_list:
|
||||||
|
for move in moves:
|
||||||
|
field = do_move(field,move)
|
||||||
|
#print_field(field)
|
||||||
|
img = array_to_image(field)
|
||||||
|
gif_anim.append(img)
|
||||||
|
cv2_image = pil_to_cv2(img)
|
||||||
|
out.write(cv2_image)
|
||||||
|
out.release()
|
||||||
|
gif_anim[0].save('./solution_p1.gif', save_all=True, append_images=gif_anim[1:],
|
||||||
|
optimize=False, duration=30, loop=0)
|
||||||
|
|
||||||
|
print_field(field)
|
||||||
|
print(f'Solution Part1: {sum_gps_coord(field)}')
|
||||||
|
print(f'Runtime: {time()-start_time:.2f} s')
|
||||||
157
15/15-1-with-bigger-anim.py
Normal file
157
15/15-1-with-bigger-anim.py
Normal file
@@ -0,0 +1,157 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
|
import numpy as np
|
||||||
|
from PIL import Image, ImageDraw, ImageFont
|
||||||
|
import cv2
|
||||||
|
from time import time
|
||||||
|
|
||||||
|
file = "./input.txt"
|
||||||
|
#file = "./ex.txt"
|
||||||
|
#file = "./ex_s.txt"
|
||||||
|
out_file_name = "sol_bigger"
|
||||||
|
grow_factor = 10
|
||||||
|
|
||||||
|
start_time = time()
|
||||||
|
|
||||||
|
def array_to_image(ar):
|
||||||
|
global grow_factor
|
||||||
|
# Konvertiere das Array in ein NumPy-Array
|
||||||
|
np_array = np.array(ar)
|
||||||
|
# Erstelle ein leeres RGB-Bild
|
||||||
|
height, width = np_array.shape
|
||||||
|
image = Image.new('RGB', (width * grow_factor, height * grow_factor))
|
||||||
|
# Fülle das Bild mit Pixeln basierend auf den Array-Werten
|
||||||
|
for y in range(height):
|
||||||
|
for x in range(width):
|
||||||
|
color = (0, 0, 0) # Standardfarbe schwarz
|
||||||
|
if np_array[y, x] == "#":
|
||||||
|
color = (255, 0, 0)
|
||||||
|
elif np_array[y, x] == "O":
|
||||||
|
color = (0, 255, 0)
|
||||||
|
elif np_array[y, x] == "@":
|
||||||
|
color = (255, 255, 255)
|
||||||
|
for dy in range(grow_factor):
|
||||||
|
for dx in range(grow_factor):
|
||||||
|
image.putpixel((x * grow_factor + dx, y * grow_factor + dy), color)
|
||||||
|
|
||||||
|
return image
|
||||||
|
|
||||||
|
def add_text_to_image(image, num):
|
||||||
|
draw = ImageDraw.Draw(image)
|
||||||
|
font = ImageFont.truetype("arial.ttf", 20) # Wählen Sie eine Schriftart und Größe
|
||||||
|
draw.text((5,5), f"{num:04d}", fill=(255, 255, 255), font=font) # Weißer Text
|
||||||
|
return image
|
||||||
|
|
||||||
|
def pil_to_cv2(pil_image):
|
||||||
|
return cv2.cvtColor(np.array(pil_image), cv2.COLOR_RGB2BGR)
|
||||||
|
|
||||||
|
def read_input(input_file:str) -> tuple[list[list[str]], list[str]]:
|
||||||
|
out_field=[]
|
||||||
|
out_moves=[]
|
||||||
|
f = open(input_file, "r")
|
||||||
|
for line in f:
|
||||||
|
line = line.strip()
|
||||||
|
if line == "":
|
||||||
|
continue
|
||||||
|
if "#" in line:
|
||||||
|
temp = []
|
||||||
|
for b in line:
|
||||||
|
temp.append(b)
|
||||||
|
out_field.append(temp)
|
||||||
|
elif "<" in line or ">" in line or "^" in line or "v" in line:
|
||||||
|
out_moves.append(line)
|
||||||
|
f.close()
|
||||||
|
return out_field, out_moves
|
||||||
|
|
||||||
|
def get_position(game_field) -> (int, int):
|
||||||
|
for li in range(len(game_field)):
|
||||||
|
for ro in range(len(game_field[li])):
|
||||||
|
if game_field[li][ro] == '@':
|
||||||
|
return li, ro
|
||||||
|
|
||||||
|
def print_field(f:list[list[str]]):
|
||||||
|
for r in f:
|
||||||
|
for s in r:
|
||||||
|
print(s, end="")
|
||||||
|
print()
|
||||||
|
|
||||||
|
def do_move(f:list[list[str]], m:str)-> list[list[str]]:
|
||||||
|
li, ro = get_position(f)
|
||||||
|
#print(li, ro, m)
|
||||||
|
if m == ">":
|
||||||
|
for i in range(ro+1, len(f[li])):
|
||||||
|
if f[li][i] == '.':
|
||||||
|
for ml in range(i,ro,-1):
|
||||||
|
f[li][ml] = f[li][ml-1]
|
||||||
|
f[li][ro] = '.'
|
||||||
|
return f
|
||||||
|
elif f[li][i] == '#':
|
||||||
|
return f
|
||||||
|
elif m == "<":
|
||||||
|
for i in range(ro-1, 0, -1):
|
||||||
|
if f[li][i] == '.':
|
||||||
|
for ml in range(i,ro):
|
||||||
|
f[li][ml] = f[li][ml+1]
|
||||||
|
f[li][ro] = '.'
|
||||||
|
return f
|
||||||
|
elif f[li][i] == '#':
|
||||||
|
return f
|
||||||
|
elif m == "v":
|
||||||
|
for i in range(li+1, len(f)):
|
||||||
|
if f[i][ro] == '.':
|
||||||
|
for mr in range(i,li,-1):
|
||||||
|
f[mr][ro] = f[mr-1][ro]
|
||||||
|
f[li][ro] = '.'
|
||||||
|
return f
|
||||||
|
elif f[i][ro] == '#':
|
||||||
|
return f
|
||||||
|
elif m == "^":
|
||||||
|
for i in range(li-1, 0, -1):
|
||||||
|
if f[i][ro] == '.':
|
||||||
|
for mr in range(i,li):
|
||||||
|
f[mr][ro] = f[mr+1][ro]
|
||||||
|
f[li][ro] = '.'
|
||||||
|
return f
|
||||||
|
elif f[i][ro] == '#':
|
||||||
|
return f
|
||||||
|
return f
|
||||||
|
|
||||||
|
def sum_gps_coord(f:list[list[str]]):
|
||||||
|
result = 0
|
||||||
|
for l in range(len(f)):
|
||||||
|
for r in range(len(f[l])):
|
||||||
|
if f[l][r] == "O":
|
||||||
|
result += (100 * l) + r
|
||||||
|
return result
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
field, moves_list = read_input(file)
|
||||||
|
print_field(field)
|
||||||
|
|
||||||
|
fourcc = cv2.VideoWriter_fourcc(*'mp4v')
|
||||||
|
fps = 30
|
||||||
|
frame_size = (len(field[0]) * grow_factor, len(field) * grow_factor)
|
||||||
|
out = cv2.VideoWriter(f'./{out_file_name}.mp4', fourcc, fps, frame_size)
|
||||||
|
gif_anim=[]
|
||||||
|
|
||||||
|
img = array_to_image(field)
|
||||||
|
gif_anim.append(img)
|
||||||
|
cv2_image = pil_to_cv2(img)
|
||||||
|
out.write(cv2_image)
|
||||||
|
|
||||||
|
for moves in moves_list:
|
||||||
|
for move in moves:
|
||||||
|
field = do_move(field,move)
|
||||||
|
#print_field(field)
|
||||||
|
img = array_to_image(field)
|
||||||
|
gif_anim.append(img)
|
||||||
|
cv2_image = pil_to_cv2(img)
|
||||||
|
out.write(cv2_image)
|
||||||
|
out.release()
|
||||||
|
gif_anim[0].save(f'./{out_file_name}.gif', save_all=True, append_images=gif_anim[1:],
|
||||||
|
optimize=False, duration=30, loop=0)
|
||||||
|
|
||||||
|
print_field(field)
|
||||||
|
print(f'Solution Part1: {sum_gps_coord(field)}')
|
||||||
|
print(f'Runtime: {time()-start_time:.2f} s')
|
||||||
100
15/15-1.py
Normal file
100
15/15-1.py
Normal file
@@ -0,0 +1,100 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
from time import time
|
||||||
|
|
||||||
|
file = "./input.txt"
|
||||||
|
#file = "./ex.txt"
|
||||||
|
#file = "./ex_s.txt"
|
||||||
|
|
||||||
|
start_time = time()
|
||||||
|
|
||||||
|
def read_input(input_file:str) -> tuple[list[list[str]], list[str]]:
|
||||||
|
out_field=[]
|
||||||
|
out_moves=[]
|
||||||
|
f = open(input_file, "r")
|
||||||
|
for line in f:
|
||||||
|
line = line.strip()
|
||||||
|
if line == "":
|
||||||
|
continue
|
||||||
|
if "#" in line:
|
||||||
|
temp = []
|
||||||
|
for b in line:
|
||||||
|
temp.append(b)
|
||||||
|
out_field.append(temp)
|
||||||
|
elif "<" in line or ">" in line or "^" in line or "v" in line:
|
||||||
|
out_moves.append(line)
|
||||||
|
f.close()
|
||||||
|
return out_field, out_moves
|
||||||
|
|
||||||
|
def get_position(game_field) -> (int, int):
|
||||||
|
for li in range(len(game_field)):
|
||||||
|
for ro in range(len(game_field[li])):
|
||||||
|
if game_field[li][ro] == '@':
|
||||||
|
return li, ro
|
||||||
|
|
||||||
|
def print_field(f:list[list[str]]):
|
||||||
|
for r in f:
|
||||||
|
for s in r:
|
||||||
|
print(s, end="")
|
||||||
|
print()
|
||||||
|
|
||||||
|
def do_move(f:list[list[str]], m:str)-> list[list[str]]:
|
||||||
|
li, ro = get_position(f)
|
||||||
|
#print(li, ro, m)
|
||||||
|
if m == ">":
|
||||||
|
for i in range(ro+1, len(f[li])):
|
||||||
|
if f[li][i] == '.':
|
||||||
|
for ml in range(i,ro,-1):
|
||||||
|
f[li][ml] = f[li][ml-1]
|
||||||
|
f[li][ro] = '.'
|
||||||
|
return f
|
||||||
|
elif f[li][i] == '#':
|
||||||
|
return f
|
||||||
|
elif m == "<":
|
||||||
|
for i in range(ro-1, 0, -1):
|
||||||
|
if f[li][i] == '.':
|
||||||
|
for ml in range(i,ro):
|
||||||
|
f[li][ml] = f[li][ml+1]
|
||||||
|
f[li][ro] = '.'
|
||||||
|
return f
|
||||||
|
elif f[li][i] == '#':
|
||||||
|
return f
|
||||||
|
elif m == "v":
|
||||||
|
for i in range(li+1, len(f)):
|
||||||
|
if f[i][ro] == '.':
|
||||||
|
for mr in range(i,li,-1):
|
||||||
|
f[mr][ro] = f[mr-1][ro]
|
||||||
|
f[li][ro] = '.'
|
||||||
|
return f
|
||||||
|
elif f[i][ro] == '#':
|
||||||
|
return f
|
||||||
|
elif m == "^":
|
||||||
|
for i in range(li-1, 0, -1):
|
||||||
|
if f[i][ro] == '.':
|
||||||
|
for mr in range(i,li):
|
||||||
|
f[mr][ro] = f[mr+1][ro]
|
||||||
|
f[li][ro] = '.'
|
||||||
|
return f
|
||||||
|
elif f[i][ro] == '#':
|
||||||
|
return f
|
||||||
|
return f
|
||||||
|
|
||||||
|
def sum_gps_coord(f:list[list[str]]):
|
||||||
|
result = 0
|
||||||
|
for l in range(len(f)):
|
||||||
|
for r in range(len(f[l])):
|
||||||
|
if f[l][r] == "O":
|
||||||
|
result += (100 * l) + r
|
||||||
|
return result
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
field, moves_list = read_input(file)
|
||||||
|
print_field(field)
|
||||||
|
|
||||||
|
for moves in moves_list:
|
||||||
|
for move in moves:
|
||||||
|
field = do_move(field,move)
|
||||||
|
|
||||||
|
print_field(field)
|
||||||
|
print(f'Solution Part1: {sum_gps_coord(field)}')
|
||||||
|
print(f'Runtime: {time()-start_time:.2f} s')
|
||||||
21
15/ex.txt
Normal file
21
15/ex.txt
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
##########
|
||||||
|
#..O..O.O#
|
||||||
|
#......O.#
|
||||||
|
#.OO..O.O#
|
||||||
|
#..O@..O.#
|
||||||
|
#O#..O...#
|
||||||
|
#O..O..O.#
|
||||||
|
#.OO.O.OO#
|
||||||
|
#....O...#
|
||||||
|
##########
|
||||||
|
|
||||||
|
<vv>^<v^>v>^vv^v>v<>v^v<v<^vv<<<^><<><>>v<vvv<>^v^>^<<<><<v<<<v^vv^v>^
|
||||||
|
vvv<<^>^v^^><<>>><>^<<><^vv^^<>vvv<>><^^v>^>vv<>v<<<<v<^v>^<^^>>>^<v<v
|
||||||
|
><>vv>v^v^<>><>>>><^^>vv>v<^^^>>v^v^<^^>v^^>v^<^v>v<>>v^v^<v>v^^<^^vv<
|
||||||
|
<<v<^>>^^^^>>>v^<>vvv^><v<<<>^^^vv^<vvv>^>v<^^^^v<>^>vvvv><>>v^<<^^^^^
|
||||||
|
^><^><>>><>^^<<^^v>>><^<v>^<vv>>v>>>^v><>^v><<<<v>>v<v<v>vvv>^<><<>^><
|
||||||
|
^>><>^v<><^vvv<^^<><v<<<<<><^v<<<><<<^^<v<^^^><^>>^<v^><<<^>>^v<v^v<v^
|
||||||
|
>^>>^v>vv>^<<^v<>><<><<v<<v><>v<^vv<<<>^^v^>^^>>><<^v>>v^v><^^>>^<>vv^
|
||||||
|
<><^^>^^^<><vvvvv^v<v<<>^v<v>v<<^><<><<><<<^^<<<^<<>><<><^^^>^^<>^>v<>
|
||||||
|
^^>vv<^v^v<vv>^<><v<^v>^^^>>>^^vvv^>vvv<>>>^<^>>>>>^<<^v>^vvv<>^<><<v>
|
||||||
|
v^^>>><<^^<>>^v^<v^vv<>v^<<>^<^v^v><^<<<><<^<v><v<>vv>>v><v^<vv<>v^<<^
|
||||||
9
15/ex_p2.txt
Normal file
9
15/ex_p2.txt
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
#######
|
||||||
|
#...#.#
|
||||||
|
#.....#
|
||||||
|
#..OO@#
|
||||||
|
#..O..#
|
||||||
|
#.....#
|
||||||
|
#######
|
||||||
|
|
||||||
|
<vv<<^^<<^^
|
||||||
10
15/ex_s.txt
Normal file
10
15/ex_s.txt
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
########
|
||||||
|
#..O.O.#
|
||||||
|
##@.O..#
|
||||||
|
#...O..#
|
||||||
|
#.#.O..#
|
||||||
|
#...O..#
|
||||||
|
#......#
|
||||||
|
########
|
||||||
|
|
||||||
|
<^^>>>vv<v>>v<<
|
||||||
71
15/input.txt
Normal file
71
15/input.txt
Normal file
@@ -0,0 +1,71 @@
|
|||||||
|
##################################################
|
||||||
|
#.#O.O...#..##O.#.O...#OO.O....O.O#....#.....#.OO#
|
||||||
|
#...O..O...O.....O...#...OOO.O..#.....OO....##O..#
|
||||||
|
#O....O........O#........O#O..O.#.O..OO.O.O.O.OO.#
|
||||||
|
#....#......O...O...O....#.O.OO.OOO.#OOOO.#...#..#
|
||||||
|
#O.O....OO.#O....O#O...O...O.#...OOO.....OO.##O..#
|
||||||
|
##..O....OO.O...O..OO.O...O..#.O....#....O...##..#
|
||||||
|
#O.O.OO#.#O.OOO.........OO..OO#OO..OO.OOO..O.....#
|
||||||
|
#O...................O..#....OO..O..O.O#..#....O.#
|
||||||
|
#..O.#.O......#.O.OO.#.OO..O.O.OOOO....O...#..O..#
|
||||||
|
#....O..O#O.O.O............OOO...O....O.OO..#...O#
|
||||||
|
#.#.O.OO..O...#.O#.OO#.....O....O.#...O.O.O......#
|
||||||
|
#....O...OO...#..OO.O...O.....OOOO.......O....##.#
|
||||||
|
#........#...OO#O...#......#....O.O...OOO......O.#
|
||||||
|
#OO#.O...O..O..#O#.O..O.OO......O#.O.O...O...O...#
|
||||||
|
#..O..O.O.OO.O.O..O......OOO......O..#OO.O#..O.O.#
|
||||||
|
#..O..OOOO...#O..#...#......O.O.O.O#...O....O....#
|
||||||
|
#O...OO.OO..O..O..O......O..#.O...O..OO...O.#O...#
|
||||||
|
#.O..#..OO..#....OO..OO..##....O.OO.OO#O....O.#..#
|
||||||
|
#..O.O.OO.OO.....#O.OO....OO....OO.#....O..#.OO..#
|
||||||
|
#......OO#..O.#....#..OO....O.#OO....O#.O.#..O#.O#
|
||||||
|
#.O.......#..#.O..O......O#O.#...O...O.......OOOO#
|
||||||
|
#..OO.O..O#..OOO..O.OOO..........O........O.....O#
|
||||||
|
##OO#...O..OO...OO..#..O..OO......OO.OOOO.#O...O.#
|
||||||
|
##O.O...O....O..O.O.....@...OOO..O.#O....O....O.##
|
||||||
|
#.....OO...O##.........OO..O#..OOOO.O.O....O..OO.#
|
||||||
|
#OO...#.O.O..O.O.OOO#.O.O##....O......O.....O....#
|
||||||
|
#O.O.......O.O....#O.O.....#.....#.#...OOOO.O#OO.#
|
||||||
|
#..O#O.....OO.#.O.........O......O.#....O.#.##...#
|
||||||
|
#....O.O.O.......O.O.....OO#.O....O...O.O.#..OO..#
|
||||||
|
#...O......#.O...#.OO..O.O...O...O..#O#O...#....O#
|
||||||
|
#.###OO....O..O...O.O..###..O..........#..OO#.O..#
|
||||||
|
#OO...#OO.O.#..O#..#OO.OO#OO....O....#....O....O.#
|
||||||
|
#.OO.O....O.O....#O.O.O..O#........#..OOO...#....#
|
||||||
|
#.OO...O.O....O...O#O#..#...#O#......O..O.#.O....#
|
||||||
|
#O........OO.#..##O...O...OO........O.#O.OO.....O#
|
||||||
|
#...OOOO....O...#O..OO.OO...O.O#.....O..#........#
|
||||||
|
#.OO..........OOO..OO..O..............OO.#O.....##
|
||||||
|
#....O..OO.O..##.##...#.....O.O#O###.O.O......#..#
|
||||||
|
#..O#O#.#...OOO.#...##O...OOO..OO.#OO.#.....#OO.##
|
||||||
|
#..OOOO.OOO.#O......#..O..O..OO.O#.O.O.#O....#..O#
|
||||||
|
#...O.OO#.#.....OO.....#.#..........O#.O.O.O.....#
|
||||||
|
#.....#..O...O#O.##...O.......OO.O.......OO.....O#
|
||||||
|
#OOO..#.........OO.........O..#.#O#....OOO.##OO.O#
|
||||||
|
#.......O.......O.O....O..O...O......#O........#.#
|
||||||
|
#....#OOO...O.O..O#....#.O...#.O.#.#O#O.#......O.#
|
||||||
|
#.OOO..#O..........##..O...OO.O..........#.O.....#
|
||||||
|
#.O.O..OOO......O#..O...##.......OO......OO..O..O#
|
||||||
|
#.O.#.OO.#.....#O.O.#.O.O......##.........O.O....#
|
||||||
|
##################################################
|
||||||
|
|
||||||
|
vv^>vv<<>v>^^v>><<>vv^>^><<>v^<vv>^<><><<><vv^v^>vvv><^>^^><^<>^<<v>>>v>v>><vv<>>^^vvv<>>^v<<>^<^v>vv<^<>v>>^^^>^^<<v^v<>^v<>><<^^>>^v>^^>>>><><^<<>>^^v><<^^v<vv^<<<vv<<<vvv>><><<><vv^^>^>>v^v^^>><vv>v^<v^>>v^>^^v<v>^^^^v^>^>>v>>v<v<>vv^^^><<><v<<vv^<<<<v^^^v<<^>><<>>>v^<v^^>^<^>v<^^v>vv<<<^^<<<>>>v<>^^^<^>>>^<>^^><^^><^^^<<>v>v<v^^<>v<^<>>>>^^v<<><<<<<vv<>>^<>^>^<^v>vv<<^^vv>v^>v>v<^<><v<v>^^v<>^<<vv^^vv<v<^^><^^>v^v^^^v<v>^><>v<v<>^^^>>>v<vv^v^>>^v<^^<>^><^>>^vv<>^>v>v^^^^>v^v<^>>v>>^^v^v^v<<><^><>v<v<v>>^v>v>v>><>^<>v^v<><>^<vv>vv>>^<v^<^>v<^>^^^<>>^^^>v^vv<vv<v>>v>>v^<>v<<<<v<<v>vv<<<>v>v>v^v^<>>^>^<v><v>><^^<^><>vvv^>v>^^^><^><^>^<>>><><<v>^vv<v^><v<<v<vv^^>v>^<<v>^v>>^>v^<^^^^>^^>>>^^^<<^v>^v>^vv^<v>^^vv>^^^<<^vv<>><v^v<<<v>>vvv<>^^>>^<v>v^^^>v^^<>^v>>^>^>v^>^^^v<<^>v^>^>^>v<^<^^><^^<>>^v>>>^<^^v<v^^><<v>v<<><>^<v><v^><v^v<>><v^>v<v^<>^v><^^<><^v>>v^><>v^v<^<vvv><>v<^<>v<v^v^>v><v<>><><>>^><<^v<>v^^<>^^^<>>^>><v>v<<>^<<<<v<>v<>v^^^>><><v><vvv^v^v<^<>^v<vv^>v><>vv<><vvvv>>>^^^^^^<
|
||||||
|
>vvvvv^<><v<<v^><vv^>^^<vvv<^^<v><^>>v>>v>>^vv<>>v>^^v<<^^<>^>^v<v>vvvvv^^>v>^<<<v><<v^vvvv>v>^^<>^^<<>>v<^^<>v>^>>v<^><^v>^^><v<vvv>v^>^<>^>^<^vv<<>vvv>><><<><^^v>^^^^<^<>^>>v>>vv><><<^v><v<^^<>v><>^<><v<>vv>^v<v^v^^<<><^v>v^v>>^^^<>v>v^<>^^v>v<<<^v<^<vv^>>^<<^v<v><^>^^vvv^v><^^v>v>^vv<>v<vv^v<^v<<><v^>v>^>v<<<^^v^<v><>>><<<vvv<^>^<v^<<^^v<<<>vv<v^v<v>vv^v<<^<^^>><<^<^^<<^>^><>v>>v><<vv^<>^vv^v^>><<v>>v^^<>><^>vv>v>>>><>^vv^v<v<^^v>^v<^^^<<^^v<^vv><^<v>v>^<^vv><><vv<^><v>^^v^>><^<v>v^<<<<v^^^vv^<<^v>v><^^^vvv^^<vvv><>^>>v^<<>v<>v><<^vvv^>v<v>vv>>^v^<>>^><v<>^vv<^>v<<v<^v^^v^^>><<<>>>^v>v><<vvv>vv>>vv>vv<><><<v<^><>><>^<^<^v>v><<<v^v^><v^vv>^<<v<vv^^vv^<v>^<vv>>vvv^v<vv^><>^v><v<v^>vv>>^^>vv<>><<>v>^>>vv<>><<>v<><vvvv<<v^>v^<><<^<>v<^^v^^v^<<^^^v^^><>^v><>>v<v<v^^v<><>^v>v<^>^v><<v>v^v^<^v>><<^>vv<>>>^>^vv^v<<^^v>>^<^v<>v>^<^v>v<^vv^<^<>vv^^^<>v>v<<<<<vv<>^vv^^<v><>v>^<^v^<^^^v^^<^<<^^>^v^v<><<<><v<^>>>>>><><^<^<^vvv<>><<>v^^v^><>>v^^^>>^v<v^vv>>><><><<^^v<^^^^v<<<>>>^<>>^<vv<>^^><><<>
|
||||||
|
<^>^^v^<<><<>>^><<^><v^>^<>>^^<>^>v<>><v^v<v<^>^v<><^><>v><<>^<v^^^v><v<>v<>^>^^<v<><v<^v<>^^>^>v>v<<^>v>^^v^v>^^v^^v>v^>^>v><<v<^>v<>vv^<v<<><>>>>^v<>^<>^^<>><<^>>v>v^>>>vv<<>>^^<v<v^><><><<>v>v^>^>v>^^v<v>>>v>vv^>>^>>><<v><<v<vv^vvv<><v<<vvv<v>vv^>>vv>^>v><v<>^<v>v>>^<>>^vv^^><v^<>^<<^>^><v^><<v<v<<^<^>>v>vvvv>vv^>>>vv^v<<<<v<vvvv^<><v^^>^<<^v<v<>><>>>^<<<vv^>vv^^>v^^>^vv>>v^<vv<>vvv<v>v<<v^<v^v>v<^vv>vv>^v<>v^>^vv^v<v>vv>><<>v^<^>^v<v<^>vv^^>^^><>v<<v<v>>^vv^vv<>vv^^^v<^vv>vv^v<^><vv>^v^^v^v^v^<>v<^>>vv^v><^><<>>v^v^v>>^^v><^^^^><vv><>v>>v^v^<^<vv<^>vv<<v^^^^<^<><>v>^^<<vv<^v<<<<vv^>>^>v^^<<^<vv^<v<><^v<^^>v^v^><<v><<><^^^vv<<vv^>>v<^<<vv<v^<^>>>><v<v<^<^v>^<v<>v<<<v^>^^v^v<^>><<<<vv^^vv><<vv<^>^^v<v^^v<^^>>v>v<v>vv<>>^^^<>>^<>><v^vv>vvv<<^v^<>^^<<v^>v>vv>>^vv>^><vv<<><><>v><v<v^>^v><<<<<v>>>>>>^<<^>^^v>><^>vvv^<v^v<^vv><^v>>><<<>><vv^v>>>>^<>^^^><^<^v<v>^<vv<<<>v<^^<>^^^>>>^<^<><^>^^><<>>>>^v>><^^^<>v^><>>v>v<^^v>vv^><<<v<vv<<^^>><v><v^><>^v<^<^^<vv<v>^<v^<^<v><>v>>><>>^<>^><>^^v^>
|
||||||
|
<^><^<^<<^<><><<<>^<^<>^vvv<<^<vv<^<^<v^>^v><v>>v>>>v^^>^^>>v<^<^v>^v>>^>>>>>>>>v^v^<>v<v<v>v^<v>><v^v>>vv^v^><<v<<<>>^v>^v^><^<v^<^<^^^<^>vvvv>^>>><<>^^^^^>^v^^<<>^<><<^>v^v>v^<>v<^><^^><<^v^<><^^v^>^vvv<>>v^v>^v^v^^v<vvv<v^^^^>^v>v<>v^>^><^^<><vvvv>^>><vv<v><<<^^>><<<^>v<>^>>><^<<v^v>v<>^<v<<vv>>vv<>^>>^<><v<^^<>^^><><^^vv<^^><<^<>v<^<^><>^vvvvvv>>>>^^^^<v^><<v<<>^^v>^>>v<^^v>v<>^<>>^^><<>^^<>^v<vv>><v>>v^>vv^<<<v<^^><^><<vvv>>>^^>v<<<<^v<v^v<^<^^v>>>vvv><^v<>^^^^v>>vv^vv^<vv<<<>><v<^>vv<v^<vv^^^><<^^v<<^^vv<v>^^<<v<^^<^^^>v<^^>>>v<>^>vv<<^<^^<<<>><<<>vv<<>>v>^^<>>^v>>^vvv<vv<^v<>>vv<^v^v<<<<^><^^>v><<v^^v^<>>^vv<><v^<>v^>^^<vv<<>^vv>v>><^^v<<v^^v<>><><<v^<><<v>><><v^vv>^<<<>>v<<vv^<>v>>^^>>v^v<<<^vv<>^v^>^vv^^v^vv^^^>>^<>>><>>>v<>>v>^v<^<>><^<<>^><vvvvvv><<vv>vv<^v<<^<v><<<<>>>v>>^^v^^^>^>^>><^v><<^<><^>>v<^<<>>>>v^v<<>><v>^<v<>v>><v<>v<>>>>^v^vv>^v><>v<<v>^v^<^<>^^v><^v<^<^^>>vvv^>>v^><v^><<v>><v>>^>^v^^v>v^<>v<v<<v^vv>v<>>>vv<<><<><^>^>v>^v<<v^^v<>>>^<^<>>v^^^<v>vvv>>^^^v^<>vv>>v<
|
||||||
|
^v^>><^>^<<^<>>v^<^v^v>><^<>^<v<^v<v<>v^<><^vv<^vvvv>^^>v><vvv^<<<<>vvv<^<<>v^>^v^<<>><>>^vv<>>>vv<<<^<^<<>v<v<v><>^>^^>v^v<v^><>v<<vv<^<v<>^^^^^vv>^<^>^^v<v>^v<>>>v<><>^<v^^><v^^^>vv>>>>>v^<<<v<v^v<vv^<<^^vv^>v>>>v>vv>>^^^^v^vv<<v>v^^^<v^><v<vv>>>>v^v^v^<>^^v^>v<vv^>>^vv<^<<^^>^v<v>^>v>>^<<^v<>v^^vv<^<<<><>v>>>><^vv^^^<<vv^^v^^v^v>^^v><<<v<v>^^^^vv^>>v>>vvvv>><<^>v<^v^^vv>><v^v^v>vvv<<>>^^v>^^><<>vv^vv>v>^<^^<>>vv^^<v^^^>><<>v^>^<v><>><^<v^^<^>>>>>><<<>>>^<<^^^<v^>^v^^v^vvv><^<>><v^>^^><v>vv>>>v^^^<<<<>v^^>>^<<<>v<v^v<v^><v>^v<^>v<>><v^>vv>v^><>>^v>^v<>>>v^^^^v^v<>vv<<<>><><^^>>><<^v^^^v<v^^^v^v>>>v>^v>vv>v<<v>^vv>^><v^^<vv<v<<<^>>^v<vvvv^<<^v^^^<^<v><<<^vv^vvv>^>vv<>v>>^<v>>>^v^>^>>^v^vv><v<<><^vv>>>v>^v^v<^^<v<<<^^^v<^<^<v>^v^v><>>>v>v>><<>^<^>^<^v<^vv<<>v>^^<v>^v<^<^v^>^<<<v>^<>>^>^><<v<^v<<>>>v<^><<><><vv^><v>>vv>>v^<v<v<^^vv^^<<^v><vv^<>^v>v<^^<v<><><^<v<v>v<^^<<>^<^<<^v>>^><>><v<v^<vv<^><v^^>^<>>^v^<<v>^v>v>><<^^<<^<<^<<^<<^>vvv<vvv^^vv^^<<<v<<<>^<^v^^>^v>v^^v<<>v>>^<>><v^^><^v<
|
||||||
|
vv^^^<^vv<v^^^^^><^^>^>><^>>>^^>^^v><v>^><^>><<v><<>^<<^vv^^>^>v^>v^^>v<v^^^v^<<v<>><><v>vv><^<>>>>>^<<v^^<^^><>v^v<vv>^v<><>vv^<^vv^vv<^<^>^v<>>><vv>>^>v<v>><^><><><^<<^v<^>>vv<^<><^>^v^^^<<>>v^<v>^^<vv>^^v^<^^>>>^<>^>v>>^><>v^<><>>v<vv<><<^v<v>vv<^<<vv>>>v><>^<^<<<^^^<<vv<<v^^vv>><v<<<<v^v<>>v><<^v<><>v^v>>>^>^<v>vvvv><<><v><<v<v^><<><><>>>><<^>v><^v^>v><>v^^<^v<^v<^<>^<<v<>>^<<^v<<<v<v><vvvv^v^<>><><v<v<><<^^^v^>v^>^^^<><<^><vv^^^>^><v^vv>v>>^><vv>v^>^v>vv><^>v^>>><v<v><^^>^^>>><>^^><>^^^^^vv<>>>^^^v^v<<<v^>^v^v<^<^^<v>^<^<>vv<v^v^<<>><>v>><><<v<^v><><^<<<>>><^>^<v^^><v<><<v>^^<^>v^><vvv<v><><v><^>^<<><vvvvvv>v<v^v><><>v<<^<v>v<<>>v^^^v<<>>><<vv>>>^>^<<<>v^<^^vv^v^v<v>v<v>^>^<v<v^v>>^^>^<>vv^^v^^^>^v^<v<v>^<v^v^vvv<v^^^^^<><^>v<^v<<<<>v<<>^<^^^>><><^<^^vv^v>><><v<<>vv^^^><<<^^<^v<v>v<>^v^<<^v><vv^v^^<<^>v^^^>^^^<>vv>><<<^^v>v<>^^^v^v<>><v>v^v^<><^<>><^><v<<>^v^^^v<^v^<v<>^^>v^><v^>^^^>^<>^vv<<<>>v>>>>v^>v^^v^>>vv^v^vv^v<>>^<v<v<^>v>><v>><^^v<>^><v<^^vv^<v>v<<vv<<^vvvv^^^vvv^^<<><<^^
|
||||||
|
>v^v>>>>><vvv><<>^<v<<<v<><^^<^^^>><>^^^<>vv<>v<v<>vv<>v<>>v<vv<<>vv><^vv<>v^>^<v><<^v^^v>>^>v^v><<v>vv^>^^^><v<v^>vv^<^v><v^v>^>v>vv^^><v>><<><v^<v^vv^^<>><v>>^^<^>^^v>^>^^><<v^<v><><v<<v^>>^<>vvv<>><vv<vv<<<><<v<>^v>>^v>^>>^^v>^vv<v^<v>><v<<v^v^><<v>v^><vv>v^v><v>>^v^v^>v><>vv><>v<<<^v>v><<<vv>^v^><v<v<<>vv^^v>v^v^<^<<vv<>v>v<v<>v>^^>v^^><^<v^v<v>v^>>^>^^^v>><><><^^^<^>v>^>><<vv<v>^>>><<>v<>>>v<>v^>^vv><<^vv<<v^<v<^<<>>v>v<>^><vv>v><v>v><^<^<>>^v>><v<<>^v>^><^v<<^<^^><vv>^v<^^v<^>v<<^^vv<v<^v<>><<^<<>^^^v^<vv>>>^v^<>>>^v>v^>>^>^^^^>v>^>>^>vvvv^<>^^>><^<<<^>>><^^^^^>v<>v^<><<<<>>>v<^^><>>^v<^<v^><>^>>v<^>v^<>>>^^^>v<<>^vv>v^<<v<v>><<>vv^v^vvvvv^^>^<^<>>^v>v<>^<v^^<v>^<>>>>v^<vv^<>^v>>^<vv^^^^v>>>>^>>^><^<<<^<^><v<^<>>^^v<>v>vv^v^v^<<>v<<v>><v^>v>>><<v^<>^<^^<^>vv<><<<^<v<v^<v<v>><^><v<>>v<<<>>^><^v<><>>v^<vv<>v<<^><<v<>^^<><^^>v>^<vv><>^^>v<v>^<>v<^>vvv><>>vv^^^>vv^>v^v<<<^<^^>v<v>>><vv<<^>>^^>^v<v^v^v^v^^<><<^<^^v><<^^^vvv>>^>>^^v<^>vv<<>^v^^>v^>>>vv^>>v<>^v<>vv^v><<v^>>vv<>^^>^<v<^<
|
||||||
|
<<^v<<^^>^^^v<^<<^^v>><^^v<<<v<v^><>v^v>^^^>v^v^<>v^vv<><^<<>v^<>^<v>^v>v^v><>vv<<>^<>^<v<^^>vv><>^v<><<vv<<<<>v>^>v<v>v><<<>^<>>><v^><><^^v><>^v<vv^<><<vv><><<^^><>^vvv>^<>vvvv>^^^^^^<<>^^>^v>><vv<>^^<<^>^^>^v^^v<v^<^><vv>^<><<<^v^<^vvv><>>^<^v>>v>>vvv<>v>^<^^^^>>v><<^>><><>v>>^v^^^vv<<^^v>^^v<v<>><v^vv>>^<v<vv<>^>v>vvv<<vvv>^^^<v<>v<^>>v<^<<>>vv^<v^>v>^<<<v>vv>v^vv<v^>v<v<<^<>^v>>vv<v>>v>>^v<>v^>^>^<<>>><^^v<>v<^>>^^v^^>>^<^^^v^>v^^v<vv^<<v^<v^>v<^^>>^vv>^>^>^v<v^^<^^<vv<<^v<v^^vv>v^^^v<>><<<^^v<<v^>>>>>^v^>><^^>^^v>v><^>v<^<<^vv<>^><^><v<<>v^><v<<>^><v<<><><<^>vv^^<<^>v<^<<>^<vvv<<^vvv>>vv<<>vv<^^v>^>^v><<<>vv><^^^>><<><^v^v<^<v<^v^>^v<v^v>v^^^vv<<>v>v<^v<>^<^v>^^<^v^^^>><v<>><^<><^>^<><^^>><^vvv>>vv>>>^><^^<vv<^>^<<vv>^v<v<<<>v<v^><^^>^<^>^^>>>^><>><<^^><<<vv<v^<<^>^v><<^<><^v><^^>>><^v>^^^v>>v<>^^^^^^<<>^^>v<>^vvv>>>vv<<<^vvv<v<<><^<^^v><<^^>>><>><<^<<^^>v^^^<<v<^v^^<vvv^<^v>^<<<^<^>^v<v<<>vvv<vv>>^>^vvv<^<v>>^<vv>>v^<>v<<^<>^>^vv^^v><<^vv^v^vv><v<^>><v><v<><^vv>^v>v^^v>>>^<^<><^>
|
||||||
|
>^^vv^v^^<><<v<>v>>^><v>v^<<v>>vv^<<v<^<>vv<>>^>><>>^<<<<><<^^>><v<vv<>v^<<^>>>><>><^>v^^>>>>vv>><<v<<^<>^>>^^<v^>vv>v<<v>v<>v>v<v><^>^<>>><<><^^>v<<v<v>^^<>>>^><>v>vv^^^<^^<vv><v<<v<><>>vvv^>>>>>^vv<v>>^>^v>^^>vvvv^<v>^v^<^>^^<^<<<<>^^<v>><<<>v<<>><v^v<v>^>v<^v>>>^v>v<^<<<vv<^v<v>>v><<v>>v>v><>^v^v^>>^v>^v>^>>v>vv^>>>>^<><>v>>^<><v<>>^v<>v^>>v^<><<<v^><>v>><><>v<>v<v<>>>>v<<><>>^v>^>>><<v<>^v>>v^<vv^^>^^^><^^><>vv><<>><^v^^^^^><v^vv>>^vv>>v<v>>>>>>vv>><>v^^><<v<^>^vv<<^>^v<^^^<>v>^^>>v^<^>^^^^v^>>>>v<>v<<<>^><v<v><<>v^^>>^<v^v<>^<>>>v<^<v<<><vv<v>>>>><v^>v<>^<><<vv^<>>^<vv^<<v>^v>^^vvvv>v>^vv>v>^><><^>>vv^<>>^v^v<<^><>^<^^>vv><<<>>vv>v^<>>^v^v^<^>>v^v><<^^>>^<vv^^^<><^vv>^>^^^v>vv^>>^<<>vvv>v^^v>v>^v><^>><<^<<^>^<^^vv><v>^><>^v<^^<v>v><><^vv^vv<<^<v>^^>v>>vv^^^><<>^v><^^v^<v<<<>vv>v^>>><<^v<v^vvv^><^>>>><><<vvv>^v<><>v>>v>^v^<>v^^<<^v>v<>>v><><v<v^^v<>vv^<v>>>v^<><^^^<<^<v^>>^^^>v^^>vv^v>>^<<<><>^v^^<^^><vv<>>v^^>>^v<^v>>^v^v<v>>^vvvv>v<>><<^^<<vv<v<>v^^>><<v^<v^<>>>>^><>v^<<^<><>v>v<
|
||||||
|
<v<>v<>^>^v<>^vvvv^<^>vvv>v^<>^<>>v<v<v<>>^<^vv^>^^^<^v<^v^^v^>v<^<v<<<vv>^v^v><<<><^v>^><>>^v>vv>>v^>>^><><>v>^v>v^^v<^<<v^v<>vv><>^v>>v<^>vv<>><v><<<vvv>^v>>v><^^^^>^<^>><>^vv>^><v>^>v>^<<v<<^>^^vv>v^>>v^v>^^><<<>^<>>vv^<>^v><<v^<^>vv^><^^^v>^<v^<^>>v<<^><><<<><<v>^^<>^vvv<v>>>><v><v>^><v^vvv><^<>v>v><v<v<<^v>>^^vv^<^<><^<>v^><vvv>vv<^>^<<vv^^^vv<v<vvv<>><v^<v^<v^<>^^<^>^><v>^<<v>^>v^<v<^vv^v<^<v>v<>><<>>^vv<>>><<v^<^^^^v>v^v^v<>vvv>>^><<v<v><v><<>v^<^vv<^^><^vvvvvv^<vv<v^v<><<^>>^^^^v<>vv<^v><<<<v>><>vvv<v>^v^><^^^^>^<v>>v>v>v^v<>v>><<^><<^v<v^>>^<v^<^^<^>>^<v><>^<<>><>vvvv^>v<v^v^><<>v><v<^<<>v>v^>vvv>vv^<>v<<^^<^>vv^v>><^vv<v><^^<v>^vv^>v<>^^<v<vv<^<v>v^<<^<<<>>><v^<>v>>^>><<^<>>>v^<<v<v^^>^<^>^<>v^^^^<v^vv>v>v<v^><<>^<>>>v>v<<^v^<<><v>^><v><<>>vv><^<v<>>vv<>><<><>^v^>v>^<><>v<^^<<^v^<^<v<v>>vvv^vv<^><<^>^^><^>^>>v><vv^>>^>>v<^^>vv<v>>^>>^^v<<<<<<^>^^v>^v>>^v>vv^v<v>^<<<^>v^<>>>v<^<<>^v>v<v>>^^<<<>v^><<<v^v<^<^<>^^^v>v<>v^^v^v>^>v<^v><>^v^v<>^<^v<<v<vvv^v<>^<^v^v>^>^^<v^>>v><vv<>v
|
||||||
|
v^v<^<v>v^>v><^><^v>^v^>^^><^<<^^<<<^<<^v<^<>><^>vvvv>v<<<vv^^^vv<^v><^<>^<>^>^v>>^<v>vv<^v<>^^^vv<<^<<>v>>>^^v<v^^^>^<><^^>^>^<><vv^<v<<<v<vv>^><v^<<>^<<<^<v>>>v<<<><<v<<><vv<^<><>^^><<^>vv<v^vv<v^v^<>><vvv^<^v<^^>>v>^><v>^v<v>^^v^>v>v^><><<<<v^>>v><>vv><^><v^>^<<^<v<v<^<>>>v^vv><^^>>>v>>^<vvv>^<><>^v<>>v^vv^v<<^v<^v>^vv^^>>v<v^>v<<^><><>><><^v><>^<^^>>>>vv^v^>vv^<^vv<><>^><><><^vv^^<>^v<<>^v^v^v<v>v^>^vv>>>>>vv><>>^v<<v><>^<>v<<<v<vvv><>^^>v><v>v^^v<<vvv^^<>v^v>^^^<^^>>>vv>v><<>v>>>^^<^<<^vvv^<>^<^v><vv>>^<>>^^><><^vv<<<v<>^v^>^><^v^<v>>vv>^^><v<<<^<^<vv^v<^v^^>^>>vv^vv><>^v>v>>v<>v<>vv^vvv>^<>v>^v^>>^>^<v^<^vv><<v<<^^>^<v^><>v<^>v^^><>vv>v<<<>>^^^^>vv<v<^>v><v>v^v^v<v>v>^v<>>>v<<>>v^<<>>^^^<^v^>v>vvv^>^v^v^>>>><v>><vv^>v^vvvvv>v<<<<>^<^^^v><^<>>v>^<^>vvvv<>v>^^>vv^><^v^v>^v>>v^^v>>v<vvvv^v^^v>^^^^>><^v^^v>v><<>v^^><^<v>^^^<vv>^v<>^v>>vvvv>>^>^<^<>^><<v>v^>^>>^<<^v>><v>v>^>^<<v^<<^>^<^^<v<<<^<v<<>v^^>><^^v^v^vv^>^v<<^^^><<^^<<<vv^^><><v<<<>^^^^^^^>vvv<>v<vvv<<>>v<>^<^^^><v>^<^vvvv^v^
|
||||||
|
vv^^><>^vv^v<v^<^v>v^>^v>v<>v<<<<>v>>vvvv>v<^^><>><<v>vvv<>^vv><<>^<>>v<>v<vv<<<^>^<<^v<^v^>>vv<^^<><v^><<>v<<>>>v<>v><^vv>v>^v<^<<>>v>^><vv>^^v^<vv>><<v<^^vv^vv^<<><^v^vv<>^^^^<<v^^^>>v^v>^>><<>^>v<^^vv^>^^^<^^vvv<^^><<>vv^^^><v^<v^>v>^<^vv>^><<<><>>v<>v><><>>>^<vv<v<^><><<>v<<<>>><<^><<><<<^><^v^^><<v^^<^<vvv>v>^>v^v^^^<v><v>>^^v<vvv>vv>^<^vv<^^<>^>><<^<>>><^vv^>>vv<v^^^^^v<<<^<<^<>><<v^<<^v^vv^<^v^>>vv><^^^v^>^v>v^v>v^^>^v<><v><^<^v<^v<>^<><<v<^vvv<>v<^><>^^>^^<>>>^<>vvv^v<>^v>^><<^vv><>>>^v<^><<>><<<^v<><^<>>^^><^<v<^^>^<vv^<<^<<><><^><^><^<v^^^vv>v><^v<^>vvvv<>^<^<<^^v<v^>v>>>v>>>v>>v<^<^<>>>v^<v><>v^><<^<>v^v><^^v><^>>v^<>>^<^>>v><v^>^><><>^^>v<^^>v^^v><><><<vv^<^><v>v><><v><^v>v^>v<>^><<><>v>v><^>vv<^v<vv<><>v<>^^v<^v>v<vv<^<vv<<vv^<v><^^^^>vv^>^vvv><v^^<><<<<^^>vv^^<v>>>>^v>>^<v^<>^><v<<>v^<<><<^>>><^<<>>>^<>^<<^vvv>>>v>v>><><^vv^<>v><v^<^^<^<vv^>v^v<v>><>>^<v>>v><^<^>><v>v^<<>v^<<^^v<^v^><><<v^vv^^<>vv>^^><^<^^<vv>vv<<v>v<<<vv^^^^>^^^v^^^vv<^^^v^v>>>>v<v<><^><><>^^>>^^^^<v^<^v
|
||||||
|
v>v>^v^><<<><<<v^vv>^^v><>><^^>vv^>^v>>v>v>^<v<^vv<><><^><<v<<<<^^>v<^<>^v><>v^<>^v<vvv^^><<^>>v>>^^^<><vv^v><^^<vv>>^^v>><vv^<v<^^^>vv^>v^v^>^^^^<^>><<<><v>vv>^^^v><^^v^^^^^>><<^>>v>v>^><>>^vv><^<<v<><<>>>>><>^>vv^<><><><^<vv<>^>^<<<^<^vvv<^v>vv><v>>^>^>>vv>>^<<vv><<^<<v>v>^v>v>v>vv<^>v^>v^v^v^<v>^>^>^^<>v><vvv>v>^^^<>^^^<<>^>>^<>><>^^>v>>^^^>v^<^<<v>>^^<^>v><>vv<v<v^>^>v>>^^<>^<<v<>v^>v>v<<<<<^v><^<<^>>^v^>v^v><^>^<v<<^v^^^<<>^><<>v<<v>v>v>v^><<v^^^^<^<v<<vv^v^^v>>><^>^<v>^<v<v<>^>^^^vvv>vv>>v<v><>^v^^^>^<>vv<^><vv^v<v<>v>v<>><<<^v^<v^^^>^<v^>^<v>v<^<<^>^^>>^^>>><<<^<^<^><<><^^><><vv>>^<<^^<v<^<><><<^><^v^<vv><v<<^v<><v^v><<^>v<>>>>^>^^v<^>>v<v^>^>vv>v<><<>^<v<>^v^>^>^^<<>^>v<><^^^>>^^v><>>>v><^^^<>vv<<<<<vv><^>><v^v<^v<vvv<>^v>>v>>^<v<>^v^v><<^<>><v>>^>v<<v^^^<<^<<v<^^><^v<^^v>^^<>^v^>>^>>^<^<<^v<<>vvv>vv>^>^v^<<^>>v^><<<^<><^<><^><^vvv<v<>v^>v><^^<v<^^^>><<<>>vv^>v><>v^v>>vvv>v>^vvv>^>v<^>v>>><>>^^^<^vv<<^^<^>vv<v<><>>>^<v>v<^^vv<>^v>v>vv>v^>><><^<><^v<^<<^^v^<^>^vvv>><^>v>>>>>^><>
|
||||||
|
>^<vv>><<vv>v<><vv>^^>^^vv^v<v^>>^<<<vvvv>^^v>^>vvv><vv^v<^^<<<vv^>v^v><v<<^<<<^v^<>vv^<>v^>^v>>^vv^>>>v^^<<<>v<^v<^>^>^<^<^^v^^>^<<<^<<<^v<><>v>>><^^<vv<><v>v<<v>vv^v>>>^^vvvv^<<<vv>^vv<>^<>^<>><>><vv^^<v<><>^^<^^^<>^<vv<vvv><><^<>><<<vv^<><v>>^<<v^<^^^<^^v^<vv<^v^v^>>v<v><^v>>^v<^<<v^v<><>^^v<^>vv>><^vv>v<<<^<>>v>^<<>^^^<><^<^<vv^<>^vvv<v^>v<v>v<>^^<v>v^>v^><^^>^^v<>>><v><<^vv<v><^<v>><<<v^v<vv<v><vv^<v^><><^>v^vv><v<vv^<v^>vvv^>>v>v^^^>v<v<v<<^<^>^>><v><^>^<vv^><v^>>><^>^vv^^>>v<^v>vvv>v>v^<^>>^^><>v^>^v^^vv><<^>v<<<><<>^v^<<>>^v>^^>^<^<>^<v<v>^>^v^<>><^^<<<><v^^<>^><<<v>><<v^<vvv><<>^>><^<>vv>^>>^v<v<>v^>>>v>>><^vv^>^v<><>>^v^<^<><v>^<<>>>>>><>v>^>v<v>>^<>v><vvvvv<<<^>><^<><<v>>><^<^<v><<v<><<<<>v>^vv<>^^vv<>^v^vv<>>><vv<>>v^<^<>^<v^<v<^^<>^vv^^<>^>^>^<v>vv<>>^vv<v>v^^v>^^<v>>>>^^^<^>><>v^>^><>v<^<<<^<^>v<<<v>vv>v<^<>>vv<<^v>><^<<<>>>^v^<<^><<<v<vv^<^>>v<^v>^<>^^<>v><<vv>>^v<v<v^<^^>v^><>^<v<<>><>^>><>v<<v>v<<v<<v>v>^>v<v^v^<v><vv<^v>><>>v^<^<<^^^>vvv<v^vvv^vv>>^v<>v^v^<><v<vv^^>><
|
||||||
|
<v>v<v<v>^v>v<^<>^<>>^>>vvv^^><vv<>vv<<><vv>vv^<v><<^vv<<^v<^<v><>>^<^^>v<>v<>^<>v<><^v<^>vv<vv><vv>vv^<<>>v>^^<^><>^v>><v<><v<vvv<^^<><>^^^>>^<>^<^><vv<<<<>><vv<^vv>v^>v^^>>>>v^^v^^v><^vv^<>v<v<>v^>v>^<><<<<>^v><<^v>><>v<^<<^<^>^v<v<><^><><>^v<>vv<^>v>^v<<^v<^>vv^<v<>>vv^^^><^^>>><^>><<>v>^v>^>^v<v><><v^^<>>^^v<^><<v^^>v^^v>^^^^<v<<<^^v^v^<^<vv><<^><^>><v>^^^v<<vv^vvv>vv^<<v^<v><^><<vv><vvv<v>><v<^<v^v^^>>^^<>>v<><^<^v<><^<<><^<vv><v<>v><^<<^v><<v<vvv><<v>>v^><<vv>vvv<<>^<<>vv>v^v>v>^vv>>v<v<^^<>vv<><<v^<>^<<>v>^^v<v<^<<v<vv^<v><>v^<>><vvv><>><^>^^<>^v^^^^><>><^^<^^^v^v^>v^>vvv>^>^^vvv^<^v^^^<^^<^v^^<>v<<v^v^^>v^^>>><>>v^<^<<v^v^>>v>>^^^^>v<vvv><^<>^^v<^vv^<v^v^<^v>v^>v<vv^<^<^v^^><<vv^>^v><v<<vvv>v<>>^<<^<>>>v^^^<^v^>>^vv><<>vv^^<>><>><<vv>vvvv^^^<^><vv<vv<<<^><><v^^>^^>v>^<<v>v^v^^<^>^v^v>>v>^<><v<>>^^^><>>>>v><^>^vv><^^^v^^^>>^v>v^>vv^vv<>v>^<>>>><<<^^><<<>v<^<v<>vv^>>^<>v<vv>>>^vv><v><v^^<v<^<>>>v^<<v><><<v><vv^v>><v^>>>^<><>^v<^<<^><<><^^<^><^^><<><>v>><<^>v>v<^^vvv<^v>vv>^<v^vv<
|
||||||
|
v>^^>^v>v<^><^^<v<^v<v>>>>>v<^<><>>v>>^vv^<vv>v<<^^>>v<v^>^<<^v><<^>^<v><<v><^>^<^^v>>>v^>>^>>^<<^^<^v><><<>>><<vvv>>^<v^^vv>^<^<<<>^>v^><<<>^^v^^>>><^>><>>^^^vv>v^>^<>v^>v>>><v^><>^^<<v^>v<><v<>^vvv>v<<^v>v^<>^><<<v>^<>v>v^^>^^>><v><^<<<><v>>v^>vv^^>^<v^v<<<^v>><<<<<^^^>>vv^^>>>>^vvv<<>vv^><^^>^<^><v<v<v<^v<v<v<><<v^v<vvv><>v>^<^^<^>^><<>^^^>>><v^>>>>^>v>><>^>>^^<^<^<<>>>>^^><<<>v<<^>^^<^v<>^v<v<>v^v<>^>><<<<^<<>v>>^vv<<>^^>v^v>v<v^v>v^v<^^<<v<>v><^^^<vvv>^vv<>^><vv<v^<v><<<vv>^<>v^v^v<<<^>^^<v<<<v<<>^^v^vv^<^v>^vvv>^>v<v>v^vv<vv>^^^v^^<>v<<vv<<^>>>>^>v<^^^>v^<>v<v<v^^^>v<<><<v>^v><>vv^<^^v^^<<^<<<^<<<<<<^><^><<<^^>><<^vv<^^<v<>>^^>>v<v<^<^v<v>v>vv^<^<v>vv^>^^v^vv<<<><^^^^>^^^vv<v<><<>^v>>vvv><>^v<>><<<vvvvv^vv>^^v<<>v^<><<v^<v^<<>^^vv<>>v<><<<^^^^^v>^<^<v>^>>v<^^v<>v>^<^v>^>>^>v^<<v<vvv>>><>>^<v<>^<^v<<<><<v>vv><>vvv^<<<>>v><v<<^<^v>^><^^v^><>><<>>v^^<><vv>><v>v^><v>>>v^<<vv<v>^<^<v^^>v>>^vv>^><v>v>><<v^vv^v>v<>^<v^<^>^v^^>^>>>^>^^>>>>v^^^^<^<>>vv^<<^>>>^v><<^<^v<vvv>>>v<<v<<^v<v<v^<
|
||||||
|
vvv>vvv>^><>^<^>>vv^<v>vv><^^v><^vv^^^>^v<^<^<<>v>^<>^^><vv^^>vv^><>^<<<><>><v>>^<<^^vv<<^^<<v^v>v^<^^<<<>v^^<>>><^^<v<vv^^v^>^v^vv^vv<><>>^v<<>>^>^^v<>^vvv>vvv<v>v<v^^^<^<<>vvvvv>>^vv<>^<>^<>v^^v><<>>>^<vv><^^v^<>>v><<^^>v<<v^v>v^>^<v<v<v>>>><^^v^^v>^v<>^v<v^><>^v<<^><^><v^^v><^v>^^>v<^^>v>^><v>^<^^>^v><^>>^v<v<^^><^v^>^>^^^<><<v>^vvv^<>v<<v>v>v>v>><^<v><v>v<>v>vv>><^<>^^vv<<>v>>^>v^<^<><^<^<v>v<^>>>^>v^>^>^>^^v<><v<vv^v>^<^><^v^<<><>><v^><v<v<<<<^v<^<^^v<<>^<v^vv><vvv^<>><<<<>>><v>^><^v^vvvv<>^><^<^><>^<^^v>^^^<>>>>^vv^^>^^v^><^>>^>^<>>^vvv<>vv^^^v^>^><v^<>vv>><^<><>^v^<v^>^v>vv^v^>>><v^><<^^><<>^<^<^v>^v>^>^><<>v><^<^^^v>>^^<<<^^<<>>>v^v<<<>>^^v<^<<<>v^^^^<<^>^vv<^>^^>^v^<v^^<v<<^v>><v>><^^>>vv<v>^^><>^<<v<v<^<^>v<^<vv><<v>v<^^^vv<^^<<^^v<v<<<^^^>>^^><><^><><v<^<>>><<<<<>v><^v^<<>^<^<>>v<^v<vv^<^<^><><v><vv<>>>>^>^v<<>>v<v^^^v<>>^>v><<^>>v^v><<<<<v^<vv^vvvv^vv^>v>vv<>v><v>v^vv^^<><v^v<>^vv^<>>^v^v<v^>v^<<><>v>>><>v<<v><>v>>v^<<<>>>v<^^<<<v>v<<<vvv<v>^^v<^^v<^>v^<><>v>>>>^<>v>v<v<>^^
|
||||||
|
<<vv^>^<>^^<vv<<<^^><^v<>^<^>vv<v^<<><^><><<^v<vv><^>v^<^>^^<^v^^>>^^^<<^^<>>>>v>^^<vv>v<<>^^v<^v^^v<>v<^>v<>>^^^v<<>^^<>v>v<v<<<v^<vv>><^^<v<>vvvv^<>^><v<>v>>^^v^^>v^^v^^>v<>>>v>>vv><>>>>^^^v^<v<v^v>^<<vv>^<v><<v>^<^^v>v^v<v<><<v><^<^<v>v<vv<^^v>>^<v><<<^<<^^^v>>><<^>v<vv<^^vv<<>^>^<>>^^^<<^>v<v>>>>v^>>v>^v>v<<^>v>vvv<v<^^>>>><<<^v^vv>>>>v>v^v>><<^<v>v><vv^^^>^vv^vvvv<<<v<^>v^^><><v>v>v<v>>>>vv^^<v>^v<<<<<^^^^<v><v<><v^^>v<^>>^<<^<>^^^^v<v<>^>><v>^v^vv><<<^<>>>^>v>^v<v>>v>v^><v<v>^^v><vv<^><>^<>vv^<^>>^<><>v^^v<><v<^>><<v>>vv^><vv<><^>v>^<<^^^<<v<>^vv><>^^^>^^^^^>^<<>v<<^><^>^<^>^^^v^^<><<^v^vv>^>^>vv^v><>vv<<^^vvv><^vv^<<<>>vv^^>^>>>>>><<<^^^^<^v>>><^^<v^>vv>v>v^^v^><v^^^^><v<>v>^v^vv<v<^><v^<>v<^<<^>^^><^^<<>v<><^>v^^>>v^<^v^^<vv>v^<^<v^>>^>vv^<^<<^<v<<^v>v>v^<><v^>vvv^>>>v<<v>>^>>v>^v<<^^><^>^v>>^v^v<<^^v^<><<v^>^v<<><><>>v<^<<^<v>v<^>>^^<<vvvv<v>><^^<<vv<<><v<<>v^v<v><><<v>>^<<<v<<<>v>>><<>>^>^^^^v><<<^<<<<^><<<>v>>^<<<v^^>>>^vvvv<<^>^^<vvv<vv<vv^^^^>^^v<^<>v^>^^<vv^<><>><>^^v<<<v
|
||||||
|
^vv>v<>vvvv<><^<v>^^v^v>>><<v<<<>^<<<<<<<^<>v><<v^<<>>^<^<^><<<>v<^<v^^v>>>>>^>>>><>vv>^>><^>^<<<><vv>^<^vv<>^<<<vvv>^v><v<<vvvv>^>>^<<^<v^^<v>^v^^v^<vv<v>vv<v<>^<<<<<>v<^vv^v<^^vv<v>>v^^^v<vv>^><<>^>>^>^><^><<<><>><<v>>v<>^v^^<^>vv><>v<<>>^v^<vv>v<^v<v><>^>^>v<>v>v^^>><^>v>^v^<^v^^v>v>>><<v^<><>vv><^vv^<>^<^<v><>^>v^><<^vv>>^<><^>><><vv>v<^><<^<<>v^^<v^^vv^^v^<v><>vv^<^<v<>>^^<<<^>>v>^^v^<>>><vv^v<<<>>>><^v<v>>^>>^<^^v<v<<>^v>v<>^<vv>v<>>>>>^^<v>vvvvv>>vvvv<>^v<>>v<>><<v><^v><v^>v>v^<<<>^^^>>v>^<^^vv<<<><>v^<^v>>^>>^<^>v<^^vv^><<^vv<vv>vv^v<v^<v^^v^<^<^vv<>v>^<>^><<>v^<>v<v>^>>>^v>^<<<>v^<^>v>^<^^v<^^>^vv<<<<v<v><>v>>^vv<>^v><>v^><vv<^vv^^vv^>><^><>^><vv<><v>v>^<v^<^v^<<<v<>>>^v<vv^><v>^>vvv^^v<v<^^^<>vvv>v><<v><>>>><^>vvv<vv^<<^>><<^v<^^v^><^<>v<^<<^>^^<^^^v>^<<>v^v<>v^vv^<<^<v<^^<>^<<v>>v>v^>>>v<v^<v>^v>vv^>><<<v<<^v>v<v^^vvvvv><>^>>v<<<v^^^^<v^vv>>>>>^^><<^^v<^>>v<v^^<^vv>^<>^v^<<^vvv>>v>>^v>>>>><^v>v<>v<>>vv^<><v<>v^^<^^>><<v^<<<v><^>v><v<^^<vv^v^vv<vvvvv<<v<>>><<<vv^<><v^>v<vv<>>
|
||||||
|
<<>^<^<>^v^><<<<>v<^<v^v^^v^<^<v><v^^vv^<><v^v>^>v<v^><^<><<<^v^^^>>v^v^^vv^><<>v>><v><^<^>v^v^v^vv^<><<<^<>^<vvv^<<^<^<vv<>^v<>>^<><^^>^v>>vv>>^v^^><^^<vv<<vvvv<^>v^<><<<>v>vv><>><vv<^>^<v^<^>^^>>>^>vv^vv^<v^>^^^v<>>>^<<>>^^v<v^v<^vv^<>v>>^>>^<><vv^v>^^v>^>>^><^>v><^^<<^>^v>^<>vv><><>^<v>>>^^<^><^<v<^<<^>^<<^^v^<<<v>>^>v<>^><><v>v<<v^vv><^><v<^<v>v>^^>v^^^^>>^>^<>^vv<>^vv><<^^><^^>^v^<vv<^<v^^^>^v><<^<>^^><vv^<<v^^vv<vv^^>>><<v^vv>^^^^>^<<v<><vvv<^<<<<^vvvv>>^v<<v>^>>><><<<<v^v<v>^^><v>^<><^v<<^<>>>^>>>>^<<v<v<vv<^v^v>v<<^<>v><^vv<vv^v^<<><<v<<>v^^<<<<^vv<<v>><><>v^>>v>^<<v>>vv^<v^<v>vv<^<<^vvv<^>v<<><>^vv>v^<v^v>^vv<^>v^^>>v^<^^^v<>>>>><^>v^^<v<>v<<><v^v^^vvv>^vv<^vv^v^^>vv^<^>><<vv^vv^v><<v>^v>>v<<<^v>v<^^v^^>>v>>v<v>><>v^vvv<v>v<>vv^<<v^v>^v<v<>>^v<^><<^><<^^<>v^v^<^><>>>><>><>^<>vvv<>vv>><><<vv<v<><<>v^^<^<<v^vv^>v^<^v^^>^v>v^>>v^v<<^^<>v^^^v>^>>><<v^^v^^>><<^<>>>^<>v<v^<>v><<v<v<<^<<^>>^^><<^v>>^<><^^<v><v><^^<^<vv<v^>^<^^^^<<<<v>><v>v^^>^v<<^^<<<<<v<>>^v^v<>v>v^<^v^<<>^^v<^^>v<<
|
||||||
BIN
15/sol_bigger.gif
Normal file
BIN
15/sol_bigger.gif
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.3 MiB |
BIN
15/solution_p1.gif
Normal file
BIN
15/solution_p1.gif
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 648 KiB |
BIN
15/solution_p1.mp4
Normal file
BIN
15/solution_p1.mp4
Normal file
Binary file not shown.
38
16/16-1-ki.py
Normal file
38
16/16-1-ki.py
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
file = './ex.txt'
|
||||||
|
#file = './ex2.txt'
|
||||||
|
#file = './input.txt'
|
||||||
|
|
||||||
|
from heapq import heappush, heappop
|
||||||
|
|
||||||
|
def solve_reindeer_maze(maze):
|
||||||
|
start = next((i, j) for i, row in enumerate(maze) for j, cell in enumerate(row) if cell == 'S')
|
||||||
|
end = next((i, j) for i, row in enumerate(maze) for j, cell in enumerate(row) if cell == 'E')
|
||||||
|
|
||||||
|
directions = [(0, 1), (1, 0), (0, -1), (-1, 0)]
|
||||||
|
heap = [(0, start[0], start[1], 0)]
|
||||||
|
visited = set()
|
||||||
|
|
||||||
|
while heap:
|
||||||
|
score, row, col, direction = heappop(heap)
|
||||||
|
|
||||||
|
if (row, col) == end:
|
||||||
|
return score
|
||||||
|
|
||||||
|
if (row, col, direction) in visited:
|
||||||
|
continue
|
||||||
|
|
||||||
|
visited.add((row, col, direction))
|
||||||
|
|
||||||
|
for new_direction in range(4):
|
||||||
|
new_row, new_col = row + directions[new_direction][0], col + directions[new_direction][1]
|
||||||
|
if 0 <= new_row < len(maze) and 0 <= new_col < len(maze[0]) and maze[new_row][new_col] != '#':
|
||||||
|
new_score = score + 1
|
||||||
|
if new_direction != direction:
|
||||||
|
new_score += 1000
|
||||||
|
heappush(heap, (new_score, new_row, new_col, new_direction))
|
||||||
|
|
||||||
|
return float('inf')
|
||||||
|
# Einlesen des Labyrinths und Lösen
|
||||||
|
maze = [list(line.strip()) for line in open(file, 'r')]
|
||||||
|
result = solve_reindeer_maze(maze)
|
||||||
|
print(f"Die niedrigste mögliche Punktzahl ist: {result}")
|
||||||
15
16/ex.txt
Normal file
15
16/ex.txt
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
###############
|
||||||
|
#.......#....E#
|
||||||
|
#.#.###.#.###.#
|
||||||
|
#.....#.#...#.#
|
||||||
|
#.###.#####.#.#
|
||||||
|
#.#.#.......#.#
|
||||||
|
#.#.#####.###.#
|
||||||
|
#...........#.#
|
||||||
|
###.#.#####.#.#
|
||||||
|
#...#.....#.#.#
|
||||||
|
#.#.#.###.#.#.#
|
||||||
|
#.....#...#.#.#
|
||||||
|
#.###.#.#.#.#.#
|
||||||
|
#S..#.....#...#
|
||||||
|
###############
|
||||||
17
16/ex2.txt
Normal file
17
16/ex2.txt
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
#################
|
||||||
|
#...#...#...#..E#
|
||||||
|
#.#.#.#.#.#.#.#.#
|
||||||
|
#.#.#.#...#...#.#
|
||||||
|
#.#.#.#.###.#.#.#
|
||||||
|
#...#.#.#.....#.#
|
||||||
|
#.#.#.#.#.#####.#
|
||||||
|
#.#...#.#.#.....#
|
||||||
|
#.#.#####.#.###.#
|
||||||
|
#.#.#.......#...#
|
||||||
|
#.#.###.#####.###
|
||||||
|
#.#.#...#.....#.#
|
||||||
|
#.#.#.#####.###.#
|
||||||
|
#.#.#.........#.#
|
||||||
|
#.#.#.#########.#
|
||||||
|
#S#.............#
|
||||||
|
#################
|
||||||
141
16/input.txt
Normal file
141
16/input.txt
Normal file
@@ -0,0 +1,141 @@
|
|||||||
|
#############################################################################################################################################
|
||||||
|
#.#.....#.........#...#.......#.......#.......#.................#...#...#.........#...#.........#.....#.....#.......#.......#...#.......#..E#
|
||||||
|
#.#.###.#.###.#####.#.#.#####.#.#.###.#.###.###.#####.#.#######.#.###.#.#.###.#.#.#.#.#.#####.#.#.###.#.#.###.#.#####.#.###.###.#.###.#.#.#.#
|
||||||
|
#.....#.#...#.......................#...#...#.....#...#.#.....#.......#...#...#.#...#...........#...#...#.....#.#.....#...#.....#...#.#.....#
|
||||||
|
#.#####.###.#.#.#####.#####.###.###.#########.#####.#####.###.#.#.#.#######.###.#####.#.###.#.#####.#######.###.#.#######.#######.###.#####.#
|
||||||
|
#.#...#.#...#...#...#.....#.#.#...#...........#...#.#.....#...#.#.#...#.......#.#.....#...#.#...#...#...#.....#...#.#...#.........#...#.....#
|
||||||
|
#.#.#.#.#.###.#.###.###.###.#.#.#.#############.#.#.#.#####.###.#.###.#.#####.#.#########.#.###.#.###.#.#.###.#####.#.#.###########.###.#.#.#
|
||||||
|
#...#...#.....#...#...#.....#...#.....#.....#...#.#.#.#...#...#.#.#...#.#.....#.............#...#.#.#.#...#.......#...#...#.........#...#...#
|
||||||
|
###.###.#####.#.#.#.#.#########.###.#.###.#.#.###.#.#.#.#####.#.#.#.###.#.###.###############.#.#.#.#.#####.#####.###.#.###.###########.#####
|
||||||
|
#...#...#...#...#...#.#.#...........#.......#.#.....#.#.....#.#...#.#...#.#.....#...........................#.......#.#...#...#.......#.....#
|
||||||
|
#.###.###.#.#.#.#####.#.#.###.#.#########.#.#.#######.#####.#.#.#.#.#.###.#####.###.#######.#####.#.###.#.#########.###.#.###.#.#####.#####.#
|
||||||
|
#.#...#...#.........#.#...#...#.#.......#...#.......#.#.....#...#.#.#.#.#.........................#.#...#.......#.#...#.#...#.#...#.#...#...#
|
||||||
|
#.#.#######.#.#.#####.#####.###.#.#.#####.#######.#.#.#.###.###.###.#.#.###.#.###.#.#.###.#.#.#####.#.#########.#.###.#.#.###.###.#.###.###.#
|
||||||
|
#.#.......#...#.....#.....#.#.....#.#.....#...#.#...#.#.#...#...#...#.....#.#.......#.#.....#...#.....#...................#...#...#...#...#.#
|
||||||
|
#.#######.#####.###.#####.#.###.###.#.###.#.#.#.#.###.#.#.###.###.###.#####.#.#######.#.#######.#.#####.#########.#.#.###.#.###.###.#.###.#.#
|
||||||
|
#.#...#...#...#.#.#.....#.#...#...#.........#...#...#...#...#.....#...#.....#.#...#...#.#.....#.#.....#.........#.#.#.#...#.........#.#...#.#
|
||||||
|
#.#.###.###.#.#.#.###.#.#.###.###.#########.###.###.#######.#######.#.#.#######.#.#.###.#.#.###.#####.#########.#.#.#.#.###############.###.#
|
||||||
|
#.#.........#.#...#...#...#...#.....#.......#...#.#.......#.#...#.....#...#.....#...#...#.#.....#...#...#.....#.#.....#.................#...#
|
||||||
|
#.###########.#####.#.###.#.#######.#.#######.###.#######.#.###.#.#######.#.#########.###.#######.#####.#.###.#.#.#######.#.#.#########.#####
|
||||||
|
#.#...#.....#...#...#.#...#.....#...#.#.....#.#.....#...#...#...#.#.......#.#.......#...#...#.#.........#...#...#...#.....#.#...#.#.....#...#
|
||||||
|
#.#.#.#####.###.#.###.#.#######.#.###.###.###.###.#.###.#.###.###.#.#.#.###.#.#####.#######.#.#.#####.###.#.#######.#.#.#.#####.#.#.#####.#.#
|
||||||
|
#...#.#.....#.#.#...#.#.#.......#.#.....#...#.....#.#.......#.#...#.#...#...#...#.#...#.....#...#...#.#...#.....#...#.#.#.......#...#...#.#.#
|
||||||
|
#####.#.###.#.#.#.#.#.#.#.#######.###.#.#.#.#######.#.#####.#.#.###.#.###.#.###.#.###.#.#########.#.###.###.#####.###.#.###.#####.###.###.#.#
|
||||||
|
#...............#.#.#.#...#.....#.....#.#.#...#...#.#...#.#.....#...#...#.#.#.......#.#...#.......#.....#.....#...#...#...#.#.......#...#.#.#
|
||||||
|
#.#.#.#.#.###.#.#.#.#####.#.#.#.###.###.#.###.#.#.#.###.#.#.#####.#######.###.#######.#.#.#.###############.#.#.#########.#.#.#####.###.#.#.#
|
||||||
|
#.......#.#.#.#.#.....#...#.#.#...#.#...#...#.#.#.#.....#.#.......#.....#...#...#...#.#...#.#.#.....#.......#.#.#.....#...#.#.#...#.....#.#.#
|
||||||
|
#.#######.#.#.#.###.#.#.#.#.#.#####.#.#####.#.#.#.#######.#####.#.#.###.###.#.###.#.#.#.###.#.#.#.#.###.###.#.#.###.#.#.###.#.#.#.#####.#.#.#
|
||||||
|
#...#.....#...#...#.....#...#.......#...#...#...#...#...#.......#...#...#.#...#...#...#.#...#...#.#.....#...#.#.#...#...#...#...#.....#.#.#.#
|
||||||
|
#.#.###.#######.#.#.#.#.###############.#.#######.#.#.###.###########.#.#.#####.#####.#.###.#.###.#.#######.#.#.#.#####.#.#.#.#######.###.#.#
|
||||||
|
#.#...#...#...........#...#.#...........#.....#...#.#.#...#...#.........#.#.....#.#...#.....#...#...#.....#...#.#.#.....#...............#.#.#
|
||||||
|
#####.#.#.#.#############.#.#.#####.#.###.#####.###.#.#.###.###.#.#####.#.#.#####.#.#############.#.#.###.#####.#.#####.#######.#######.#.#.#
|
||||||
|
#.....#.#.#...#...........#...#...#...#...#.....#.....#...#.....#.#.......#.....#.#...#...#.....#.#.#...#.#...#.#.#...........#.......#...#.#
|
||||||
|
#.#####.#.###.#.###############.#.#.#######.#.###########.#.#####.#.###########.#.###.#.#.###.#.#.#####.#.#.#.#.#.#.#.#.#####.#.#####.#####.#
|
||||||
|
#.......#...#.#...#.....#.......#...#.......#.#...........#.#...#.#...#.........#...#...#.....#...#...#.#.#.#.#.#...#.#.......#...#.....#.#.#
|
||||||
|
#.#.###.#.###.###.###.#.#.#############.#####.#.#.###########.#.#.#.###.#########.###.#############.#.#.#.#.#.#.#.###.###########.#.###.#.#.#
|
||||||
|
#.#.....#.....#...#...#.#.....#...#.....#...#.#.....#.........#.#.#.#...#...#...#.....#...#...#...#.#...#...#...#...#.......#.....#.#.....#.#
|
||||||
|
#.###########.#.###.###.###.#.#.#.#.#.#####.#.#####.#.#####.###.#.#.#.###.#.#.#.#######.#.#.#.#.#.#.###############.#######.#.#####.#####.#.#
|
||||||
|
#...........#.#.....#.....#.#.#.#.#.#.#...#.......#.#.#...#.#...#.#.#.....#...#.#...#...#...#...#...#.#.............#.....#...#...#...#...#.#
|
||||||
|
#.#########.#########.###.#.#.#.###.#.#.#.#.#######.#.###.#.#.###.#.###########.#.#.#.###############.#.###############.#.#######.###.#.###.#
|
||||||
|
#.#.......#.#.........#...#.#.#.....#.#.#...#...#...#...#.#.#...#.#...#.#.....#...#...#...#.......#.....#.........#.....#.#.........#.#.....#
|
||||||
|
#.#.#####.#.#.###.###.#.#####.#.###.#.#.#.#.#.#.#.#####.#.#.###.#.###.#.#.###.#########.#.#.#####.#.#####.#######.#.#.###.#.#####.###.###.#.#
|
||||||
|
#.........#...#.#.#...#.#.....#.......#.#.#.#.#.#.....#...#.....#.#.#.#.#.#.........#...#...#...#...#.....#...#...#.#...#...#...#.#...#...#.#
|
||||||
|
###.#######.###.#.#.###.#.#####.#######.#.###.#.#####.#######.#.#.#.#.#.#.#.#######.#.#.###.###.#####.#######.#.###.###.#.###.#.###.###.###.#
|
||||||
|
#...#.....#...#.#.#.#...#...#.#.........#.#...#.....#...#.....#.#.#.#.#...#.#.....#.#.#...#.....#.#...#.....#...#.....#.#.#...#.....#...#.#.#
|
||||||
|
#.###.###.###.#.#.#.#.#####.#.#.#######.#.#.#.#.#######.#.#####.#.#.#.#####.###.#.#.#.###.#####.#.#.#.#.###.#.###.###.#.#.#.#######.#.###.#.#
|
||||||
|
#...#.#.#...#...#.#.#.#.....#...#.....#.#.....#.......#.#.#...#...#.#.......#...#.#...#.#.....#.#...#...#.#.........#.#.#.#.#.#.............#
|
||||||
|
###.#.#.###.###.#.###.#.#####.###.###.#.#########.#.#.#.#.#.#.#####.#########.###.#####.#####.#.#####.###.#.#######.###.#.#.#.#.#.#.#.###.#.#
|
||||||
|
#...#.#.#...#.#.#.......#...#.#.......#...#.....#...#.#...#.#.................#...........#...#.#...#.#...#...#...#.....#.#.#.......#...#...#
|
||||||
|
#####.#.#.###.#.#########.#.#.#.###.#######.###.#.###.#####.#########.#################.###.###.#.#.#.###.###.#.#.#########.#.###.#.###.###.#
|
||||||
|
#.......#...#...#.........#.#.#.#.....#.....#...#...#.......#.........#...#.....#...#...#...#...#.#.#.....#...#.#...........#.#.#.#...#...#.#
|
||||||
|
#.#########.#.###.#########.#.#.#####.#.#####.###############.#######.#.#.#.###.###.#.###.###.###.#.#####.#.###.###.#########.#.#.###.###.###
|
||||||
|
#.#...#.....#...#...#.#.....#.#...#.#...#.............#.....#.....#...#.#.#...#...#.#...#...#.....#...#...#.#...#...#...#...#...#.#...#.#...#
|
||||||
|
#.#.#.#.#####.#.###.#.#.#####.###.#.#####.###########.#.###.#####.#####.#.###.###.#.#.#####.#########.#.###.#.###.###.#.#.#####.#.#.###.###.#
|
||||||
|
#.#.#.#.........#.....#.#.....#...#.....#.#.#.......#...#.#.#...#.......#...#.#...#...#...#.......#.......#.#.#...#...#.#.......#.......#.#.#
|
||||||
|
#.###.###.###.#.#.###.#.###.###.#.#####.#.#.#.#.###.#####.#.#.#.###.#####.###.#.#####.#.#.#######.###.#####.#.#.###.###.###############.#.#.#
|
||||||
|
#...#.#.......#.#...#.....#.#...#.#...#.....#.#...#.....#.#...#...#...#...#...#.....#...#.......#...#.......#.#.#...#.....#...........#...#.#
|
||||||
|
###.#.#.#.###.#.###.#####.###.#####.#.#######.###.#####.#.#######.#####.###.#.#####.###.#.#####.###.#######.#.###.#######.#.#.#######.#####.#
|
||||||
|
#.#.#.#...#...#.#.#...#.....#.#.....#.#...#...#.......#.#.......#.....#.....#.....#.....#...#.....#...#.....#...#.......#.....#...#.#.....#.#
|
||||||
|
#.#.#.###.#.#.#.#.###.###.#.#.#.#####.#.#.#.###.###.###.#.#####.#####.#.#####.#.#.###.###.#.#.###.#.#.#.###.###.#####.#.#.#####.#.#.#####.#.#
|
||||||
|
#...................#.....#...#.....#...#.....#.#...#...#.#...#.....#.#...#...#.#.#...#...#...#.....#...#...........#.#.#.#.....#...........#
|
||||||
|
#.###.#.#.###.#####.#####.#.#######.#########.#.#####.###.#.#.#####.#.###.#####.#.###.#.#.#########.#####.###########.#.#.#.#####.#.#.#####.#
|
||||||
|
#.#.#...#.........#...#...#.#.......#.....#.....#.....#...#.#.#...#.....#.......#.#...#.#.#.......#.......#.......#...#.#.#...#.#.#.#.....#.#
|
||||||
|
#.#.#.#.#.###.###.#####.#####.#######.###.#.###.#.#####.###.#.#.#.#####.#########.#.#.#.###.#####.#.#####.#.#####.#.###.#.###.#.#.#.#####.#.#
|
||||||
|
#.#...#.......#...#...#.......#.......#.#.#.....#.#.....#...#...#.....#.....#.....#.#.#.....#.....#.#.........#...........#.#.#.#.#.....#...#
|
||||||
|
#.#.###.#.###.#.###.#.#########.#######.#.#.#####.#######.###########.#####.#####.#.#########.#####.#.#######.###########.#.#.#.#.###.#.###.#
|
||||||
|
#.#...#.#.....#.....#.........#.#.......#.#.....#.#.....#.......#...#.....#.....#.#.......#...#...#.#.......#...#...#...#.#.#.#.#...#.#.#...#
|
||||||
|
#.###.#.#.#.#.###.#######.#.###.#.#####.#.#####.#.#.###.#.#.###.#.###.###.#####.#.#.#.###.#.###.#.#########.###.#.#.#.#.#.#.#.#.###.#.###.###
|
||||||
|
#...#.#.#...........#.....#.#...#.#.#...#.....#.#...#...#.#.#.#.#.#.....#.#...#.#...#...#.#.....#.........#.#...#.#...#.#...#...#.#.#.....#.#
|
||||||
|
###.#.#.#.###.###.#.#.#######.###.#.#.#.#####.#.#####.#.#.#.#.#.#.#.###.#.#.###.#.#.###.#.#############.###.#.###.#####.#######.#.#.#.#####.#
|
||||||
|
#.................#.#.....#...#...#.#.......#.#.#.....#.#...#.#.#.#.#.#.#.#...#.#.#...#.....#.....#...#...#.#...#...#...#...#...#.#.#.......#
|
||||||
|
#.#.###.#.###.#.#########.#.###.#.#.#######.#.###.###########.#.#.#.#.#.#.###.#.#.###.###.#.#.###.#.#.###.#.###.#.###.###.#.#.###.#.#.###.#.#
|
||||||
|
#.#...#.#.#...#.#.........#.#...#.#.........#.....#...#...#...#.#.#.#.#.#.#...#.#.#.....#.#...#.#...#...#...#.#.#.#...#.......#...#.#.....#.#
|
||||||
|
#.###.#.#.#.#.#.#.#####.#.#.#.###.###.#.#########.#.#.#.#.#.#.#.#.#.#.###.#.#.#.#.#####.#.#.###.#######.#####.#.#.#.###.#######.#.#.#######.#
|
||||||
|
#...#.#...#.#.........#...#.#.#.#...#...#.....#...#.#...#...#.....#.#.....#...#.#...#...#...#.....#.....#.....#...#.....#.....#.#.#.#.......#
|
||||||
|
#.###.#.#.#.###.#####.#.###.#.#.###.###.#.###.#.###.###########.#.#.#.#.###.###.###.#######.#.#####.#####.#.#####.#######.###.#.#.#.#.#.#####
|
||||||
|
#.#...#...#.#.#...#...#...#.#.....#...#...#...#...#...............#.....#...#...#...........#.#...#...#.#.#...........#.#...#...#.#.#.......#
|
||||||
|
#.#.#####.#.#.###.#.#####.#.#.#####.#.###########.###.#######.###.#########.#.###############.#.#.###.#.#.#########.#.#.#.#.###.###.###.###.#
|
||||||
|
#...#.....#.#.....#.....#.#.#.#...#.#.............#...#...#...#.#.#.........#.........#.........#...#.#...........#.#.#.....#...#...#.....#.#
|
||||||
|
#.#####.#.#.###.#######.###.###.#.###############.#.###.#.#.#.#.#.#.#.###############.###########.###.#.#####.#####.#.#####.#####.###.#.###.#
|
||||||
|
#.#.....#.#...#...#...#...#.....#.....#.........#.#...#.#...#...#...#.#.............#...#.............#.#...#.....#.#.......#...#.#.#.#...#.#
|
||||||
|
#.#.#####.#.#.###.#.#.###.###########.#.#######.#####.#.#####.###.#.#.#.###########.###.#.#####.###.#####.#.#.###.#.#########.#.#.#.#.#.#.#.#
|
||||||
|
#...#...........#.#.#.#.#...........#...#...#.#.......#.#.#.......#.#...#.........#.....#.....#...#...#...#...#.#...#.........#.#.#.#.#.#...#
|
||||||
|
#####.#.#.#.###.#.#.#.#.#.#.###.###.#####.#.#.#########.#.#.#######.###.#####.###.###########.###.###.#.#######.#.###.#########.#.#.#.#.#####
|
||||||
|
#.............#...#.#...#...#.#.#...#.....#...#.........#.........#...#.....#...#...#...#...#...#.#.....#.....#.#.#...#.......#...#.#...#...#
|
||||||
|
#.#.#####.#.###.###.#########.#.#.#####.#######.###.#############.###.###.#.#####.#.#.#.#.#.###.#.#####.#.###.#.#.#.###.#.#######.#.###.###.#
|
||||||
|
#.#.#.....#.#...#.............#.#.#...#...#.......#.....#.......#.#.#.....#.......#.#.#...#.#...#.#...#.#.....#...#.#...#.#.....#.....#.#...#
|
||||||
|
#.###.###.#.#.###.#.###.#.#####.#.#.#.###.#.###########.#.#####.#.#.#############.#.#.#####.#.###.#.#.###.#.###.###.#.###.#.###.#.#.###.#.#.#
|
||||||
|
#...#.#.#.#...#.....#...#.#.....#...#.#...#.#...#.....#.#...#...#...#.....#.......#.....#.#...#...#.#.....#...#...#.#.#...#.#.#...#...#...#.#
|
||||||
|
###.#.#.#.#.#########.###.#.#########.#.#.#.###.#.###.#.###.#.#####.#.###.#.###.###.###.#.#####.###.#########.#####.#.#####.#.###.###.#.#.#.#
|
||||||
|
#...#...#.#.#.......#.#.......#.....#.#.#.#...#.#...#.....#.#...#.....#...#...#.....#...#.#.........#.......#.....#.#.#.....#.....#.#...#...#
|
||||||
|
#.###.###.#.###.###.#.#.#####.#.###.#.#.#.###.#.###.#######.###.#############.#######.###.#.#########.#####.#####.#.#.#.#####.###.#.#.#.#.###
|
||||||
|
#...#.#...#...#...#...#.#...#.#...#.....#.#.#.#...#.......#...#...........#...#.......#...#.#...#.........#.....#.....#.......#.....#.#.#.#.#
|
||||||
|
#.#.#.#.#####.###.#####.#.#.#.###########.#.#.###.#######.###.#######.###.#.#########.#.###.#.#.#.#########.#.#######.###.#.#####.#.#.#.#.#.#
|
||||||
|
#.#...#.....#...#...#.....#.#.......#...#...#...#.......#.....#.......#...#.......#...#.....#.#.#...#.......#.......#.....#.....#...#.....#.#
|
||||||
|
#.#######.#####.#.#.#######.#######.#.#.#######.#.#####.#############.#.#########.#.#.#####.#.#.###.#.#########.#.###.###.#.###.#.#####.#.#.#
|
||||||
|
#.#.....#.#...#.#.#.#...#...#.....#...#.#.......#.#.....#.............#.........#.#...#...#...#...#.#...#.......#...#.#...#.#...#.......#...#
|
||||||
|
#.###.###.#.#.#.#.#.#.#.#####.###.#####.#.#######.#####.#####.#.#.#.#.#######.###.#.###.#.###.#.#.#.###.#.###.#.###.#.#.#.#.#.#########.#.#.#
|
||||||
|
#...#...#.#.#.#.#.#...#...#...#.#...#...#...#.#...#...#.#.....#...#.#.#.#.....#...#...#.#.......#.#...#.#...#.#.....#.#.#...#.......#.#.....#
|
||||||
|
###.###.#.#.#.#.#.#######.#.###.#.###.#####.#.#.#.#.#.#.#.#####.###.#.#.#.#.###.###.#.#.#########.###.#.###.#.#.#.###.#####.#######.#.###.#.#
|
||||||
|
#.#...#.#...#...#.#.....#...........#.....#.....#...#.#.#.#.#...#...#...#.#.#...#...#.......#.....#...#...#.#...#...#.....#.#.#.....#.....#.#
|
||||||
|
#.#.#.#.#####.###.#####.###########.###.###.#.###.#.#.#.#.#.#.#####.###.#.###.###.###########.#########.#.#.#######.#####.#.#.#.#####.#####.#
|
||||||
|
#...#.#...#.....#...#.....#.....#.....#.#...#.#.#...#.#.............#...#.....#.#.....#.#.....#.........#.#.#.....#.......#...#.#.....#.....#
|
||||||
|
#.#.#.#.###.###.###.#.#####.###.#.###.#.#.###.#.#####.#####.###################.#####.#.#.#####.#######.###.#.#.###############.#.###.#.#####
|
||||||
|
#.#.#.#...#...#.#.....#...#...#...#...#...#.......#...#.....#.#...........#.........#.#.#.#.....#.......#...#.#...............#.#.#...#.#...#
|
||||||
|
#.#.#.###.###.#.#.#####.#.###.#####.###############.###.###.#.#.#.#####.###.#######.#.#.#.###.#######.###.#########.#########.#.#.#.###.###.#
|
||||||
|
#.#.#...#.....#...#.....#.....#...#.......#.......#.#.........#.#.........#.#.....#...#.#...#...#...#.#.#.......#...#.......#...#.#...#.#...#
|
||||||
|
#.#####.#.#####.###.#.#########.#########.#.#####.#.#.#####.#.#.###.#####.#.#.#.#.#####.###.#.#.#.#.#.#.#.#.#.#.#.###.###########.###.#.#.#.#
|
||||||
|
#.#.....#.#...#...#...#.#...#...........#.#.....#...#...#...#.#...#.....#...#.#.#.......#...#.#...#.#...#.#.#...#...#.#.........#.#.#.#...#.#
|
||||||
|
#.#.#######.#.###.###.#.#.#.#.#######.#.#.#####.#######.#.###.###.#####.#######.#######.#.###.#####.#.###.#.#.#.###.#.#.#######.#.#.#.#####.#
|
||||||
|
#...#.......#.#.....#.#...#.#.#.#...#.#.#.....#.....#.#...#...#.#...............#...#...#.#.#...#...#.#.....#.....#.#...#.....#...#.#.....#.#
|
||||||
|
#.#####.#####.#####.#.#.#.#.#.#.#.#.#.#.#####.#.###.#.#.###.###.#####.#########.#.#.#####.#.#.#.#.###.#.###.#####.#.#.###.#.#.#####.###.###.#
|
||||||
|
#.......#...#...#...#.#...#.#.#.#.#.#.#...#...#...#.#.....#...#.#...#.......#.....#...#...#.....#...#.#...#.....#.#.#.....#.#.....#...#.#...#
|
||||||
|
#########.#.###.#####.#.###.#.#.#.#.#.#####.#######.#.###.###.#.#.#.#.#.###.#.###.###.#.###.#######.#.###.#####.#.#.#######.#####.#.#.#.#.###
|
||||||
|
#...#.....#...#...#...#.#.#.....#.#...#...........#.#...#...#...#.#...#.#...#.#.....#.#.#.#.#.....#.#.....#.....#.#...#...........#.#.#.....#
|
||||||
|
#.#.#.#####.#.###.#.###.#.#.#####.###.#.#.###.#.#.#.###.#.###.###.#####.###.#.#.#.###.#.#.#.###.#.#.###.#.#.#.###.###.#######.#.#.#.#.#.###.#
|
||||||
|
#.#.#.#...#.#...#.#.#.#.#...#.....#...#.....#.#.#.#...#.#...#.#...#...#...#.#.#.#...#.#.#...#...#.#...#.#.#...#.#...#.#.......#.....#.#...#.#
|
||||||
|
#.###.#.###.#####.#.#.#.###.#.#############.#.#.#.###.###.#.#.#.#####.###.#.#.#.###.#.#.#.###.#.#####.#.#.#.#.#.###.#.#.#####.#######.###.#.#
|
||||||
|
#.....#...#.#...#...#.#.#...#...#...#...#...#...#...#...#.#...#.......#...#...#...#...#.#.#...#.#...#.#.#.#.#.#...#.#...#...#.....#...#...#.#
|
||||||
|
#.#######.#.#.#.#####.#.#.#.###.#.#.#.#.#.###.#####.###.###########.###.#########.#####.#.#.###.#.#.#.###.###.#.#.#.#.###.#.#####.#####.###.#
|
||||||
|
#.........#...#.......#.#.#...#...#.#.#...#.....#.....#.....#...#...#...#.......#.......#...#.....#.#...#.....#.#.#.#.#...#.......#...#.....#
|
||||||
|
#####.#######.###.###.#.#.###.#####.#.#####.###.#####.#####.#.#.#.###.###.#####.#############.#####.#.#.#######.###.#.###.#####.#.#.#.#####.#
|
||||||
|
#...#.#.....#...#...#.#.#.#...#...#.#.....#...#.....#.......#.#...#...#.......#.#...........#...#.#.#.#.......#.....#...#.....#.#...#.....#.#
|
||||||
|
#.#.#.#.###.#######.###.#.#####.#.#.#####.#.#######.#######.#.#####.###.#####.###.#####.###.###.#.#.#####.###.#.#######.#####.#.#######.#.#.#
|
||||||
|
#.#...#.#...#.....#.#...#.......#.#.......#.#.....#.....#...#.#...#.#.....#...#.........#...#...#.#.......#...#.....#.........#...#...#.#.#.#
|
||||||
|
#.#####.#.###.###.#.#.###########.###########.#.#.#.#.###.###.#.#.#.#####.#.###.#####.#.#.###.###.#.###############.#.#######.#####.#.###.#.#
|
||||||
|
#.....#.#.#...#.....#...........#.......#.....#...#.#...#...#.#.#.#...#...#.....#...#.#.#...#.#.....#.......#.....#.#.#...#...#...#.#.#...#.#
|
||||||
|
#####.#.#.###.#.###.###.#.#####.#.#####.###.###.###.#.#.###.#.###.#.#.#.#.#######.#.###.###.#.#.#####.#####.#.#.#.#.###.#.#.###.#.#.#.#.#.#.#
|
||||||
|
#...#.#.#.....#.#.........................................#.#...#...#...#.....#...#.....#...#.#.#...#.#...#.#.#.#.#...........#.#...#...#.#.#
|
||||||
|
#.#.#.#.#####.###.#.###.#.###.#.#.#.#########.#.#.#.#.###.#.###.###.###.#####.#.#########.###.#.###.#.#.#.#.#.#.#####.#.#.#####.#########.#.#
|
||||||
|
#.#...#.#.....#...#.....#.#...#...#.........#.#.....#...#...#...#.....#.....#.#...#.....#.....#.#...#...#.#...#.....#...#.#.....#.......#...#
|
||||||
|
#.#####.#.#####.###.#.#.#.#########.###.#####.#.#.###.###.###.###.#.#######.#.###.#.#.#########.#.#.###.#.#######.#.#####.#.#####.###.###.###
|
||||||
|
#.....#.#.....#.....#.#.#...#.....#...#.....#...#.......#.#...#...#.........#.#.#.#.#.........#...#.....#.....#...#...#.#.#...#.....#...#...#
|
||||||
|
#####.#.###########.#.#.#.#.#.###.###.#####.###.#.###.#.###.#####.#.#.#.#####.#.#.#########.#.#.###.###.#.#.###.#####.#.#.###.#.#######.###.#
|
||||||
|
#.....#...#.......#.#.#...#.#...#.#...#.#...#...#...#.#.#...#.....#.#.#.....#.#.#.........#.#...#.......#...............#.....#.#...#...#...#
|
||||||
|
#.#######.#.#.###.#.#.#.#.#.###.#.#.###.#.###.#.#.#.#.#.#.#####.#.#.###.###.#.#.#########.#.###.#.###.#.###.#.###.#.###.#########.#.#.#.#.###
|
||||||
|
#.#.......#.#...#...#...#.#...#.#.#...#.#.....#...#.#.#.........#.#.......#.#.#...........................#.#...#.#.........#.....#...#.#.#.#
|
||||||
|
#.#.#######.#.#.#####.#.#.#.#.#.#.###.#.#######.#.#.#.#.###########.###.###.#.#.###.#.#########.#######.#.#.###.#.#.#######.#.#####.#####.#.#
|
||||||
|
#.#.#.......#.....#...#.#.#.#...#...............#.#.#.............#...#.#...#.#...#.#.#.......#.........#.......#.#.....#.....#.....#...#.#.#
|
||||||
|
#.#.#.#######.###.#####.#.#.#######.#.#####.###.#.#.#.#.#########.#.#.#.#.###.###.#.#.#.#####.#.#####.#####.###.#.#.###.#############.#.#.#.#
|
||||||
|
#S#...........#.........#.........#.........#.........#.............#.....#.......#.#.......#.......#...........#.....#...............#.....#
|
||||||
|
#############################################################################################################################################
|
||||||
70
17/17-1.py
Normal file
70
17/17-1.py
Normal file
@@ -0,0 +1,70 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
from sys import exc_info
|
||||||
|
|
||||||
|
from time import time
|
||||||
|
|
||||||
|
start_time = time()
|
||||||
|
|
||||||
|
ex_input = """Register A: 729
|
||||||
|
Register B: 0
|
||||||
|
Register C: 0
|
||||||
|
Program: 0,1,5,4,3,0
|
||||||
|
"""
|
||||||
|
|
||||||
|
real_input = """Register A: 25358015
|
||||||
|
Register B: 0
|
||||||
|
Register C: 0
|
||||||
|
Program: 2,4,1,1,7,5,0,3,4,7,1,6,5,5,3,0
|
||||||
|
"""
|
||||||
|
|
||||||
|
def read_input(input_var:str)->tuple[int, int, int, list[int]]:
|
||||||
|
inp = input_var.split("\n")
|
||||||
|
a, b, c = int(inp[0].split(':')[1]), int(inp[1].split(':')[1]), int(inp[2].split(':')[1])
|
||||||
|
program = list(map(int, inp[3].split(':')[1].split(",")))
|
||||||
|
return a, b, c, program
|
||||||
|
|
||||||
|
def do(instruction:int, operand:int, point:int):
|
||||||
|
global ra, rb, rc, out
|
||||||
|
if operand in [0, 1, 2, 3]:
|
||||||
|
ope = operand
|
||||||
|
elif operand == 4:
|
||||||
|
ope = ra
|
||||||
|
elif operand == 5:
|
||||||
|
ope = rb
|
||||||
|
elif operand == 6:
|
||||||
|
ope = rc
|
||||||
|
match instruction:
|
||||||
|
case 0:
|
||||||
|
ra = int(ra/(2**ope))
|
||||||
|
case 1:
|
||||||
|
rb = rb ^ operand
|
||||||
|
case 2:
|
||||||
|
rb = ope % 8
|
||||||
|
case 3:
|
||||||
|
if ra != 0:
|
||||||
|
point = ope-2
|
||||||
|
case 4:
|
||||||
|
rb = rb ^ rc
|
||||||
|
case 5:
|
||||||
|
out.append(f"{ope%8}")
|
||||||
|
case 6:
|
||||||
|
rb = int(ra/(2**ope))
|
||||||
|
case 7:
|
||||||
|
rc = int(ra/(2**ope))
|
||||||
|
case _:
|
||||||
|
pass
|
||||||
|
return point
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
out = []
|
||||||
|
# ra, rb, rc, prog = read_input(ex_input)
|
||||||
|
ra, rb, rc, prog = read_input(real_input)
|
||||||
|
print(ra, rb, rc, prog)
|
||||||
|
pointer = 0
|
||||||
|
while pointer < len(prog):
|
||||||
|
pointer = do(prog[pointer], prog[pointer+1], pointer)
|
||||||
|
pointer += 2
|
||||||
|
print(out)
|
||||||
|
print(",".join(out))
|
||||||
|
print(f'Runtime: {time()-start_time:.5f} s')
|
||||||
104
17/17-2.py
Normal file
104
17/17-2.py
Normal file
@@ -0,0 +1,104 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
from copy import deepcopy
|
||||||
|
from time import time
|
||||||
|
|
||||||
|
|
||||||
|
start_time = time()
|
||||||
|
|
||||||
|
ex_p1_input = """Register A: 729
|
||||||
|
Register B: 0
|
||||||
|
Register C: 0
|
||||||
|
Program: 0,1,5,4,3,0
|
||||||
|
"""
|
||||||
|
|
||||||
|
ex_p2_input = """Register A: 2024
|
||||||
|
Register B: 0
|
||||||
|
Register C: 0
|
||||||
|
Program: 0,3,5,4,3,0
|
||||||
|
"""
|
||||||
|
|
||||||
|
real_input = """Register A: 25358015
|
||||||
|
Register B: 0
|
||||||
|
Register C: 0
|
||||||
|
Program: 2,4,1,1,7,5,0,3,4,7,1,6,5,5,3,0
|
||||||
|
"""
|
||||||
|
|
||||||
|
real_erik = """Register A: 25358015
|
||||||
|
Register B: 0
|
||||||
|
Register C: 0
|
||||||
|
Program: 2,4,1,2,7,5,4,5,1,3,5,5,0,3,3,0
|
||||||
|
"""
|
||||||
|
|
||||||
|
def read_input(input_var:str)->list[int]:
|
||||||
|
inp = input_var.split("\n")
|
||||||
|
program = list(map(int, inp[3].split(':')[1].split(",")))
|
||||||
|
return program
|
||||||
|
|
||||||
|
def do(instruction:int, operand:int, point:int):
|
||||||
|
global ra, rb, rc, out
|
||||||
|
if operand in [0, 1, 2, 3]:
|
||||||
|
ope = operand
|
||||||
|
elif operand == 4:
|
||||||
|
ope = ra
|
||||||
|
elif operand == 5:
|
||||||
|
ope = rb
|
||||||
|
elif operand == 6:
|
||||||
|
ope = rc
|
||||||
|
match instruction:
|
||||||
|
case 0:
|
||||||
|
ra = int(ra/(2**ope))
|
||||||
|
case 1:
|
||||||
|
rb = rb ^ operand
|
||||||
|
case 2:
|
||||||
|
rb = ope % 8
|
||||||
|
case 3:
|
||||||
|
if ra != 0:
|
||||||
|
point = ope-2
|
||||||
|
case 4:
|
||||||
|
rb = rb ^ rc
|
||||||
|
case 5:
|
||||||
|
#print(ra,rb,rc,ope,ope%8)
|
||||||
|
out.append(ope%8)
|
||||||
|
case 6:
|
||||||
|
rb = int(ra/(2**ope))
|
||||||
|
case 7:
|
||||||
|
rc = int(ra/(2**ope))
|
||||||
|
case _:
|
||||||
|
pass
|
||||||
|
return point
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
#prog = read_input(ex_p1_input)
|
||||||
|
prog = read_input(ex_p2_input)
|
||||||
|
#prog = read_input(real_input)
|
||||||
|
#prog = read_input(real_erik)
|
||||||
|
count = 0
|
||||||
|
sol_list = [""]
|
||||||
|
for x in range(2,len(prog)+2,2):
|
||||||
|
new_list = []
|
||||||
|
for i in sol_list:
|
||||||
|
for o1 in range(8):
|
||||||
|
for o2 in range(8):
|
||||||
|
count += 1
|
||||||
|
i_str=f"{i}{o1}{o2}"
|
||||||
|
ra_a = int(i_str, 8)
|
||||||
|
ra = int(i_str, 8)
|
||||||
|
rc, rb = 0, 0
|
||||||
|
out = []
|
||||||
|
pointer = 0
|
||||||
|
while pointer < len(prog):
|
||||||
|
pointer = do(prog[pointer], prog[pointer+1], pointer)
|
||||||
|
pointer += 2
|
||||||
|
# Program: 2,4,1,1,7,5,0,3,4,7,1,6,5,5,3,0
|
||||||
|
if len(out) == x and out[-x:] == prog[-x:]:
|
||||||
|
new_list.append(f"{ra_a:o}")
|
||||||
|
#print(f"Prog: {prog}")
|
||||||
|
print(f"dec:{ra_a}, oct:{ra_a:o}, out:{out}")
|
||||||
|
sol_list = deepcopy(new_list)
|
||||||
|
integer_liste = [int(number, 8) for number in sol_list]
|
||||||
|
print()
|
||||||
|
print(f"Prog: {prog}")
|
||||||
|
print(f"Solution Part2: {min(integer_liste)}")
|
||||||
|
print(f"Checked Numbers: {count}")
|
||||||
|
print(f'Runtime: {time()-start_time:.5f} s')
|
||||||
6
17/tt
Normal file
6
17/tt
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
Dez: 56 HEX: 38 OCT:70 BIN:111000
|
||||||
|
Dez: 3622 HEX: E26 OCT:7046 BIN:111000100110
|
||||||
|
Dez: 3606 HEX: E16 OCT:7026 BIN:111000010110
|
||||||
|
Dez: 230818 HEX: 385A2 OCT:702642 BIN:111000010110100010
|
||||||
|
Dez: 14772355 HEX:E16883 OCT:70264203 BIN:111000010110100010000011
|
||||||
|
Dez: 14772362 HEX:E1688A OCT:70264212 BIN:111000010110100010001010
|
||||||
80
18/18-1.py
Normal file
80
18/18-1.py
Normal file
@@ -0,0 +1,80 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
|
file = "./input.txt"
|
||||||
|
XY_DIMENSION = 70
|
||||||
|
FIRST_BYTES = 1024
|
||||||
|
|
||||||
|
|
||||||
|
#file = "./ex.txt"
|
||||||
|
#XY_DIMENSION = 6
|
||||||
|
#FIRST_BYTES = 12
|
||||||
|
|
||||||
|
from time import time
|
||||||
|
start_time = time()
|
||||||
|
|
||||||
|
def make_empty_grid(dimension:int)->list[list[str]]:
|
||||||
|
result = []
|
||||||
|
for _ in range(dimension+1):
|
||||||
|
result.append(["." for _ in range(dimension+1)])
|
||||||
|
return result
|
||||||
|
|
||||||
|
def print_grid(f):
|
||||||
|
for r in f:
|
||||||
|
for s in r:
|
||||||
|
if s == 0:
|
||||||
|
print(".", end="")
|
||||||
|
else:
|
||||||
|
print(s, end="")
|
||||||
|
print()
|
||||||
|
|
||||||
|
def fill_grid(gri:list[list[str]], ma:list[list[int]], filler:str)->list[list[str]]:
|
||||||
|
for m in ma:
|
||||||
|
x , y = m[0],m[1]
|
||||||
|
gri[y][x] = filler
|
||||||
|
return gri
|
||||||
|
|
||||||
|
def read_input(input_file:str, ) -> list[list[int]]:
|
||||||
|
out = []
|
||||||
|
f = open(input_file, "r")
|
||||||
|
for line in f:
|
||||||
|
line = line.strip()
|
||||||
|
if line == "":
|
||||||
|
continue
|
||||||
|
else:
|
||||||
|
out.append(list(map(int,line.split(','))))
|
||||||
|
f.close()
|
||||||
|
return out
|
||||||
|
from collections import deque
|
||||||
|
|
||||||
|
def shortest_path(array, start, end):
|
||||||
|
zeilen, spalten = len(array), len(array[0])
|
||||||
|
visited = set()
|
||||||
|
queue = deque([(start, [start])])
|
||||||
|
while queue:
|
||||||
|
(x, y), pfad = queue.popleft()
|
||||||
|
if (x, y) == end:
|
||||||
|
return len(pfad) - 1, pfad
|
||||||
|
for dx, dy in [(0, 1), (1, 0), (0, -1), (-1, 0)]:
|
||||||
|
nx, ny = x + dx, y + dy
|
||||||
|
if 0 <= nx < zeilen and 0 <= ny < spalten and array[nx][ny] == '.' and (nx, ny) not in visited:
|
||||||
|
queue.append(((nx, ny), pfad + [(ny, nx)]))
|
||||||
|
visited.add((nx, ny))
|
||||||
|
|
||||||
|
return -1, [] # Kein Pfad gefunden
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
grid = make_empty_grid(XY_DIMENSION)
|
||||||
|
byte_list = read_input(file)[:FIRST_BYTES]
|
||||||
|
#print_grid(field)
|
||||||
|
#print(read_input(file))
|
||||||
|
fill_grid(grid,byte_list,"#")
|
||||||
|
print_grid(grid)
|
||||||
|
|
||||||
|
sol = shortest_path(grid,(0,0),(XY_DIMENSION,XY_DIMENSION))
|
||||||
|
print(f"Shortest Path Length: {sol[0]}")
|
||||||
|
print_grid(fill_grid(grid,sol[1],"O"))
|
||||||
|
|
||||||
|
|
||||||
|
print(f'Runtime: {time()-start_time:.4f} s')
|
||||||
135
18/18-2-anim.py
Normal file
135
18/18-2-anim.py
Normal file
@@ -0,0 +1,135 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
import numpy as np
|
||||||
|
from PIL import Image, ImageDraw, ImageFont
|
||||||
|
import cv2
|
||||||
|
from time import time
|
||||||
|
from copy import deepcopy
|
||||||
|
start_time = time()
|
||||||
|
|
||||||
|
file = "./input.txt"
|
||||||
|
XY_DIMENSION = 70
|
||||||
|
FIRST_BYTES = 1024
|
||||||
|
|
||||||
|
#file = "./ex.txt"
|
||||||
|
#XY_DIMENSION = 6
|
||||||
|
#FIRST_BYTES = 12
|
||||||
|
|
||||||
|
|
||||||
|
out_file_name = "solution_10"
|
||||||
|
GROW_FACTOR = 10
|
||||||
|
|
||||||
|
fourcc = cv2.VideoWriter_fourcc(*'mp4v')
|
||||||
|
fps = 30
|
||||||
|
frame_size = ((XY_DIMENSION+1) * GROW_FACTOR, (XY_DIMENSION + 1) * GROW_FACTOR)
|
||||||
|
out_mp4 = cv2.VideoWriter(f'./{out_file_name}.mp4', fourcc, fps, frame_size)
|
||||||
|
gif_anim=[]
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
def array_to_image(ar):
|
||||||
|
global GROW_FACTOR
|
||||||
|
# Konvertiere das Array in ein NumPy-Array
|
||||||
|
np_array = np.array(ar)
|
||||||
|
# Erstelle ein leeres RGB-Bild
|
||||||
|
height, width = np_array.shape
|
||||||
|
image = Image.new('RGB', (width * GROW_FACTOR, height * GROW_FACTOR))
|
||||||
|
# Fülle das Bild mit Pixeln basierend auf den Array-Werten
|
||||||
|
for y in range(height):
|
||||||
|
for x in range(width):
|
||||||
|
if np_array[y, x] == "#":
|
||||||
|
color = (200, 0, 0)
|
||||||
|
elif np_array[y, x] == "O":
|
||||||
|
color = (50, 200,50)
|
||||||
|
else:
|
||||||
|
color = (0,0,0) # Standardfarbe schwarz
|
||||||
|
for dy in range(GROW_FACTOR):
|
||||||
|
for dx in range(GROW_FACTOR):
|
||||||
|
image.putpixel((x * GROW_FACTOR + dx, y * GROW_FACTOR + dy), color)
|
||||||
|
|
||||||
|
return image
|
||||||
|
|
||||||
|
def add_text_to_image(image, num):
|
||||||
|
draw = ImageDraw.Draw(image)
|
||||||
|
font = ImageFont.truetype("arial.ttf", 20) # Wählen Sie eine Schriftart und Größe
|
||||||
|
draw.text((5,5), f"{num:04d}", fill=(255, 255, 255), font=font) # Weißer Text
|
||||||
|
return image
|
||||||
|
|
||||||
|
def pil_to_cv2(pil_image):
|
||||||
|
return cv2.cvtColor(np.array(pil_image), cv2.COLOR_RGB2BGR)
|
||||||
|
|
||||||
|
|
||||||
|
def make_empty_grid(dimension:int)->list[list[str]]:
|
||||||
|
result = []
|
||||||
|
for _ in range(dimension+1):
|
||||||
|
result.append(["." for _ in range(dimension+1)])
|
||||||
|
return result
|
||||||
|
|
||||||
|
def print_grid(f):
|
||||||
|
for r in f:
|
||||||
|
for s in r:
|
||||||
|
if s == 0:
|
||||||
|
print(".", end="")
|
||||||
|
else:
|
||||||
|
print(s, end="")
|
||||||
|
print()
|
||||||
|
|
||||||
|
def fill_grid(gri:list[list[str]], ma:list[list[int]], filler:str)->list[list[str]]:
|
||||||
|
result = deepcopy(gri)
|
||||||
|
for m in ma:
|
||||||
|
x , y = m[0],m[1]
|
||||||
|
result[y][x] = filler
|
||||||
|
return result
|
||||||
|
|
||||||
|
def read_input(input_file:str, ) -> list[list[int]]:
|
||||||
|
out = []
|
||||||
|
f = open(input_file, "r")
|
||||||
|
for line in f:
|
||||||
|
line = line.strip()
|
||||||
|
if line == "":
|
||||||
|
continue
|
||||||
|
else:
|
||||||
|
out.append(list(map(int,line.split(','))))
|
||||||
|
f.close()
|
||||||
|
return out
|
||||||
|
from collections import deque
|
||||||
|
|
||||||
|
def shortest_path(array, start, end):
|
||||||
|
zeilen, spalten = len(array), len(array[0])
|
||||||
|
visited = set()
|
||||||
|
queue = deque([(start, [start])])
|
||||||
|
while queue:
|
||||||
|
(x, y), pfad = queue.popleft()
|
||||||
|
if (x, y) == end:
|
||||||
|
return len(pfad) - 1, pfad
|
||||||
|
for dx, dy in [(0, 1), (1, 0), (0, -1), (-1, 0)]:
|
||||||
|
nx, ny = x + dx, y + dy
|
||||||
|
if 0 <= nx < zeilen and 0 <= ny < spalten and array[nx][ny] == '.' and (nx, ny) not in visited:
|
||||||
|
queue.append(((nx, ny), pfad + [(ny, nx)]))
|
||||||
|
visited.add((nx, ny))
|
||||||
|
|
||||||
|
return -1, [] # Kein Pfad gefunden
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
grid = make_empty_grid(XY_DIMENSION)
|
||||||
|
corrupted = read_input(file)
|
||||||
|
for i in range(FIRST_BYTES, len(corrupted)):
|
||||||
|
g = fill_grid(grid,corrupted[:i],"#")
|
||||||
|
sp = shortest_path(g,(0,0),(XY_DIMENSION,XY_DIMENSION))
|
||||||
|
g_with_path = fill_grid(g, sp[1], "O")
|
||||||
|
|
||||||
|
img = array_to_image(g_with_path)
|
||||||
|
gif_anim.append(img)
|
||||||
|
cv2_image = pil_to_cv2(img)
|
||||||
|
out_mp4.write(cv2_image)
|
||||||
|
if sp[0] == -1:
|
||||||
|
print(f"First Blocking Field: {corrupted[:i][-1]}")
|
||||||
|
break
|
||||||
|
|
||||||
|
out_mp4.release()
|
||||||
|
gif_anim[0].save(f'./{out_file_name}.gif', save_all=True, append_images=gif_anim[1:],
|
||||||
|
optimize=False, duration=30, loop=0)
|
||||||
|
|
||||||
|
|
||||||
|
print(f'Runtime: {time()-start_time:.4f} s')
|
||||||
149
18/18-2-anim2.py
Normal file
149
18/18-2-anim2.py
Normal file
@@ -0,0 +1,149 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
import numpy as np
|
||||||
|
from PIL import Image, ImageDraw, ImageFont
|
||||||
|
import cv2
|
||||||
|
from time import time
|
||||||
|
from copy import deepcopy
|
||||||
|
start_time = time()
|
||||||
|
|
||||||
|
file = "./input.txt"
|
||||||
|
XY_DIMENSION = 70
|
||||||
|
FIRST_BYTES = 1024
|
||||||
|
|
||||||
|
#file = "./ex.txt"
|
||||||
|
#XY_DIMENSION = 6
|
||||||
|
#FIRST_BYTES = 12
|
||||||
|
|
||||||
|
|
||||||
|
out_file_name = "solution_10_2"
|
||||||
|
GROW_FACTOR = 10
|
||||||
|
|
||||||
|
fourcc = cv2.VideoWriter_fourcc(*'mp4v')
|
||||||
|
fps = 30
|
||||||
|
frame_size = ((XY_DIMENSION+1) * GROW_FACTOR, (XY_DIMENSION + 1) * GROW_FACTOR)
|
||||||
|
out_mp4 = cv2.VideoWriter(f'./{out_file_name}.mp4', fourcc, fps, frame_size)
|
||||||
|
gif_anim=[]
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
def array_to_image(ar):
|
||||||
|
global GROW_FACTOR
|
||||||
|
# Konvertiere das Array in ein NumPy-Array
|
||||||
|
np_array = np.array(ar)
|
||||||
|
# Erstelle ein leeres RGB-Bild
|
||||||
|
height, width = np_array.shape
|
||||||
|
image = Image.new('RGB', (width * GROW_FACTOR, height * GROW_FACTOR))
|
||||||
|
# Fülle das Bild mit Pixeln basierend auf den Array-Werten
|
||||||
|
for y in range(height):
|
||||||
|
for x in range(width):
|
||||||
|
if ist_zahl(np_array[y, x]):
|
||||||
|
r = np_array[y,x]
|
||||||
|
color = (135+(int(r)*4), 0, 100)
|
||||||
|
#print(int(r)+100)
|
||||||
|
elif np_array[y, x] == "#":
|
||||||
|
color = (255, 0, 0)
|
||||||
|
elif np_array[y, x] == "O":
|
||||||
|
color = (50, 200,50)
|
||||||
|
else:
|
||||||
|
color = (0,0,0) # Standardfarbe schwarz
|
||||||
|
for dy in range(GROW_FACTOR):
|
||||||
|
for dx in range(GROW_FACTOR):
|
||||||
|
image.putpixel((x * GROW_FACTOR + dx, y * GROW_FACTOR + dy), color)
|
||||||
|
return image
|
||||||
|
|
||||||
|
def ist_zahl(zelle):
|
||||||
|
return np.issubdtype(zelle.dtype, np.number) or (isinstance(zelle.item(), str) and zelle.item().isdigit())
|
||||||
|
|
||||||
|
def add_text_to_image(image, num):
|
||||||
|
draw = ImageDraw.Draw(image)
|
||||||
|
font = ImageFont.truetype("arial.ttf", 20) # Wählen Sie eine Schriftart und Größe
|
||||||
|
draw.text((5,5), f"{num:04d}", fill=(255, 255, 255), font=font) # Weißer Text
|
||||||
|
return image
|
||||||
|
|
||||||
|
def pil_to_cv2(pil_image):
|
||||||
|
return cv2.cvtColor(np.array(pil_image), cv2.COLOR_RGB2BGR)
|
||||||
|
|
||||||
|
|
||||||
|
def make_empty_grid(dimension:int)->list[list[str]]:
|
||||||
|
result = []
|
||||||
|
for _ in range(dimension+1):
|
||||||
|
result.append(["." for _ in range(dimension+1)])
|
||||||
|
return result
|
||||||
|
|
||||||
|
def print_grid(f):
|
||||||
|
for r in f:
|
||||||
|
for s in r:
|
||||||
|
print(s, end="")
|
||||||
|
print()
|
||||||
|
|
||||||
|
def fill_grid(gri:list[list[str]], ma:list[list[int]], filler:str)->list[list[str]]:
|
||||||
|
result = deepcopy(gri)
|
||||||
|
for m in ma:
|
||||||
|
x , y = m[0],m[1]
|
||||||
|
result[y][x] = filler
|
||||||
|
return result
|
||||||
|
|
||||||
|
def fill_grid_2(gri: list[list[str]], ma: list[list[int]], filler: str) -> list[list[str]]:
|
||||||
|
result = deepcopy(gri)
|
||||||
|
# Fülle die ersten Einträge mit dem filler
|
||||||
|
for j, m in enumerate(ma[:-30]):
|
||||||
|
x, y = m[0], m[1]
|
||||||
|
result[y][x] = filler
|
||||||
|
# Fülle die letzten 155 Einträge mit Zahlen von 1 bis 155
|
||||||
|
for j, m in enumerate(ma[-30:], start=1):
|
||||||
|
x, y = m[0], m[1]
|
||||||
|
result[y][x] = str(j)
|
||||||
|
return result
|
||||||
|
|
||||||
|
def read_input(input_file:str, ) -> list[list[int]]:
|
||||||
|
out = []
|
||||||
|
f = open(input_file, "r")
|
||||||
|
for line in f:
|
||||||
|
line = line.strip()
|
||||||
|
if line == "":
|
||||||
|
continue
|
||||||
|
else:
|
||||||
|
out.append(list(map(int,line.split(','))))
|
||||||
|
f.close()
|
||||||
|
return out
|
||||||
|
from collections import deque
|
||||||
|
|
||||||
|
def shortest_path(array, start, end):
|
||||||
|
zeilen, spalten = len(array), len(array[0])
|
||||||
|
visited = set()
|
||||||
|
queue = deque([(start, [start])])
|
||||||
|
while queue:
|
||||||
|
(x, y), pfad = queue.popleft()
|
||||||
|
if (x, y) == end:
|
||||||
|
return len(pfad) - 1, pfad
|
||||||
|
for dx, dy in [(0, 1), (1, 0), (0, -1), (-1, 0)]:
|
||||||
|
nx, ny = x + dx, y + dy
|
||||||
|
if 0 <= nx < zeilen and 0 <= ny < spalten and array[nx][ny] == '.' and (nx, ny) not in visited:
|
||||||
|
queue.append(((nx, ny), pfad + [(ny, nx)]))
|
||||||
|
visited.add((nx, ny))
|
||||||
|
return -1, [] # Kein Pfad gefunden
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
grid = make_empty_grid(XY_DIMENSION)
|
||||||
|
corrupted = read_input(file)
|
||||||
|
for i in range(FIRST_BYTES, len(corrupted)):
|
||||||
|
g = fill_grid_2(grid,corrupted[:i],"#")
|
||||||
|
sp = shortest_path(g,(0,0),(XY_DIMENSION,XY_DIMENSION))
|
||||||
|
g_with_path = fill_grid(g, sp[1], "O")
|
||||||
|
|
||||||
|
img = array_to_image(g_with_path)
|
||||||
|
gif_anim.append(img)
|
||||||
|
cv2_image = pil_to_cv2(img)
|
||||||
|
out_mp4.write(cv2_image)
|
||||||
|
if sp[0] == -1:
|
||||||
|
print(f"First Blocking Field: {corrupted[:i][-1]}")
|
||||||
|
break
|
||||||
|
|
||||||
|
out_mp4.release()
|
||||||
|
gif_anim[0].save(f'./{out_file_name}.gif', save_all=True, append_images=gif_anim[1:],
|
||||||
|
optimize=False, duration=30, loop=0)
|
||||||
|
|
||||||
|
|
||||||
|
print(f'Runtime: {time()-start_time:.4f} s')
|
||||||
76
18/18-2.py
Normal file
76
18/18-2.py
Normal file
@@ -0,0 +1,76 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
from copy import deepcopy
|
||||||
|
|
||||||
|
file = "./input.txt"
|
||||||
|
XY_DIMENSION = 70
|
||||||
|
FIRST_BYTES = 1024
|
||||||
|
|
||||||
|
|
||||||
|
#file = "./ex.txt"
|
||||||
|
#XY_DIMENSION = 6
|
||||||
|
#FIRST_BYTES = 12
|
||||||
|
|
||||||
|
from time import time
|
||||||
|
start_time = time()
|
||||||
|
|
||||||
|
def make_empty_grid(dimension:int)->list[list[str]]:
|
||||||
|
result = []
|
||||||
|
for _ in range(dimension+1):
|
||||||
|
result.append(["." for _ in range(dimension+1)])
|
||||||
|
return result
|
||||||
|
|
||||||
|
def print_grid(f):
|
||||||
|
for r in f:
|
||||||
|
for s in r:
|
||||||
|
if s == 0:
|
||||||
|
print(".", end="")
|
||||||
|
else:
|
||||||
|
print(s, end="")
|
||||||
|
print()
|
||||||
|
|
||||||
|
def fill_grid(gri:list[list[str]], ma:list[list[int]], filler:str)->list[list[str]]:
|
||||||
|
result = deepcopy(gri)
|
||||||
|
for m in ma:
|
||||||
|
x , y = m[0],m[1]
|
||||||
|
result[y][x] = filler
|
||||||
|
return result
|
||||||
|
|
||||||
|
def read_input(input_file:str, ) -> list[list[int]]:
|
||||||
|
out = []
|
||||||
|
f = open(input_file, "r")
|
||||||
|
for line in f:
|
||||||
|
line = line.strip()
|
||||||
|
if line == "":
|
||||||
|
continue
|
||||||
|
else:
|
||||||
|
out.append(list(map(int,line.split(','))))
|
||||||
|
f.close()
|
||||||
|
return out
|
||||||
|
from collections import deque
|
||||||
|
|
||||||
|
def shortest_path(array, start, end):
|
||||||
|
zeilen, spalten = len(array), len(array[0])
|
||||||
|
visited = set()
|
||||||
|
queue = deque([(start, [start])])
|
||||||
|
while queue:
|
||||||
|
(x, y), pfad = queue.popleft()
|
||||||
|
if (x, y) == end:
|
||||||
|
return len(pfad) - 1, pfad
|
||||||
|
for dx, dy in [(0, 1), (1, 0), (0, -1), (-1, 0)]:
|
||||||
|
nx, ny = x + dx, y + dy
|
||||||
|
if 0 <= nx < zeilen and 0 <= ny < spalten and array[nx][ny] == '.' and (nx, ny) not in visited:
|
||||||
|
queue.append(((nx, ny), pfad + [(ny, nx)]))
|
||||||
|
visited.add((nx, ny))
|
||||||
|
|
||||||
|
return -1, [] # Kein Pfad gefunden
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
grid = make_empty_grid(XY_DIMENSION)
|
||||||
|
corrupted = read_input(file)
|
||||||
|
for i in range(FIRST_BYTES, len(corrupted)):
|
||||||
|
if shortest_path(fill_grid(grid,corrupted[:i],"#"),(0,0),(XY_DIMENSION,XY_DIMENSION))[0] == -1:
|
||||||
|
print(f"First Blocking Field: {corrupted[:i][-1]}")
|
||||||
|
break
|
||||||
|
print(f'Runtime: {time()-start_time:.4f} s')
|
||||||
25
18/ex.txt
Normal file
25
18/ex.txt
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
5,4
|
||||||
|
4,2
|
||||||
|
4,5
|
||||||
|
3,0
|
||||||
|
2,1
|
||||||
|
6,3
|
||||||
|
2,4
|
||||||
|
1,5
|
||||||
|
0,6
|
||||||
|
3,3
|
||||||
|
2,6
|
||||||
|
5,1
|
||||||
|
1,2
|
||||||
|
5,5
|
||||||
|
2,5
|
||||||
|
6,5
|
||||||
|
1,4
|
||||||
|
0,4
|
||||||
|
6,4
|
||||||
|
1,1
|
||||||
|
6,1
|
||||||
|
1,0
|
||||||
|
0,5
|
||||||
|
1,6
|
||||||
|
2,0
|
||||||
3450
18/input.txt
Normal file
3450
18/input.txt
Normal file
File diff suppressed because it is too large
Load Diff
BIN
18/solution_10.gif
Normal file
BIN
18/solution_10.gif
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 266 KiB |
BIN
18/solution_10_2.gif
Normal file
BIN
18/solution_10_2.gif
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 34 MiB |
BIN
18/solution_10_2.mp4
Normal file
BIN
18/solution_10_2.mp4
Normal file
Binary file not shown.
48
19/19-1-1.py
Normal file
48
19/19-1-1.py
Normal file
@@ -0,0 +1,48 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
from functools import lru_cache
|
||||||
|
|
||||||
|
file = "./input.txt"
|
||||||
|
#file = "./ex.txt"
|
||||||
|
#file = "./input-e.txt"
|
||||||
|
from time import time
|
||||||
|
start_time = time()
|
||||||
|
|
||||||
|
def read_input(input_file:str, ) -> tuple[list[str], list[str]]:
|
||||||
|
a = []
|
||||||
|
d = []
|
||||||
|
f = open(input_file, "r")
|
||||||
|
for line in f:
|
||||||
|
line = line.strip()
|
||||||
|
if line == "":
|
||||||
|
continue
|
||||||
|
elif "," in line:
|
||||||
|
a = line.replace(" ","").split(",")
|
||||||
|
else:
|
||||||
|
d.append(line)
|
||||||
|
f.close()
|
||||||
|
return a, d
|
||||||
|
|
||||||
|
@lru_cache(maxsize=None)
|
||||||
|
def check_design(txt: str) -> bool:
|
||||||
|
global alphabet
|
||||||
|
if txt == "":
|
||||||
|
return True
|
||||||
|
for substring in alphabet:
|
||||||
|
if txt.startswith(substring):
|
||||||
|
remaining = txt[len(substring):]
|
||||||
|
if check_design(remaining):
|
||||||
|
return True
|
||||||
|
return False
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
alphabet, designs = read_input(file)
|
||||||
|
sol = 0
|
||||||
|
for i, design in enumerate(designs):
|
||||||
|
#print(i, design)
|
||||||
|
if check_design(design):
|
||||||
|
sol += 1
|
||||||
|
print(sol)
|
||||||
|
|
||||||
|
print(f'Runtime: {time()-start_time:.8f} s')
|
||||||
58
19/19-1.py
Normal file
58
19/19-1.py
Normal file
@@ -0,0 +1,58 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
|
#file = "./input.txt"
|
||||||
|
#file = "./ex.txt"
|
||||||
|
file = "./input-e.txt"
|
||||||
|
from time import time
|
||||||
|
start_time = time()
|
||||||
|
|
||||||
|
def read_input(input_file:str, ) -> tuple[list[str], list[str]]:
|
||||||
|
a = []
|
||||||
|
d = []
|
||||||
|
f = open(input_file, "r")
|
||||||
|
for line in f:
|
||||||
|
line = line.strip()
|
||||||
|
if line == "":
|
||||||
|
continue
|
||||||
|
elif "," in line:
|
||||||
|
a = line.replace(" ","").split(",")
|
||||||
|
else:
|
||||||
|
d.append(line)
|
||||||
|
f.close()
|
||||||
|
return a, d
|
||||||
|
|
||||||
|
def check_design(txt: str) -> bool:
|
||||||
|
global alphabet
|
||||||
|
memo = {}
|
||||||
|
|
||||||
|
def check(remaining: str) -> bool:
|
||||||
|
if remaining == "":
|
||||||
|
return True
|
||||||
|
|
||||||
|
if remaining in memo:
|
||||||
|
return memo[remaining]
|
||||||
|
|
||||||
|
for substring in alphabet:
|
||||||
|
if remaining.startswith(substring):
|
||||||
|
if check(remaining[len(substring):]):
|
||||||
|
memo[remaining] = True
|
||||||
|
return True
|
||||||
|
|
||||||
|
memo[remaining] = False
|
||||||
|
return False
|
||||||
|
|
||||||
|
return check(txt)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
alphabet, designs = read_input(file)
|
||||||
|
sol = 0
|
||||||
|
for i, design in enumerate(designs):
|
||||||
|
#print(i, design)
|
||||||
|
if check_design(design):
|
||||||
|
sol += 1
|
||||||
|
print(sol)
|
||||||
|
|
||||||
|
print(f'Runtime: {time()-start_time:.8f} s')
|
||||||
49
19/19-2.py
Normal file
49
19/19-2.py
Normal file
@@ -0,0 +1,49 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
from functools import lru_cache
|
||||||
|
|
||||||
|
file = "./input.txt"
|
||||||
|
#file = "./ex.txt"
|
||||||
|
#file = "./input-e.txt"
|
||||||
|
from time import time
|
||||||
|
start_time = time()
|
||||||
|
|
||||||
|
def read_input(input_file:str, ) -> tuple[list[str], list[str]]:
|
||||||
|
a = []
|
||||||
|
d = []
|
||||||
|
f = open(input_file, "r")
|
||||||
|
for line in f:
|
||||||
|
line = line.strip()
|
||||||
|
if line == "":
|
||||||
|
continue
|
||||||
|
elif "," in line:
|
||||||
|
a = line.replace(" ","").split(",")
|
||||||
|
else:
|
||||||
|
d.append(line)
|
||||||
|
f.close()
|
||||||
|
return a, d
|
||||||
|
|
||||||
|
@lru_cache(maxsize=None)
|
||||||
|
def count_designs(txt: str) -> int:
|
||||||
|
global alphabet
|
||||||
|
if txt == "":
|
||||||
|
return 1
|
||||||
|
total = 0
|
||||||
|
for substring in alphabet:
|
||||||
|
if txt.startswith(substring):
|
||||||
|
remaining = txt[len(substring):]
|
||||||
|
total += count_designs(remaining)
|
||||||
|
return total
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
alphabet, designs = read_input(file)
|
||||||
|
sol = 0
|
||||||
|
for i, design in enumerate(designs):
|
||||||
|
x = count_designs(design)
|
||||||
|
print(i, design, x)
|
||||||
|
sol += x
|
||||||
|
print(sol)
|
||||||
|
|
||||||
|
print(f'Runtime: {time()-start_time:.8f} s')
|
||||||
10
19/ex.txt
Normal file
10
19/ex.txt
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
r, wr, b, g, bwu, rb, gb, br
|
||||||
|
|
||||||
|
brwrr
|
||||||
|
bggr
|
||||||
|
gbbr
|
||||||
|
rrbgbr
|
||||||
|
ubwu
|
||||||
|
bwurrg
|
||||||
|
brgr
|
||||||
|
bbrgwb
|
||||||
402
19/input-e.txt
Normal file
402
19/input-e.txt
Normal file
@@ -0,0 +1,402 @@
|
|||||||
|
bwwww, gwwug, ruw, wrbuwrbw, ugugb, rwwgw, wwb, ubgg, rubbwu, wgbuurbb, wrrbru, gwg, uuwwg, ugrrgr, uugrb, grwb, gwrb, buwrwuw, wrb, ruuggwr, rub, guwwr, gwrur, uug, ugguwru, uwr, rwuug, bwgw, ruu, wrbb, wub, wuwgugg, grgwrww, bgubw, wruuuu, bwg, wu, wbrbgr, bgwg, bgrubu, ggru, bgguww, rubgugrw, grwguu, wbg, ugub, urbwuurr, grb, ug, gbu, gbgwurbw, rrrburr, uggru, rubuwrrw, guwgrb, rbr, uruw, gggur, ugwg, bbwrr, ggbbbru, grbug, uuubww, rruug, ubbgwgr, brb, rbbuwbu, ggbrru, uuwugb, ubbgr, bubg, grbb, rgb, rwur, ubuuu, gwuwb, bubgrgr, wuuu, bwwg, urugg, wubuwubw, wgrb, gwggrgu, rwbu, bbbubgrg, rw, ggug, gwbgwbrb, bgugww, ggurrwg, rbbwuwu, wgw, bwb, bbw, urru, ugg, uwguu, wggw, wgr, urrr, urguwr, bbb, bgwbgub, guw, gu, gurwr, rgw, wbb, wggu, brbbg, wbw, rur, gub, rrbbr, uugruww, rbbrb, bwgrgr, rwrurww, grurg, brur, wbr, rgu, gguwr, bwurb, grguw, wuu, rwu, ubu, wbbwwub, urg, rww, bgg, wrwg, ugr, uru, urwggw, buwur, bbrgbwgr, bggbbgw, bbgu, rurrr, ugww, uurbur, brbw, wgwrbr, wbuuw, gwgu, rbw, gbwugwb, gbw, bwwgwr, wurrgwu, wwbg, rburuu, wrruwg, gg, bbbwugg, g, bg, wwguuu, gruwgu, ggrr, ur, bwwru, rwgub, rgwuu, wur, wuwrugw, uw, bubggbr, ubug, gwbbrw, rubgwg, rwbuub, rgrbugb, rbgb, wwgb, brbgw, uwwr, rbrg, uwrrur, uuwb, wug, bwwgrgb, rg, wuwww, bgrb, uurgw, rrburg, wubg, rwrwur, rwb, wrw, bwrw, wg, wwgrubwg, bugb, uuubguuw, gruu, wggruuu, urwu, wuugb, rrwww, bwrugbrb, wrgg, bru, ggww, wrbrrg, ugbu, rwwrrguu, wrg, buguu, ugbbww, urwur, grr, uuw, rrub, rb, bww, wgwr, ubb, bbbuub, ggbrw, rbwb, ubw, uuwg, wgrrbr, grw, gwu, wuwwgr, rwuw, gbbr, bguur, gwgrrw, bbu, ggg, grg, urbwwrr, bwgbuw, bw, gbrw, wbwrb, rurg, uurg, guugb, uww, brrbggbu, ruww, ru, rwguw, wgwbug, wwu, wgwwbur, bu, rguu, uwwwg, rug, wwg, brg, uwu, ubr, burg, ruug, rwr, uurugu, gr, uwubu, rr, rbwrbw, gw, uwwuu, ruuwb, rbg, wwrw, wruubg, bgwgrwbr, wuru, ggrgr, br, rwuu, grgbgg, urw, uub, rgrbb, wbuwb, wgwbg, ubwu, gwb, uu, rrrr, rru, gwr, uuubu, grgw, gbb, gwug, wbggwu, gggr, wr, wuw, wgg, buw, gbuwrwu, gb, uwb, bgubgb, rggbbbu, rgubgggr, rbgr, ruwr, wwr, grgbrb, ugrubr, ubgu, ugw, ugrr, ubg, ubgb, urb, wgb, wbwrbw, rugrr, ub, gbr, bugrg, ugu, rgrw, rrrrurr, bgbw, wgwg, guu, wrrubu, www, wrbu, bgrguwr, wwur, ubgbgug, wbwu, buu, gbgubrw, b, ggr, rrg, wwwb, wgrrrw, ubgrug, rrr, ugbb, wugubbur, bgwb, buwww, ugb, buub, wbrru, wuwguur, gwrggg, bgb, gru, bwwr, bgr, gbbw, wuruw, gbrgu, uwg, ubrg, ggu, bbwg, ugrbug, bbr, r, ugbwub, ggb, bbg, bggwb, bub, gbg, burbr, brw, wbuu, gugbb, uwubg, gbgwr, bgwwru, rgugb, uubgr, bb, gug, rggb, wugub, wrgu, wrwguug, gur, wru, bgbr, bug, bwu, ubbur, uurugb, ubgug, bgrr, bgbb, uwbrrug, bburur, rgr, brbbrw, rrrrwu, rgg, urwuwr, wwgr, bur, rugwg, bgu, urbg, wwrgbuw, rrgwrbb, uuu, grwgg, bwr, wrbrb, wrr, uwuuur, rrubu, ugwrg, rwuwg, wgu, rwru, rrww, urr, rwg, bgw, rbb, bgbubrg, bwbb, u, wggurggu, bubgw, ggw, gugg, ugrru, wbu, rggrrb, ubrgggwg, bwuu, rurb, wgrrg, brr, rubr
|
||||||
|
|
||||||
|
wbugbugbgrgwubgrrgrubgbwubugrbrrubgwggggubrrrwrbr
|
||||||
|
wbgrbrgbwrrurrrguwbubburbrwgwrbuwrbwgwuwubwurggbrggbr
|
||||||
|
urbrbuwgbgwwwbgbwrugruburguwgwbgrugwrrbwbubgrwgww
|
||||||
|
rrbgwgrwbrbuubbuugrurgbrbrwrbrggurwgwrbuwuwgubuwwrru
|
||||||
|
uburbwruugurrbwbgbggrgrrurrugwuwggggubuwugbgurgugurbbbu
|
||||||
|
wbubwwubrurggrrbbbuuwuwgggbguubwuubbwggrgubwbuggrbrrubg
|
||||||
|
bbwbgggrwrrbwurubbrgugrguwrwwrrguurwwburgruwrrbrrbwgbggw
|
||||||
|
gugrgwgbbwguuwbbrgwrruuuruwgbrurwubggbubbgrugubgbuwwgww
|
||||||
|
bbrbbwgwwwbrgbrrgwgugwbwwrrbbwwgrwrrrrwwgrbguububgwrgww
|
||||||
|
ubuuuwrrwgwwgbguuurrgwrbbuggruurbwuwrubuugrwuuuwbwgubbuwgww
|
||||||
|
uwuuwwwrrruggbbggrgwbbggwgurruwwgrugwrgww
|
||||||
|
ubbbrbbgubugugggugrbwuwbgbbruguburwugrubug
|
||||||
|
rwwruggrwguwguwgguruubrggbgbbubwwrbbgbwbwwbbubbruwb
|
||||||
|
brubrbrurrbugwgrgrruuurrbgguwuwubbggbwgurbbuwugur
|
||||||
|
wwrguwbwuggubgbrgbguburugbbwugrwwwggwwgbrgwrugrwuubgwwrggw
|
||||||
|
uuugwubwgwrbuurbrwuuuubwgbubwbwrgbgrrbbggrwbwbg
|
||||||
|
brgbbrugbwbbwbuugubwrbuggruubrgwwuggugbubbgub
|
||||||
|
urbrwguurgbbrgbwrugggwwgwubbguwrurbwburrwgu
|
||||||
|
uwrbgggguruwubgrruwrguuuubwugwwrgbgubwrwguubuubwugwbw
|
||||||
|
guugwbgwbrgurbrbwwrrubbbuurruuubburgrruwguwwwww
|
||||||
|
wuugwbwbrgbgubgwuwwbggbubrugubrgggwgrrbrrrbuwgbb
|
||||||
|
wgwgwurrrbwbwuuwgbwrggwruuuwbuuuuwrrbrrbbugwuubrwu
|
||||||
|
wrbbgbbgugbbwwurruuruguuwuwbubbgruwurwruggruwbrbbwbwwbu
|
||||||
|
gwbgwbbwwwuubrubguggguwbguuwrubwbrgwwugwbuuwurwrgurub
|
||||||
|
ugubrbubwbruubwugugrrbwbuggbgbrrgbrrgbbbgrguwwbrgww
|
||||||
|
ugbbburwwwbrrbrwbrwwbrwwubrrrwwubwgrrrbbgrwbbub
|
||||||
|
uuuwgbgbuwguururugrbbbwuwurbuubuggbururrgbwuwwrwuuguuugwgww
|
||||||
|
rwrbrgbuggwwbggwggrrwbgggwggurrbwbbubrgbuggbbrrugrbwwuwrrgww
|
||||||
|
brggrbgbruwrggwbbbuwubuwgwbrwgrwrwrwruuwggwrruwgrbru
|
||||||
|
buwugrgrbggwrbuggbubwwugugggbbrggwugbugburgrrbgbuwr
|
||||||
|
urrwwwgwrbgwgbuwrggggrgbburwgwuuguwbwrrbbwwbgbwrwwwwwgrgww
|
||||||
|
uwwbgwbbbggwbbbrgubrrrgbwwrwwbwbuwurubgww
|
||||||
|
bbrrurwwggrbgwggrrggrrgugbubwuwbbwrbrgubgggbgu
|
||||||
|
wbuugbubuwbrugrwgwbrrgggrubrbrwbgrgwgbrwubgrgww
|
||||||
|
ggugbrggrrbrgbbwguuruwurggbbggrbugbgwrbwbugbwwuurwgbbggwub
|
||||||
|
urbwbubwurrgrruubwurbwwrwuwguurrrgbwgbwguwrgbgwwrwrugbbw
|
||||||
|
bbrgwuubwrgubbrrgrwgugbrbuwuwuuurwgwgbgrbubbbruuubgwg
|
||||||
|
wwbwbbbwurgubggugrbwrrbwuugugwbrrwuwbrwbrrrbrwbbbgrrrwgwgww
|
||||||
|
uwwubwgubbwwugrugbwrugwbrwrrwbbgbugruwbwggruguubbrw
|
||||||
|
uuruwbgwbwbrggrbgrugbgwwbbbgugurgrgggurbwrrwurguu
|
||||||
|
brbgrruwguugwbuwubwwbgwgbugbgrubrbbubbwubbuggbrgbrwugbrwwgww
|
||||||
|
brwrbwugubuguuuggrurbwruugguwugwgugwrbrbgwwrbwuurwwuur
|
||||||
|
bbbguugubrugurrrgugggwbrrrgrggbugwwurrgrwuguwgbwrbgwgwg
|
||||||
|
burrrgruugbbugrwgbrwrrgrugwrwrgbrrbgwwbbuubgw
|
||||||
|
gurrgwuubbruwuwgbugbbbrwuwgbwurrurrugurruugrgbbrb
|
||||||
|
buwurgurguguuuurbrrwgwgbgbwubrgrrrgbrbuwggwrurbggurb
|
||||||
|
wbgwgbgrgbwubwgubbbbrggrwwgwuuubbbrbwburgww
|
||||||
|
bgrugwbgbwwwrugrgbbwwrrgurrbwurwurggwbwbbwbruu
|
||||||
|
wbrwggwrwbggwwurwbububbuwbwwuwwurgggwugbbuwgurruwg
|
||||||
|
ububrrrruwrwburrggbgwwbururuwuurugrbrrrwrbgbb
|
||||||
|
gbgrwggrguwurugrrrbbbubwrugrwubuwurwuguggwwrbr
|
||||||
|
wgbguuwbbrrrgruwgugrgrwgrrugbrgrubugubggbrbwwrwwwwguwugu
|
||||||
|
rwuurububuubburbwwbbuubbrgrrbubbwgbwrrguwrrbubrgggwgww
|
||||||
|
rrrburbguwrrgrrbgrggggrbwgrbgrwbbbggugbubrw
|
||||||
|
ggrwgwubbuwrwruwwgwwbbwbgbwggubwgbrrubgww
|
||||||
|
ugwbbwgubbwurwbbrrbubugbgwwbubbbrgbwgrugrbrrbwgww
|
||||||
|
grwwwggbwuwrguugrbgrggbubwbbgguwuguurbwgubwuguuwrggwwr
|
||||||
|
brrwgbuurugrbuwguwuurguwbbwgbwbrwuubruwubwgbgbg
|
||||||
|
ubrgbwruwguurrburgururuburwwrrguurubuugrbbrbggrwbuuuwrrgww
|
||||||
|
rbwgguggbrbgbgwgrgrggbgbuwbgububrruwrbrgww
|
||||||
|
ggrgwuruurgbwururwbbbrbbubgubugwubbbwrurgburg
|
||||||
|
guuwbwgwurbrugggrwwwbrwrbbggwgugwubbubgggu
|
||||||
|
wwggrbwgbgbrwwuwbwurgwbubbggbbgwrrggggrbwgugb
|
||||||
|
burgburgggbgrwbrrrbgwgbwwbubgwwbugubgwgbwwrrwwwrrug
|
||||||
|
ugbbbrwbgruuwbwwggbwbguubrrrbgbbwbbbgburbgww
|
||||||
|
uuburguubgubgggwbwggurgguwbbrgbubwuguururrbwrg
|
||||||
|
gubwuwubrwgugrwwwuwbrgurrwwbrggrbwbggwubgrgruw
|
||||||
|
guwgrbruruwrbwruuwggrwwwrburgrbggbwugbgww
|
||||||
|
urwubuwuruubggwwggwuwwggrbrgburwrbruwrbwrrgww
|
||||||
|
uuruugbuururbguururbgbugguuuuwwgguubwruguwwgww
|
||||||
|
wgrbguguwgwbguwwbwrrwrwgbubrgurrgwwgwruuggwbwubb
|
||||||
|
wburburwbgwrwgwwwrwggrwwurrbrrruugurgubrgg
|
||||||
|
gbguguwwburwgburrgrbgugwgrwrwruwubugbbgugbwggrrrgww
|
||||||
|
uwgwbruwuurgwgrgbuugbgurwruwrbbugggbbuuwrbg
|
||||||
|
ubgbwbrrrbwuruurggugwubruwwgurwgbbggwbbwrrwburbb
|
||||||
|
rgwuuggrurgwwuuuwrruwggrgbwwbuwwbbwurrbggwrwwurrwgww
|
||||||
|
rbgubuwrwuwrrbbuugwwurruugbuwguwugwrgrgbwburrwub
|
||||||
|
rurbrrwugbwgwrrbwbwrrubgwrugbwwuggbubwugwrwbuuggbgrrb
|
||||||
|
grbwwgbrwrurwbwrbgrwrwuwuwburbrwbwugwgwrwgggrbuwb
|
||||||
|
ugurrgguwbbgbgbgggbrgwbrwwwrbubuurbbwwbgrgww
|
||||||
|
gubuugurbrrburwgruuuwbbruwuubuggwwwbrwwwbwwrrggwb
|
||||||
|
ugurrbrgwurgrrwubbgbwwwbgurrruruwrbwgbrbrruuwuwgwwwbgrggbgww
|
||||||
|
bwurwubwuruwggguwugrrrbwrubbgbuguguwggbwubrwurbwbrwbugwbu
|
||||||
|
rwubrbbbuuuwuurrbgbugggwbbgbgwurbuuwbruurguggbuuwrrrubwuug
|
||||||
|
wrgwrrwguggbrwrbuguruwwrbbbwbbwgbwubururubwrwubrw
|
||||||
|
buwguruwgrwrwwrbgbbrrbggbugwrrugrburubgbggrbbwubwbgguuwubgww
|
||||||
|
wwubrbrgwrburbruurgurrgrbrwbrbuwugurbwuubwgwrgbuwu
|
||||||
|
rbwrggwgbrbrrgbrwuwrrrrwurbggwwuwubuugwbugrguubrw
|
||||||
|
uruggbgubbrrgbrbwwguurggbbugugrrggubuugwwu
|
||||||
|
ggbrwgbbggbwgwggbbguurgbgbbbubugbbgrugrgubbu
|
||||||
|
ggbggwbbrgurwrrrgugbgwbgwwwugguguuugrbuwbwbwbrbbgbrbgwur
|
||||||
|
rbwrbugwrwwwrwwugbbrbrubrrgrugrwrwgbuubuwgwuwgrrrbgww
|
||||||
|
wgwwrwgwruwgbbbbwgbbgbwgwrwruwwrwwuuurgrwgww
|
||||||
|
wwgbbuwguuuwbrubbbwrrgbwwrguuggwuubuuwubbruw
|
||||||
|
gbgbbuwbrwwbrurgwbugbwuwurbugbugwrwgwwbwwuwuwbuuuwr
|
||||||
|
gbwubuuwurbuwbwuuguguwbwgbgrbgrgburubwbruuub
|
||||||
|
rwwrgbrrbrbbbrgrwgrgbgwwgrwbbrrguwbwwrgrruugrrgww
|
||||||
|
wrbgbrgrwuwwgwrbrgwbubwuwwguuuwurgbbrwgwrruwgg
|
||||||
|
uwrbgrgruwubggrgrguugrgubbwrbwwbubwgugurrbgwrugbgw
|
||||||
|
bugguuguwbrurrbrggbwwguubrggguuuwgggrbbgrgbrubbrrgrugwwrg
|
||||||
|
bgwrwbuuwuuwrruwgrrwbuwuuruurgrbgurruwruwr
|
||||||
|
urrrrbwrrgbuubrbbgggggubuwbbguuwurwgbrbgww
|
||||||
|
rrbgwubrwbwbuuuguuguubruwrurggwgwgrrgbwbrwurbwbwgrwrgurwwg
|
||||||
|
wrwurgwrgwgwwuurgrgggguwbgrwuwbwbwrgbbbbguugbbrbrruguwgww
|
||||||
|
ubwwbugbwwwrrgrbuwbbwuwubbggruuwrbugruwbrbbbubrw
|
||||||
|
rrbrgggubrbwrrwrwbuubugrwbgwrurbugubwbrubwrbrrbwwbr
|
||||||
|
ubwbgbgubwgrbgubrbrgurrgrwbgrgrgwrugbwuuwgwuguwwugwgwururg
|
||||||
|
gwwugugbgwbgggwggwwuubwwurwbbbrggbuuwgbrrggwbwwbbbgru
|
||||||
|
bgwgbbuuwbrrgrbbuwwwwrwugggrgwrgbubrgbwgrgwgruwuuubgrw
|
||||||
|
gruurgugwubuwbbbrbgrgwbgrgggrrbuwrbuwbruwwwurbbr
|
||||||
|
rgrwuwbwbruwwrrwbgwwrubuwrrwrrbbrrugrubbrgbwwurbrwwgww
|
||||||
|
bggwwrrurwugurgrwwwbrrggrrwgwgwgrbuuubuguw
|
||||||
|
bbgbuugrgwruwgwubbrbuurbruwwwgwbrugrgurwbgwugwwbrb
|
||||||
|
urbbggbrurrrrbrbbuuugwgggbggwugggbwwbrgbbrubw
|
||||||
|
bgguuwrgrwurgbwwubwrggbbggrbrrurwbgwrgguubgurrggrgwbggbg
|
||||||
|
rgbuwrurggubbugwbubrrgwbbbrubuugubbguwurwguuuugbu
|
||||||
|
urwuwbbgrgbwggbrbbbbbrggbwwwgrurguwrgubrgwrbwbgwwwgww
|
||||||
|
bubugwgbwwuwwurrrbububwuwbgbbggwubrbbuwugrwuburgrwgbugwr
|
||||||
|
brwbubwurgwbggguuwurrbugurrugwrbbbwggbgww
|
||||||
|
ruguwbrrrbgbwwuuwwbgrwwugrrbuubgrwburwuggubr
|
||||||
|
rrbugrbrrgwruugrgbrbuggbruguwbwrubbruubrrrgbgrgwgbgbb
|
||||||
|
bugggurrrrrgbuwbggbwgrgrrbwrgrgrgubuwwurbbwrggrwruwg
|
||||||
|
rwrggruurbwguuguwbbrwwgrruguuwrrugbbggwgbbuububur
|
||||||
|
brbggbwwgwbbruubuguguwbruurugwrrgbgbwwgubguwrwuru
|
||||||
|
wgwurwruruburruwwwgbgbbwuuwbwgurrgwurwbbwrrwwu
|
||||||
|
ggubruuuubggrgugubugrgguwwgguwwwuruuggubbuwrru
|
||||||
|
bbbggwrbbgrwuwwbggwrbwbrwrguwgggbwbbrgbuwrrb
|
||||||
|
wrbbgwgugrggbrwwwbguurwrgbrrwbguuugwrbwubbgwwubrr
|
||||||
|
bbgbuwurgbgrrwbuurwbgburgwwbbubwggubrburbrbgwrrbwrbuwgug
|
||||||
|
ruuwrguruburruwwrugbwwrubgrgrruwruurwwwgrgrurr
|
||||||
|
rbwwwwubwrwrurbrrwuwwbgruuurbwbrwgbrbubgwuubwurgww
|
||||||
|
ugrbgubuuwwwrbggrrwbbuubwgwbgwrubwgubwubuwubgwuubwruwu
|
||||||
|
wwwwbbrgbwgrugrgwrgurwwuruubrubgwugwwggrrgg
|
||||||
|
wbwbwbrwuugburwrgbrbrbwgbwbgwwuruurwbrbgwuuwbr
|
||||||
|
uubuurwgbrubbbwbgrrrrwuuwgwggwgwwuggggbuurgguuwgw
|
||||||
|
bbbrbgburggubrgruggggubbbubugbbrgrguurwbugb
|
||||||
|
urrrwbgrburwuwuguwbrubwgbrgrwgrbrbuwggurgguwrgrugurbwgww
|
||||||
|
wuggrrwguwwuruugrrbwwgugurburgugurwgrbwbuuwwrubgwgbwuwu
|
||||||
|
brrrgbrrrwbrwrbgggbbgwgugwruwrwgbbrwwbwrrbgbburgww
|
||||||
|
wbuuwgbguurgbwuuruwbgbwuuuuwbuggbwwurbwubgwb
|
||||||
|
uggrrrgwbrgruwrwgugbggwgrwrbubburugbwuuwrwbgugwwbwrguwrwrgww
|
||||||
|
gbwrrbuguwwwubuuguruurbbwbwbbuugwurwwgbuurbbwugrubrbubbgww
|
||||||
|
bgrrwruwrwbbwgwuwruwwgbbrwgburbrrrrwwwuwrbgrrbrwuubgww
|
||||||
|
ubgrgwrgurbgwgwwugbbbrrwgwruuurrwbubwwugurgwggg
|
||||||
|
grubgrbgwrbbbbbubuwwrwrurrbbrrbububwwwwuuub
|
||||||
|
rbwrburbgbrbrgwwuwwbgubrrguurwugbugbuggubrwwururrburgurgb
|
||||||
|
wrwgurbrwgwgwrwugrgugrwbgbguugbbuwrwrrbwggbbgrgwuu
|
||||||
|
guggwgbgwurbbrrwrwwggrwwgrbubgurgwwwgrgbwwbrwwuwwwrruurr
|
||||||
|
grwubwrrubwwgwbrgbrwwwgbbbgwurrbbrrgurwwuwwubwbgubuubugrrgww
|
||||||
|
urgggugwgwurwwbgbbrwbuggwrggbbbbbwuggbrbrruu
|
||||||
|
rbuuwwwurugubgbgubggbwbwrrrbbbggbgwggggguwwrrrwwr
|
||||||
|
gbwrubwgwrbwwbguwuwbwbgurgbruwrwbrwwrbrggurwuwb
|
||||||
|
uggggwrurguggrbgbgrrurubwggrbgrggwrubbwwbbrbwrgwgbuwrbw
|
||||||
|
ubrwurwuuguuggugrggwwwurgwrgbbubrugbwrrwuguuwruguwbgbr
|
||||||
|
uruwbwuwbggwgwrwugubrwgbbbbuuggrbbrrwrgww
|
||||||
|
wbrrrugbruuwgrrwbbwwbrwugwgbbrwrubwuggbwburgwuwwbrubwubwrgww
|
||||||
|
gbubgrrrbwbgrbgrubrrwugwugubwurwbbrgwrugwgrbrgbrrb
|
||||||
|
ubrgbuwwwgrgwbuggrrbuwwwgbwbwwrwgugrrrgrwguruggbbbrrugwuuu
|
||||||
|
rgrbbwbuwrrubgbbgurbbuuuggrgwrrrrbwgwbwurggwruwgbrbggru
|
||||||
|
grrbuwwuwwruurruuurwguurubwbrrbuwrwguwuwwrwbwbbgbwugbgww
|
||||||
|
wrubgbugbgbubgguggugbuburwgbggggrwgguuuwwb
|
||||||
|
rubwbbgrrwwbbgurbguugrwgrwgwrbugbguwbgrgrgrwwgurg
|
||||||
|
ugrgrurgggbgbgbruwuruwbuubrbggggbbbugrurwgrubwur
|
||||||
|
grbubbubgwgrggrbggwrbuwbwbuurbrgrwrbubwguwubbwuggr
|
||||||
|
buwgurrugbbgwwgggbgwrbrwbugrgwgwbwgwuwgrbuwgwurrwwbguruwr
|
||||||
|
wrrugbgwuwwwubwwgrugbbgwggrgbbwgwwbuuruuuuubguwrgww
|
||||||
|
urubbbrrwgugrgurgwuurubrbbgbwbrrrrbbwbrrbwrwuugbbbrgww
|
||||||
|
gwrwbugrbggubrrbgwggugggrwgubuuwrwwbrgrbgrgurbbwurrggrurb
|
||||||
|
wgbrwwuwwwruuubgrguugrwuwurbrggurbrbgwwbbg
|
||||||
|
wgbuwubuwwuwwwrbburuwggwgbbwwuuwwrwubrrwubwbbbuu
|
||||||
|
wurbggguurgwwwrubbrwgubruguugubrrbggwwurbu
|
||||||
|
ubrrwwuuruwwgbruruuuuwgbgrrgwubbggugbgbwwbu
|
||||||
|
wubbbwwbubwggburuugruwwuwbrggrubgwrrbuwgww
|
||||||
|
wrwggrruwugrguuwggbuwwgrwuubbwbwubrgubgggrbwb
|
||||||
|
rgbbwrbbrwrwgrrrwubwugrgrwwbrwrwuuwubwbgrgrbbbw
|
||||||
|
bgwbuugbwuwbuuwugrurwrbbgrwbbgurwuuurbuwbwrr
|
||||||
|
buurguuwgrrwgugwgbwgwgbrwwwurrgrbrrwgbbbgruruurbbw
|
||||||
|
gurwubgrguurrrggugruurggurggwurwbgrwggwwbgww
|
||||||
|
rwwbgbggrrgwwwbuwgrbuubrgbbugbuwugrbuwbbwgbbrbuwg
|
||||||
|
ggrgrbruwrgwwgbgrggwwbuwwuugbwgugguwrrbbbgbgrbuguu
|
||||||
|
urugrwbuwgbrrrwgrbbwwwubwrrubbbrgwrbwuuwugbur
|
||||||
|
bbuggbbuwguububruwurwurbgrbuubugbbugwbwrrwrrubw
|
||||||
|
ubgrbggrbubuwwbguguurgbwguwwbugwgwwbrwbggwguugwbr
|
||||||
|
ubbbubgrgggbwwwgbbuwbwwwurgrgbrrrbbbubrrbbrwwgbbbgwu
|
||||||
|
uurrwuubwbbuwrrugbgbwwbgwugubwuugwggwgggwrguggruwggrgbwwwr
|
||||||
|
brwbwubruurbugubuwbwrggbgbugrgwuubbwbgwbuwggubrwwgub
|
||||||
|
ugbugrururugrgwubbgwbrwwrwbwggubuuburwurugrgr
|
||||||
|
uwubgwrgwrugububrgrugbgrgugwwggwbgrurbuuuugubww
|
||||||
|
bugwwubuwubwgbbrrwrwwuwugwbbbgwrwwgburbbrubw
|
||||||
|
wburggbbuguwuuwwuuuwbgrggbuggurwbuwuurrwwww
|
||||||
|
guwwubrbrwrwuubuwuuwrrwuwbgbubbgbgbggbbbgurbwrrurgww
|
||||||
|
gwwwrgrwwbgrwrbuurgggrubuguguwwbbgrwggwrbgbggbubrwwwwwr
|
||||||
|
wbubrgwrrgbbbbwurwububuurgbrwggwuwbgugurwwbb
|
||||||
|
rgrurgugurrrgrrrbgurguuguwburrubgrrbwugbrrubuwbgww
|
||||||
|
rruwwuugbgwwrruwuwrubwuggwrwrrrwwgwgwuwbbrrr
|
||||||
|
guwubbguggubuwgwuwbggubrwgwgbwwgwrwgubbwrrggbuggruuruwgww
|
||||||
|
uggbubwbbrrbrrwrgbwrwbgwguurrrggwwgrggrbgurugb
|
||||||
|
uwurbwwbrbrwbbuuuuwrgwgwrbgguwbrgwburbugwrrgggbrw
|
||||||
|
wwbuwwrrrwrgrgbgurggguubburrruuggbrgwbgwbbuuguwbr
|
||||||
|
gwbwwuwbbrgrbgrwwbugwwbubwwbwuwuwurwuurwubrggggu
|
||||||
|
wrrwwguugugwwwwgburgwwgbgrruubuwuuwwgrwbur
|
||||||
|
wrbwbrrwrbbwwrgrugbwbrugrguwuuuwgubwgrgggwwbg
|
||||||
|
gbbrgrgwurubwwwburbggwwggrgrbgubgwwbuwruwwb
|
||||||
|
uwgrguuwggggwgwuubbuwrbbwwbwrguubgbuuubwwwwrugrurgbwg
|
||||||
|
wuugbbbuguuuubguuwwgrrrrwgggbuwrwuruggrwrgu
|
||||||
|
rgwrbwgwrrgguwgwrguugbgwgrrubrwurwbrgbuggwuwr
|
||||||
|
rgbuwrrrbwuwggrbuwwruwwurrwuubwguubgrgrrrurrgrruggrr
|
||||||
|
gbwugrurrbbubuurrurgrggbrbwubruguburguurrwgww
|
||||||
|
ubgwwwwgwgwguuwbgggrbggwbrgbuwruwwgggwgubrrgwguuwugggwggrgww
|
||||||
|
brrbrrbrgurwbgubgbruuurgrwbrgbbbrgruwbuwbrrg
|
||||||
|
gugwuuwbrwwuubugburbuggbrwgrrrwgrrbgrurrug
|
||||||
|
rggbbwbbubbwgwrbrbwwbrbuuuurwubuguwwgrrwgrrwrurbrwwbrbw
|
||||||
|
wugrrggurbburuwwrgrgwrgrbbwwuwgubgggggrgww
|
||||||
|
urbrubuwgwubrwwbggguguwrgrurgbrrgbbuuuuruggrurwgrbubggwgww
|
||||||
|
wgggwwrbbrrgugwwwburruwrrbuwrwruugggrurrbrrbgururg
|
||||||
|
grgwggwgubuubwbwbburrwwgbburbgburubwwrbwbrgrw
|
||||||
|
rbrbubggbbwwwwwbgbbuurbbrgugrgurgbwgwgugurruubbburggbgr
|
||||||
|
uwuwwbubwbgwrwwubwuugrbwugwgurgbwgbubrrwbbbwbwbbrwgrrrubb
|
||||||
|
bubuwgggbwurbwrrwguubrbbguggbrugwwbbgrgwgurbuggbbbwu
|
||||||
|
guguuubwgubbrwbuuugbubggbbbwrrgrrwuuwwbbbwbubbwur
|
||||||
|
ruwgugwbrbrwuwwgwuwubuwubwwuuwrggrgrruubwwgww
|
||||||
|
uwgrbwuguwwrgugwgbgbgrwbrrwguubwugbwbubbugbwg
|
||||||
|
wrwruruwbuwrrbbuuuuggbbgugwrwgbguubguwrwuwbruugwbrggrrbgww
|
||||||
|
uubwwgwrbgwbwuwgbuwuuwguwrwurwwgwgruuubgrurubguwurbbuwb
|
||||||
|
bruuburbubrbrgggrrgwuuuburbrrruugbrurwurubgww
|
||||||
|
ubrwwrrbbgrburbuubgwbbwbgwrubgbwbugbbbrugrrrgbbubugbubgww
|
||||||
|
ugggwwgbwgbbbwgrrbruwgrrgbgrgrggwubwuwugwgwubggb
|
||||||
|
ggwrwuububwgugbgrwrwwurwrgwbbbbwwwwubgww
|
||||||
|
wwggbwgwbuwwwbbwwwwubrurbrgugrgggbbwgwubugbrrrgguguuwb
|
||||||
|
bwurwugbwgbubgbuugrwbrgbwwuwgburubgwrbguwrrwuubuugwwwwbg
|
||||||
|
guwbgbwgurgugrrubgrbbbrgwwwbruwgbrwbwuguuubb
|
||||||
|
wuubbrgggrggbuugrguuwrgrubgggwugruubguuwbgbuwwruruwguggwrw
|
||||||
|
urbrrwuuuuburwwwgrgurbwwwwbbwwwuwubugwuwggrb
|
||||||
|
grgrgwwuuwwrwwrwurubburuuwrgwruuwuuwwwrwrrgbgrbwurugrrgrgww
|
||||||
|
uuwurggbggbuurbburgwwubgwbbgwrbwwuwwgurggguuubwg
|
||||||
|
uubbbrggwggwrbrbbrwrgwgrbbugwuurbbgrwruwrwguwrwubwbbrrgww
|
||||||
|
wbwbugbrbbwuburgurwgrbbguwurwwwguwurwbrurbggwgbbrgr
|
||||||
|
ubwgbgbgrbwburwgrwurwbgbgrgbrwrguwruwgguwwgwbwbgrubg
|
||||||
|
wruububwggruggbggbwggrrwuuubguuwwwgwwurubrgrwbrgww
|
||||||
|
brbgruwgwuuuwwgrwguurruwurbubgwgbwbuwugrgrbuuuwwgbwbwgwwr
|
||||||
|
gggugwbwbggbuurggbwbgbbwrugbrbwrgurbrrubrgwu
|
||||||
|
grgggbrruwgwurwgwrruwgrrwuurrggrrwugugbwugwurrbu
|
||||||
|
brubugubruwbwrwguwrurggrbgguurrwrbwwrwrwbrbrugwgurbgguwuww
|
||||||
|
wgwubuwgwubwubgugwbwurbgwbuwugbbubuguuugugugrubwuggrrgrbgu
|
||||||
|
wwgbrbggugugwwgrbgbwwrwrrruwuugrbugrrrbggwgwuwwwg
|
||||||
|
grwbbguugugrgggwrwuwbwwugurbwbgrbwbgubgwgwugrguw
|
||||||
|
urgrurbbubgrwruwrguugrrwrbrggwwbruwbbwbuuggwrwgugwgww
|
||||||
|
uwuubrbuugwwbgrgbbgubrbrrgbbguugubrrrgwrbbrg
|
||||||
|
urgggbuwbbbwgbrguuwrgbwbwbgrwburuwuwguurbgbbur
|
||||||
|
brbbuuggbwugrgbruuwgrurrbrbugwubwrrwgubgbubgrwbgwrurwurg
|
||||||
|
bwwgrubwgwgrwuruguubwbwrguwwwggbrubbwubrruggg
|
||||||
|
uwgrgrrrggurggrrrrgbgbbbgubbbrgrubuwrrwgrrrrrwgrbwwuruggb
|
||||||
|
gbruuwwubrurugbwrruwbrbbgwgrrgubrrbrurrwbr
|
||||||
|
wrwbubuwbruwgrwgbugwrburrrrrrwwrgrurugrurwrrbrbgwb
|
||||||
|
wbgrwgwrgrgwwwrbrrugbwwgggruruwrgwbwrwbubwgbrrbgru
|
||||||
|
wrbbubgrgwrwwggrwgrbbuuwbwbuggrwurbbrgwwbbbrbgrbguub
|
||||||
|
gbrurwrrbbgbgugbuwrgubggrurwrwrrrgwgwwwuuuwruuwgww
|
||||||
|
bbwuwgbrgurwuwbbwrwuwrwbbubrgurwbrrwuwbbwrgwbwbggrgrwu
|
||||||
|
wggggwbgggwgbwurrgbbwbwrgwuurgurrububgbbbbrgrwruw
|
||||||
|
rgrugbubugwrwrburrwgrrrrrgwububwrruuuugbgwbwwbbgrr
|
||||||
|
wgrruwwugwuruwwbrwruruuwgwbbgrgurgubgrgugwuwbwuburrwrbubwu
|
||||||
|
wuwbbubrgugbgbuggwgurubggrrwrwrwgugurrwrbgubugw
|
||||||
|
rbbrruuurgwrugwubbrrrbwwrwrbgwgwubuurwgrbgrgrbbruwrgwgb
|
||||||
|
wwuwrugugbwrgbwgbgbuwrggruuubgurrubuwrurwwgww
|
||||||
|
brurbgggwrgwurrgwrbggrrbbbwbgbrgbwbuwugwbbgwbwgww
|
||||||
|
wbgbggguwwbuggubuuwurugubrbwrbwurugbrrubrrbwbbbwgu
|
||||||
|
wbgwuurwgubrrgrgbuuuwrrrggrggurwurwrrwrggrrbbr
|
||||||
|
wuwgguuggrgwuwwbgrbwwrbuwrbwbguuwubwggbubgww
|
||||||
|
guwrwrurgwrgguurrrbugwgurwrbwwubgggbugwgww
|
||||||
|
grrrbgbugwwggwugbbrrwurwgrrurbuubrbbbwgburgurbwgwwrbgwubgww
|
||||||
|
ugrrugwbrwbguwbbgrgbugwurgrwbrrbububgrbwgguuwgbuurbb
|
||||||
|
wgugrruugbgbwbrrwgbgwurbwwgwwwggrguubuwgburugugbbbubuuubrw
|
||||||
|
grbbbubgrgwuuwruwwuwgugrwugrwbwguuggwguugggwuwubrwbbgubgww
|
||||||
|
wbubuggwbwguwubbrubrgrwgwugurbuwguuuwbruuuuurbburugw
|
||||||
|
rugwgrbbgurbuuubgwwwgrgbgggggbwrbwgrwurrrugrwugrubrgbrgww
|
||||||
|
burbwuguguubrugwrrwurrwbggruuwwuwubgbrgww
|
||||||
|
urubuugrrbrwwbbrrrbbgrgbgwgrubrgwurbuugwuburrgbubb
|
||||||
|
bbrgrgugrbgbrrububurwrguwbgrbbbrbgbuuugugbwrubrrg
|
||||||
|
bbrwrburuwgrugrrwuwbuugwwbgurrwbrgruurbbgwb
|
||||||
|
wbgwwgubgrrbwbwbbwuwubgbggggububwuuwwururrgrw
|
||||||
|
rguurbrguwrrbbwurwgubuwgwguwrggwwuubbwrgwrrurwugguw
|
||||||
|
gbgbrubuugwuuwbwubrgggwgbwwgwbrrguurwuwuubwwuuwuuuwwrwgbuw
|
||||||
|
uburuurwbrrgurbbwrwuwwwgwgubgbuwuurguwbgwggurbbbbwgww
|
||||||
|
wurrugwbbrruwrbbrbgguuwubburgburrrrbugbbrrrwbrbrgwuu
|
||||||
|
rbwbbuwbwrbrwubgrgugbrbrbgubbgbgwwbuuwbbrgrwggbwu
|
||||||
|
wruuurburwgwwubrwuwrgurrbbrwwwwwbrwwwbbbrggbbubbugbuwbgww
|
||||||
|
ggugwwwbubbwurgurbugrubggggrrugubrwwggrgrbbgbububbwwwg
|
||||||
|
rwbbugbggbgrwgbbwrwwbgrwwwrugbuwuubuuuuwurrruwwwwggwrwuuu
|
||||||
|
wubbuurgrgbwgruubgbugugrwurbrgburubgugrwwrgbubbgww
|
||||||
|
wuuruuwubwguuugrwwrbrrgbrbwbrwgwubuwrrwubuguurwwrwgww
|
||||||
|
rgugbwrgubbgrbrbuwwubgrbbrububruwrbbuggbruububrubgugrw
|
||||||
|
gwuuuwurgbrgwrgguwwgugbbgurrbbbgwrgrggwguwu
|
||||||
|
wwuubrwwrwrbrugbwrbwuruwbrwrugwbbuuwrrrubuugrrwrwwgww
|
||||||
|
bgwgurwgwbbbgrwbbwwgbbgwuwuuuwwrgbubwgubbrgrbrwbgrgww
|
||||||
|
ubggbwrbwbwwbrbbbrwgbgrbrwbbbgwgrrwrrwgww
|
||||||
|
rwubrubgrrrbgwggwwbrugrubuuwbrrbggbuuurgwggwrbwgwuwugrbrb
|
||||||
|
buurgguruuwuubggwrrruuwbbuggrbururrbubrbrbgubrwbbgrrgbu
|
||||||
|
guugubwwbwgugwbrggbbgurgrwwrguwrrurgububbbrbguu
|
||||||
|
rburuwbbugbubbgurrbguwbgrgwbgwbrbwwgbrrugbugruggrgbu
|
||||||
|
bgwubburubruubguugbrgwgbbrrgrrurgrwubuubbrurrrw
|
||||||
|
rugurggbgbgbbbbrwubwgbguwrwgwgwgubwgrggubrrbb
|
||||||
|
wwwrwbrwuguuubrbbubuguwuugggrrgwggbbrrwbbgww
|
||||||
|
uugwuwugwuuugrwuwbwrubugbbrwgrrwwugbrwrrurrurwgrwurururgw
|
||||||
|
rggbgrgrburwurggwwbwwwwugbgbgwwrwgubwbwuwwrgbrw
|
||||||
|
rrgburrgubrbgubbgbgrurburbwuurrgwuururwgbuwrurruwbururu
|
||||||
|
bburburrurwbrwwbwggggrgwugrwrbgggburubgrwbgwwwwwuwrrrbb
|
||||||
|
gwrgrrwwuwbbrubbbwububwbbwwbguuurgwbururwgbgww
|
||||||
|
urgwrwrgbwuwguuurugwrbgbrgurbuwwwbwgwgrwrbwrguu
|
||||||
|
gubgbbbrbwbwwrbbgbrrwrbuggugwbuwbuubbubrwwwbbwbgg
|
||||||
|
rgrwrgrurbuugrrwrrgrrgbbwgwubrgbgbbgugbrubwbw
|
||||||
|
brbbwwgrrbuwubwrbrwbuwwrrgrrwbbwururgguwuubwrggbruuubbb
|
||||||
|
urrwrgbrugrbbbwrrggwugbgggbgbrbrggrugwbrruubruwbbb
|
||||||
|
bbbgwuruggbwrbrbwbrrbgwgwwbbgurguurbrgrrugwuguugwurbuurrg
|
||||||
|
brwgggguwwrgrgugwgrbwguwrggwuuwbguuubrburuu
|
||||||
|
gbgrrurbrrubwwrwggrrbbbugggbrwbwbwwubbubruuwgur
|
||||||
|
rwbrwgbwrurgurwwbburrbuburrbuubrwgwwggww
|
||||||
|
rgbwwbrbrubrurrguwguuwrbbgruugggbgugggubgbwuwu
|
||||||
|
uwubbbwuwbgbuubbwubbrrrubwurwgbgwurrrgrwwwugggbgww
|
||||||
|
ggrwwuurwgwruuuurgugurrwwrgwgubrrgugrbgww
|
||||||
|
wurbwbgwrwrrwubuuguwurgwgrgwguwwuuggwbuggrbwgww
|
||||||
|
rgwwgbwurbrrwrwwuugwwbwwwubbbgrugrubwgguwgwbur
|
||||||
|
rgbgurubuguwburuuuggbburuuurwugbgrbwwuurwwgurggbrrgurrruw
|
||||||
|
uuurgwububbruwwuwwbggugrwrbrwgggwugwbguggrbbgrrrbr
|
||||||
|
bggwgwuuurwuwuwgrwwuwrgwwuwrguwggwuwwrwbbugwbrggbrwgww
|
||||||
|
rbrbbbrrrgwrggbbruwuwurrwurwwwguburwgguwbgwgww
|
||||||
|
urggwgbubuuubugrbrrubwrbgbbbugwrbguugggrwgwubgwbwg
|
||||||
|
ugwbgbgurbgwbgrwrrbwrrbgbwbgurrrubwgbuwwbgwu
|
||||||
|
bgggrgbrwrruwbgbgwbrwggggrrrugbuugubbrwubbwbburbgrur
|
||||||
|
ggbgwgwuuwurwrrwrwbrwgwrurbrubwbbgrrbgggwgg
|
||||||
|
bwggugbwwruwbrbwrrwrbwbuwwbuburwwrrbwwuguuugw
|
||||||
|
rwbuuwuwburbgbuwbwwrbwgwgrgurbwuurrbrrgbbwrruwgrgburbgww
|
||||||
|
gwuwuurwwrbggguwruguwbbwugrrgurruwbuguwugbrwgrgrgrbbrwrbb
|
||||||
|
brrgwurbuwrugubwgurbwubburbwggrburrbbwgwbgu
|
||||||
|
uwgwrrugwwurburbgbrbuubgugrwurrubrwbbbgbbugwbububuwb
|
||||||
|
wbgurrrurubggrurgbbwrbbbbwwurwuwwggrwwrbbrbbuuwgwbwr
|
||||||
|
rgrbwgrburwwwurgguwubrgbbuwrwubggwwgwgrbwgwugbwww
|
||||||
|
wuurgwgrugrurwgurbrgguugubrbwugrwgwbugggbwgbbgwbrrbbbgr
|
||||||
|
brbuwuurwwgwrgwrwwgburrurgwrurwrrbwgrbbwubbgwrugbrubgww
|
||||||
|
rrggwwgbwbuubuwuguwugwguwuggwruwugbrgbrgrrgwgww
|
||||||
|
wwgguggwgbrbrruwbubwgugwggwwwrggrggbubbugbruw
|
||||||
|
ggubrwuwubgrgwrbbwbbubbuwgwugggggrrgugbbggbgwurbwrwwgww
|
||||||
|
rwwrwwwwrubwuurwugrwubrbubwuubuuggrgrwuubrgubgbuuwgbugwgg
|
||||||
|
rwrbburrwrwruubrbbbbwgurwrgggwwuwrbgwgrgrgwwbgww
|
||||||
|
rrgrbuwururuwbruburburguruggbugurgrrrgbbbugwgbuugurwwu
|
||||||
|
uuuwgrbuwbrwwurgwrrurwurbbbuggrwruubgbbrubgrurwguuubgr
|
||||||
|
ubrrgwbrgggbwbuguwubgggurwugugugbbrruwbgbwwrururgggbggwub
|
||||||
|
gubwugrrgggggbwgrwruwrrgbwwuuwgwgbubrwgrrrgwwwww
|
||||||
|
rbrwrwruuwwgbgubgwrgwuuwbuurgurggwbbwrguugrbrwrbrgugwrwgww
|
||||||
|
bgwbrwbwruruwggubuuubububbbbrggubwuwbgugrbrburgwwbwwwww
|
||||||
|
ruubuwrwuubrbrrruwuuwruwwgggbrugrbrrwgwwgugrgrbuwbg
|
||||||
|
rwwbbuubwwgguuubbwrgrbwwbrwwbbwwwbgbwbgwwbrrbww
|
||||||
|
rbwrgwwwgwbbgwbwugrbrwwbgugbwubwbuurggbugguuugwg
|
||||||
|
rrbbuugggwurwwugubburubbbbuggwwgburgwwubbrgww
|
||||||
|
gggguwrguuwbwbrwwbbuwurgggggubrgbgbbrgrbrrrbbubgg
|
||||||
|
ggwubgwuwwgrbggbwgwrwbuguuwbubrrgwubwwbuwuuw
|
||||||
|
rbugbrwuwwbguuwbwggrwrrrgwurbbbuwgugrubgrurbr
|
||||||
|
rwbrugguuuruguubggggbuurburwwrwgwwbwrggbgugbwbgrbu
|
||||||
|
rbrgwubguwuwbubruuwugubrgbwrugbwrgwrruwrrgw
|
||||||
|
buugurrbuuuwgwwggruuuuwwrbbuugwbgwbrbuuggwwgww
|
||||||
|
ugubururrwbugrbuuruwgwbwbuubguwwgbwrwgggggwgggub
|
||||||
|
wugruubwwgrubwguwrgrwbubwbruwwbrgubugbrugurrggwgugbgww
|
||||||
|
rbwgbuwgwrbugubwrgrbbuurwuurbgwgrwguwgwurwrgbrgwgrbwbrurw
|
||||||
|
rruuwguuwurwuwggrbwwuurgrgbbruwwuwwrrwbugub
|
||||||
|
bggbbubuggguwwugggwrgrgggbwwgwrwuburuguwbgrbu
|
||||||
|
bguwgrrwgbggwguwggwwbwrggbugrubwwurrbrwwbuuwrurrrwrw
|
||||||
|
burwwrguwrbrurgruwbwuwwuurwbbrruguguwbwbgrbwbuug
|
||||||
|
wruugrgwbrgubbbbuuuwrgrgburgrgbwgbrugwrwrrrbrurwbg
|
||||||
|
wrbuuwruguurgwbbrgwubbgwwuwrgbbrgwrbubggbwwgub
|
||||||
|
rgrbwwurrwgwgwrrubwugwgwbgrggbrbrbbubwwgbbbuguubwu
|
||||||
|
wwrgbgguwbgbururwwbrwwuwuwuuuurbbgwgggbwbbwubrrrggubwg
|
||||||
|
rbuwgrbubrruguwuggrbuwuuwruuurruuwrrubgbwgg
|
||||||
|
ubbrwuubgrugrguguggrubrgurrrggubruuwbgwgrrburwggbwrrbgbwrgww
|
||||||
|
wwrwrgggurbrwrwbbrbuguwbubgwgruguwgrrgubgggrgwubrgww
|
||||||
|
grwrwubgwuwwgwwwgbrburrgggbbwrwugwwrgubrbrubbggugurg
|
||||||
|
ugrgwggbrwrbbgrbrbuwgbgwrgbrgwwbruuguubwrbubrurwruubwwurwgww
|
||||||
|
rrrrubgwwrwurgbuurrrbrrrbbruwwwwbgurwbugbbrrrbgww
|
||||||
|
wgbuuugggburbwwggwbgugruggwbgbwugruwuwwwwgrwgbwuwr
|
||||||
|
bububuubwgrrwrwrgubruwubbuubwrguggwugbgbgwgww
|
||||||
|
rbgrbbugugwwwwubuugbwrruwbbubwbwwggugrbwgw
|
||||||
|
rguggbwgbuubwbgbuwgbbrbwwurugbbuwwrwgrwuwgbbwguruwrb
|
||||||
|
wbugurbbgwrrbuguggugwgwbwgwrburbwrugbrbrrwwbrrgwwgww
|
||||||
|
bgbrwgbrrggwwwgwrbrbggwurrurbubwrrwgbrwgwugubburbgugbbr
|
||||||
|
bbwrurbwbwugubwgrbbgbbwwbgrbgbwwbggwbruwbgrubbwrww
|
||||||
|
uwurbrwwrruwgwrguwuwuubgwrgbbwgruwggrrgwrwwbbrbgbgbguwrbgr
|
||||||
|
rggrbwrrrbgrbggguwuugbuubruwugbrrugwuuugwubb
|
||||||
|
uugbwbbgwrbbggurgbbbbgwrrwbruurgwgwgbwuubgguuubrwgww
|
||||||
|
gbwbbgrwwgugurgrggrbwwbwwrwgbbggwrbgwwgww
|
||||||
|
wuurbgwgrwbrwwgwwbgbggggrubruuubgbbbruubrwgguurbgww
|
||||||
|
ubburbgurgguuwbruuurwwgburrrbwuwbgruwuburwbwbwrgbrbgww
|
||||||
|
wbrbwgubuwubrrbugbuwrbbwrwbwwrrbwuruuwbuwbwrwburrrb
|
||||||
|
ugguuurburwubugrggburuwuuggwwbbwbrurwuuwbwbbgubw
|
||||||
|
wrbugwggrbwgrrgbwggubgruwgggwggrrgrwwgrgwugbbuw
|
||||||
|
rgbubwuugrwuwuwwrwurgrrubgrbbbbruuwgwuubrgr
|
||||||
|
wwgrwuuwrbrwwbuuuurrruruuuurugrbrwwwrguwrwuggwuwwwburgwbb
|
||||||
|
gwrrggbbggurwubggrurgwwwububggbguurbwwbgurwgrgww
|
||||||
|
uwuurbbbuguubwuggrbwrububgwbgrrbrwbbgugrrwbrwrbrrrrwg
|
||||||
|
guubggrguguwgbwrugurbrugruwrwbgbrwrgwwgurbruguubrbubr
|
||||||
|
wgwbbrggbbggrbwbguubrgguwgwrbbgrruwbrrbbwgggugrgrgr
|
||||||
|
wrgbrrrgwwbbrrgrgurrwbrgrggbrrgwbugrugbrwwbuwgww
|
||||||
|
rbrggrrwgugubrrbrbbgwurbbrgwgubrrwwrwwurrurbwwgbu
|
||||||
402
19/input.txt
Normal file
402
19/input.txt
Normal file
@@ -0,0 +1,402 @@
|
|||||||
|
wrgrwbug, uurb, rbubr, buggb, uuwwwrb, gg, wgburr, ubg, wrbuw, grrr, rur, ggb, bur, guwggg, rwbr, grurb, bgurguw, ruub, uguugg, bwr, brggb, rwuu, rrgbuw, bgub, wbbb, rgg, ubrgb, wbrgw, rgwwuww, b, buw, grb, rww, grurw, ggwb, rbw, brbw, gb, gwwr, bugwrg, uwbww, ggu, bbbbbbur, gu, ruurw, uwr, gbur, gbgbu, wrwru, urrr, bruu, wbbgrg, gwrwr, brru, buub, wrbb, wrb, urugbur, bgwwr, bwubb, wrbbbbbb, gggbgur, www, rbuuggr, rrruwguu, wgr, r, ggw, wb, gbgr, bwbu, wgwuugug, uuug, grgw, gbbuwrb, ug, gub, wbrbug, wrrgrr, rbuu, rrg, brbu, ugwu, bguw, guww, ugw, wwg, ugrb, ggrw, uug, uww, bbw, bwrw, urr, bwbuw, rbugr, uubbwu, rru, rbb, wbb, wguu, urb, rwbrubb, rrgru, ugg, rgw, gwbb, rbrr, gbwg, wgrb, wbbbbbug, u, bru, uububwwr, wburugg, wrgugg, urgu, uuuwg, grbuwwb, brg, grwubr, wbrww, bugu, wgwrbwu, urrbr, w, wubwu, gbgugw, ggrbwr, ugurrr, ubrgu, bggrb, gugwb, rw, uuwg, wguw, wuru, rugu, ubgru, bgubr, urww, buggg, wwb, gwbu, rgbbbb, burrw, ugbuwr, uwbw, bug, urbwgwbu, gubwuur, wbgrbb, wub, bb, ugbgwr, gwbww, gggbw, bggg, gbwbur, wggg, ruuug, grw, rwg, wguwbr, rggr, wugw, rbwb, ru, wrbur, gug, rbru, buuubwb, gbwgug, ggubu, buwbwr, gru, wuw, wbg, wbr, ubgw, brwugb, rbwugr, rb, wbur, rr, wbwubuwr, wuggrb, bww, ruw, rbu, wrbrr, ubwrrwbb, guu, brb, rgrr, wgg, bgr, ggruug, bgug, ugwug, rwrrb, grbg, bbr, ugrbbrgr, gwbg, wbwgw, wbbrrb, wwgw, rwrg, wrrugr, wg, rgrwwbg, guw, urg, uugbg, wwbw, ubr, rurb, gugg, wgu, rguug, rwb, wrr, ggbwuu, gw, uuwrwu, gbbugr, rwwrwubr, uwwwgg, uur, uuu, wug, gwrrg, gwu, gwurg, bwrugr, bgb, grr, wuuug, bgw, ubwr, bwbugb, rgwrwg, wruwgru, bbu, ugbuwgu, rbr, ugrw, bugub, rwuuw, grbbuwgr, wbu, gwb, guwwurwr, gbbub, wbrg, bgrbw, urggurw, ruu, wuu, wruu, gbwb, bgwug, rurr, ubuwgw, bwugggb, gurgb, rbbwrgru, bbrb, bubu, bbur, rgb, rbrwr, bbb, bwugr, ggr, wwub, ugrwbrw, rugg, rrrwu, wbgrr, wuwrr, rgu, gbb, bwuw, wbuwrrgb, bwwrgu, ururwubr, rrbwwuw, rwrwb, bwruub, wgrrg, brr, ur, uw, bbg, wbwwr, brur, wruwbb, wwr, wwu, uuwb, ggurb, uub, rrb, rbwr, rbbbb, rg, rgubbb, ubbgruwr, wwwgu, bwgbrrw, wbw, gbguu, wgwr, grurbur, wuburuu, rwgrgr, wur, bwb, wgw, rwr, ururb, gur, rrgwww, bw, ubgbru, rbwbgrb, wrbrb, wubw, wgbub, wrg, rrw, brbr, ugu, guuuugb, wurbgwgg, uurbbgw, urw, rurg, ubw, wgbu, rwguu, gbu, ubuuw, wubruru, bwg, wuuuu, wu, wuuu, bwru, uruu, gwr, bgu, wrgr, ggrugbg, bwgu, ggg, wwwgb, rgru, wbgbu, gr, ubu, guubwu, rgwuwug, bwwru, bub, gbuu, guwbwur, gubrurw, bwrbuwr, wrw, rrrrrg, rwu, gubbuu, uru, uwbg, rurru, rrwwbb, ubgb, rgwugg, buu, ggwwbr, uwg, bbwrgu, ww, urbgbbg, uggbrww, gwg, wbrr, rbrb, ruuwgr, guubrg, uwbbb, rbg, bbgru, gbw, rwrrg, ubrwr, ugb, uubgwru, buwbuwu, wbuww, rrbr, rwbw, ggwr, grrwrg, gbrgwu, bbbu, uwub, ubb, gwur, brbruug, gww, wwugbw, rwuggw, bbrbr, rrr, rbgggw, rug, ggrrbr, brrbb, uwu, ruwwr, rgr, br, rgrubgg, ugr, wgb, wwwr, ggrbbb, uu, gubgwgb, rwbgbr, wru, wgww, rub, uuw, rwubrruu, grg, brwguug, guguu, ub, bgg, wuwu, wr, bwbg
|
||||||
|
|
||||||
|
rwuugrgubgwgbrrurggwbugbuuwgbugbuwwwubbwbbw
|
||||||
|
rubgrugwuwburwwrrrwggrrrbbwwwwwuwuggururgrurgwbwwwugwwggur
|
||||||
|
wrgrrgbbgwuwguruurwbgurgubgbwuwwwuburggbwggwrwwggbg
|
||||||
|
uwwgruguubwbbgurubbuwggwuuwrrbwuugubgwuwbbggwggbbrurwu
|
||||||
|
ububrgrburwrrbbbugrubrugrugrwwbwguwggwrrrurwwuuubgwwbbbb
|
||||||
|
gwrwugubugrwgrrrgrwbburgbbrgrbuwwgrggubbugugwuwbww
|
||||||
|
uwgwwrbwwurbrbburubbrubrguwbugbbbbugruurgugwurgwurburrbwrr
|
||||||
|
gggbugbwuuwbubwuwgwuggurwrgbbbuuwuggwbugugwr
|
||||||
|
ruwburwgbuguwbbuuggrwgrgbbugubgrggrbuwgrbrubwguwgubrubggbg
|
||||||
|
bgwgwubrwggwgbuwbuurgugurbburbburuwgwwwbrubrrrgrgbrgwwwrug
|
||||||
|
wbgurwwrrwgwrugwbgwbbrurgurrbgwwwurbwgrubgbg
|
||||||
|
brwwgbguubrgwguwwuuwbwuwgrbrrbrrgubgrgwuwugbg
|
||||||
|
buuwugbuurwugurugubrwburruwgrgwggbubwgwuwbrwguuugb
|
||||||
|
rrwugbwbgggguburuuuuwwrgubugrwwugwbgbggugrrrurugwwugrr
|
||||||
|
ubbgbrwgrrwrwrbuwwbbguguuwgwruwbbwgrgggbrbgwggwbwurwuuub
|
||||||
|
wrbgwwuwbbwbgubrbubrbwwwuwbguwgwguggbgbrburugbg
|
||||||
|
ggwuwwggwwgbgrbrggbguwrwbgguwggbbgrrwbbgwwuwwbwgrwwgbg
|
||||||
|
ggwwuggggbbugggggubruuugbrurwgbrbrwrgbwggrr
|
||||||
|
gggbwuwwbugwurwrbruugwgrbrugrggbgrwgugwruu
|
||||||
|
bggrgrgbrwrruruguuuwwwgurbrrrgwbubbwrrrbggugrbbrgrwg
|
||||||
|
ubrugrrrwwwrbbrwuwuuuwwguurbwrrggguugugubbwwgbg
|
||||||
|
rwrrgrwrguubgrbrbbggbwgruwbbgggwgrgrwbuggubwurwwbgbrubwgbg
|
||||||
|
buguwuuuruwgggwwbggguuwguurrruwwbugugbgbg
|
||||||
|
wguwwwrwwugggbuwubwurrbubwggwwrgggbgguruwbb
|
||||||
|
ggrwbwrugbuwgrbburugwgbgwrbbgrwuwbrwrrrrrbgbrbrwu
|
||||||
|
ggrggbgbrwrbuwgggwgubbgurbuwuwrurwbwrrruugggggurwrbggbg
|
||||||
|
bbbgrggbwrrwubgwrguuruwbwurrbrwrugubwwgugububggwrbb
|
||||||
|
ubwbrurggrwgrwuurgugruuguggwubuwbrrwuwrwrbgurrbrggbwru
|
||||||
|
ubbrggguwguwugurwgubwwbugrgbguuuwbbuubrbrwruburbbguug
|
||||||
|
ruwgbbuggwrrrbrruwrgrruurwgbugbgbubguuwguurwgubuwr
|
||||||
|
uwburgrwuuwwrrrbguurbbuuwrbbggbuggbwugbbuuuuwwggrrr
|
||||||
|
ugbwwgwuwurrbrbbbugwgbrrrrguwuwguwurugbg
|
||||||
|
ggrrwuubrurrbbwubrbrugrggbrwbgruwgbwwuugguwrwubuwrwrbgbg
|
||||||
|
buwgggwgguwrrurrwruuubbwgrgrgbwbgbbwwwugbubgbg
|
||||||
|
wwgggrbuuugubwurbgugrbrwrggwwgruubwrbbuuuwgbg
|
||||||
|
wrrrurruuwgwrbwbbgbrbbwrbrgbruuuwubgubgbg
|
||||||
|
bwgugbrruuwrrwbwwwgbwrwgbrwrguwbggugwbgubgwbu
|
||||||
|
grrrgbggwbgggbbwbbuburrubrguguuurrgwrbwrugrwububgwrrgbg
|
||||||
|
urbggrugbgruguwbwurbugbuwgwwwbuugurwguugrrbwgurbgbg
|
||||||
|
uwwrubrugwrrruwguubuwwruuuwurwuwgbbwbgbgwbuggbgubg
|
||||||
|
rugbrrgwwubgwbgbgwuwwwugwwubbwuwgwuuruguuwubwrbggbggwugbg
|
||||||
|
uubbwgbrwwgbggugbbrguggbwuwbgrbgrgurrurwwuwbrrwggggwgbgb
|
||||||
|
rbuuggguruwrbbgbwbbrbbuuwwgurbrrwbrrubwgbgwgrguurbubbrwrgbg
|
||||||
|
bguuwubrbgurguurgwbuwgbrbubwwgbbwuubwugbwbuuuug
|
||||||
|
rbwwrgrwbugbrrggwbwbwwwrwwggubuwrrgrbwwbggrrrwgwwb
|
||||||
|
ugggwgbbrrwgwgurubbbwgrbbwgguwwggrburgbuuuwuwrrwgwbwggwrb
|
||||||
|
rbwrbgwwrwrugrburwuwbwgruuururbwbbggbbgbgggbg
|
||||||
|
ugwrbwbrbgwggwggwguwwrwgbgwruwurggwwrwbgwgrguubbg
|
||||||
|
guwgbwrgwrurubwbgrwwrgurwbgubbrwbbrwbwwgguwrggwwrwuwr
|
||||||
|
grrbwruggugrgbwuurggugbguuwburgbbrgguggwubg
|
||||||
|
brbrggrgwguwwrgguuuwwurgbrrbwwwwwrbwwwurgrgubruwbwggurgrg
|
||||||
|
bburrurbgwguwuguguwgwruwrggbwubuwwubgwrurwrbrrbbbrgr
|
||||||
|
gruwguwrurwrwgwwgwbggugbbubbbwuwbguwbubrgrbrrgwbu
|
||||||
|
brbbwbbguggwbrurrbrbuwgwuwwgugwwbubruurwuuuggg
|
||||||
|
uwrbggggwwbgrrgbrurgbgugubrrubrgwrrbggrrbbgbrrbgbubggbg
|
||||||
|
wggbgwrwwruurrruugwgurgbrbwwgbbgbubwgbwbgrb
|
||||||
|
wbuuugrbgurbrugrruwwruggubrugrububwwbbwgbwrrbguwugrwuggbg
|
||||||
|
rwurgbgwrbubbwbgrwwruggrbguuwuwugbwurrgurrburg
|
||||||
|
rrggggbgggurwrgubwgbbwwugwguuubwrrwbbugruwrugbugurgwwwbb
|
||||||
|
uuwrrrwruwwubwrbbwwurugurbbuwwurbruwrgwgrguwrwrrwwrgrwbugbg
|
||||||
|
guuwugububrggurgwwugbwrwuubrbugrrbwubrwugbg
|
||||||
|
wgrbwwuwwbgwbuugubwuwbwguggbwuwrgbbwbwwrugr
|
||||||
|
urrrwrwbwuwgwrwgburruggbwuwggrwwbwgbwrwggwbrugggr
|
||||||
|
rgbwubrrwwwubbgwwurbugbrrbggbrugrwgbrugbg
|
||||||
|
ggwbwbubbgruwrrwbgrwrwgwuwgggwrubrwrubgbwwwbbrr
|
||||||
|
rbuwrrwggrgwubbrwwrwrbbbbbburbuwuruwgwgbwrurwgbg
|
||||||
|
uwbrbbrbrbwgggwuguwgugurgrrrwwurrwbuwruurrwgwbrburrrwug
|
||||||
|
urguwrrgbwwwubrbuwrguubggbrrrgbwrbbrgggruuubbgrrgugugwgu
|
||||||
|
rwrbrwurrrrwwgbwbwbwgbgggubbubggguwruuuwbrbguwrwugwr
|
||||||
|
rrwrrwbwwbuwbbwugwbbguuwbwbubgrgubgrrrbgwuuggwrrbbrgb
|
||||||
|
uwrgrrbbbruwgrbbrgwrwuguwrbrggwbbubgruggrgbg
|
||||||
|
uguugugwwubuugrrbwubrrrwrwgbgbbbgwwrbbrbgbg
|
||||||
|
bwwuruuwburbruwwrgbbwruwurgrrrbrbuggubrbbubgbrbgwgrruuubw
|
||||||
|
rrugubuwrggwrgbrrbuurbbwgbguguggggrbuwwgggwburbgbg
|
||||||
|
grwgburuwwwgwwrgwwgwrwgwugubrgrwuubwwuwggrwwrwgur
|
||||||
|
ruwugugbuggwwwgurugrbbrgrubrrrrrwgwwwugbg
|
||||||
|
rruwwrrwrbwugbwwguwurggruuurbbwggggggrwuugbgwg
|
||||||
|
ububuubbggurbuwwwrrgbuurbuggrgbrwwgggwgwwrgrwuwggbguugbw
|
||||||
|
wruwrwggbbuuwgwbuurburuguwwgbrguwgwuuurggbg
|
||||||
|
bwbbgwrbrbgrrbgbguuruwugwuubuguggrbguruwrruuugubgruwggbg
|
||||||
|
gwurgbwrgbgwrwbgbbgugbrwuuwggrggurbbgubrrugubwubrrwrgw
|
||||||
|
urbbuuuuurrbgrbbbbbburrggwrrbwrrgbwwwwwuggwwwwwbuuubuugw
|
||||||
|
gbggrwugbwrbuwrbubuugrbrubbgwgrubbgbwuuurrbrwgrrbwbb
|
||||||
|
rrwurbwrwurwuugbgbgbwbbbuuubgwwgurgwgubwgbg
|
||||||
|
ugrbwwbuuurubbrgbubwgbuuwbgwuwuugggwgbuwugrgubwgrwggbgbg
|
||||||
|
rgbrgbbguruubrgrbwwbbbwubgubgwgrwwgggguwrrbrurbgwrrggw
|
||||||
|
bwbburbgbwgrurgwrrguburrbwwuwrwrrbbubgwruuwwugbg
|
||||||
|
uwrbwwrrbrbbbrrbbbbbburugugbburugggbwuggbgbgwbwwbuuubbgbg
|
||||||
|
rugwgbrwgwuwubwwuwgbrgwggugubwugwrrwgruwbbgrgbg
|
||||||
|
rbrgrguuubgwwwugrrwrbrruuwgrgugubgwbuubwrrwbbbrrwbbgbg
|
||||||
|
rbgruwbggwbwgwgbrwurbwgbguggrwbrbwwuuwggbugguggggrwubrbuw
|
||||||
|
gwbwurrwuwgwgrrbrgbuuwrrgrwwuurrwrrburuwuub
|
||||||
|
wgwugugrwgbrbugbgurrwggbgrubwggrbuuuuwgbg
|
||||||
|
wguggbuguwuwrbwbrwgguwrgbwgbgrwruggurguubgruwbbugwwug
|
||||||
|
gwuwbbgburrrwbgrbwuguwubwuwruggrbuuuwruuwrrg
|
||||||
|
gwrwwrubrruwuwubrggwbrbubbbgrurwwrbgwgrgrbbwwwbgbrwugw
|
||||||
|
ruggruuuwbgbbwwurrwruwrbwbwubuwrbrbgbrwuggurwwwurw
|
||||||
|
rwrwbuugurwwuwwruguubbbwwwwgbrurububrbubwg
|
||||||
|
rrrrbgrwgrwurgwrbbwurbwgwbuguuggwrgbrwrwuuwwrrbgbg
|
||||||
|
ggrwgbgwubwbrrgruuubgwgggwwwrbgbugwrurggrbrg
|
||||||
|
buuwggubguwbgrbbggbwwurbwgwggwwrwurwbwubbbbu
|
||||||
|
ubwgbbwggrgwrrgbrgwwwrwrgguwubrbbrrurgrwuggurgbwwrwur
|
||||||
|
bggrrggrrrbuburwugguubbburgrbgurgurrwbruuwbrrwrwbrgrurw
|
||||||
|
wgrwrgrrwurgwgbruwugbuggbbwrurrgbrrwrwubgurrr
|
||||||
|
wwgwurubbbrrrurubwbbrubwrruwrbbwwwgbbbrburubuu
|
||||||
|
uguwwuguguwrwwuuuggbgrugubrggwurrrruwubbbgbrg
|
||||||
|
gubuwgwwgruububwwrrwbrbrwubbwrgwgrrgrwgbg
|
||||||
|
gwwwugwbwwugrwbwbrubuwwbrrwuwwgbrurbrwbrbbrwguwrrwwbbug
|
||||||
|
gbbrwwuwgrbuuuuuwbwbbbuuwrrrgggguwwwwwbgwwubgbg
|
||||||
|
wrbbbbugbuurwuuggggbrrurggrrgwggwgwgguuggbrrrgguuwurbrwrbw
|
||||||
|
rgrbuuuuuwrgwbbrugbuugububbwwwgbubuwbrurbuwwwrr
|
||||||
|
uuubrwbwbrgwubgbgwrruuuurugrgbwgbrrggruggrwuwwbrwgbg
|
||||||
|
gwgugubbwrrwgrburguwbgbbwggugbugwwruwwbgwwrwgubwruwb
|
||||||
|
wrwwgbwuwbbrwrrbbuurbbwrbubwrbwwugwrgbrubbgr
|
||||||
|
wgrgwbrrugwuwuurwrbgurbrrrbubuubwgrrruwurbrrgbug
|
||||||
|
bbrurgrgwwubgbbrwrruwbuuwgrbrrrrruwubbwgwgggbgruuggbg
|
||||||
|
brbrgburbrburugururrrrruwwbuurbwgrruuwwgbbuwwuugwwgwgbgrgg
|
||||||
|
uubrurrrubrgrwwwwwububggrggbuggurbbwrbuwbburbugrgwb
|
||||||
|
rrbbrbbwubrggbgrwbwgwgwugwgwgbbbwurwrgggrurgwurwbrrgrgbw
|
||||||
|
wwgbuuwruguuwwbwruuwggbbgwwguuurrwwbrurruuguubub
|
||||||
|
ggwbrggwuwwuwbbguguuggrugwbggugggrrrburguburbwbwrguwgw
|
||||||
|
buruubbruwrwbwgruwwuwrbuuwugrbrrrwgugrgggbruguwubbrurwb
|
||||||
|
wwrubbwggrwbuwrrurbbrrwurugbbwgrbwgubrrwwgwrgbg
|
||||||
|
rbguuwugrgruwbbbwruuurrgggrwwruggruuuurwuwrbgwggg
|
||||||
|
gbrrubbwurgwrwgubuubruwrbugbrwugwugbgbwgrggwgbbuubgwrb
|
||||||
|
bubwrwwgurrurubwbubrwuwuggwgrgwrrbwgwbwrrgrrbb
|
||||||
|
rrubuwbbruuggburwuugwwuubuwwuwurbgwgggwrwrgr
|
||||||
|
grgggubrgwbwwgggbwrwwrwgrguuwubgwuurgbrurgwgbg
|
||||||
|
brrbgrbwwuwrwuwwuwwgwrgugwgwugbgguwbbgurrgrwwuwgwubrbb
|
||||||
|
wrbbwgwgwwurbrrgguwbgwwwwbwwwrwwguggbuugugggubwubrug
|
||||||
|
rbbgubgwwruubgguwbwruubugruwuwbgwuugwgbg
|
||||||
|
wwgbuwuuuuugbrugrubgguuwrbgwruggrugbbbguggrburgubwub
|
||||||
|
buwugbwwrbgbbuugbgwwwuwgugbbubwugwbrrgubggwbrgrbbbrurwuwbu
|
||||||
|
bwruggrbwgggbugrgurrwurbrgbbgbbwgrwwrgruuwbbbgbuwrgbwuguggbg
|
||||||
|
wrruwrwwguwrgrggggwburbuubrrwwbruwgrwbbruwgwwggruwwgbgubg
|
||||||
|
bbbbrguruwrbruuubrwrwurbbbwwbguwwwgrrwgwbgbg
|
||||||
|
gbwurggbgwbbwruuggggruwurbbubwbrburgwbrbuuuubgbwgggw
|
||||||
|
rwbrbwgwwubrrrurrrubwbuwubgruguwgrwbggrwwrwubruugrbrggbg
|
||||||
|
ruurwgubuugwwggrrgrrwbgrbgwuburgugbwgrgurrgw
|
||||||
|
rrrrubbwbggrgrrbrrwbrbgrgrbgububgrbrbwbubuwrwbwugrgr
|
||||||
|
rbgwruruuuwrgwwwurrguurubrbburubbbggwwwrbgruwbgbg
|
||||||
|
ugwugurgwuuuuwguwgbugwgwggbgugrurwuwuurgwrgbgbbwuwuggbg
|
||||||
|
bwbrggwrbwbbubrbwwbbbgbrubwwrwbbrwubrruurwbbruugbugubwurgw
|
||||||
|
urggrbgwruurwrguuugrgwubgrbuwgwruwwwbugwuwg
|
||||||
|
bbuggwubwbggwwbgggwbbgbgbguuurbuwrgggbgbg
|
||||||
|
gwgugrwgrugrwrbrbgwuubrbbuurrgwwgbbruuwbwbuw
|
||||||
|
grgugwuwbgguwwwwrrwguurwgwruwgububbrbrggbg
|
||||||
|
uubugugwbrgububgrgbrwrwbrggbgrbbwrgrububwww
|
||||||
|
bgwurbwwgrwbwgrwwuguuwrrwrwruruggwgwgwbbbgbugbgbbbgbg
|
||||||
|
rbwrrggrguurgugwbwuurwwruwugburwrbruuugbuggrbbguu
|
||||||
|
wgrwgwgbbrgbwuwgbgrwrbbwwbgwrrwgwuuuugruuwwguguww
|
||||||
|
rugwwbwgwwbuwugrbwrbuwrwuuuggurbwruwguuuwruwwrgrbgbrubgugb
|
||||||
|
grbwrbbwwubgwbrbbbuurwuugbrwbwbgubbubrwbbwgwgbwwbbuu
|
||||||
|
rrugbrgrwwrwubrrrggrbrbruugwruuwrwrrwrggruwr
|
||||||
|
bburubrwuubwuwgubwbuubwbuubrwwggugbrrrurrbgbgbbbubbbwwr
|
||||||
|
buuurwwbuubgrruuurrwwwgwwwgwgwbgubwbrrbgwurbubwuruguubgg
|
||||||
|
rbwbrwwubrwururwubrbbgubrrbwwugbuurruwguugrwbbg
|
||||||
|
ubwwrbrruwwrwubgwrruwggbgwbggugururrugrrwwwuw
|
||||||
|
rbrwwwbwwgwguwgrgwurgrwububbrgwwuwugbuuuuggbgrbwwrgugur
|
||||||
|
bgwrbrrwrgrgrrbrwwugrrbubbrgwrwrrrguwwrbggrrw
|
||||||
|
uwwwrbwbrugrrbubugbbgwbwuubbrrgwrbbbbbbbrgbrwbrbuu
|
||||||
|
grgrbwugurggbwgwgbbgbbbrgbwgubrwbrgrrrrbwgrubwg
|
||||||
|
ugrbbuwbgwugbrwwuurrwwbbugruubwgbgwgrbwgbwu
|
||||||
|
uuwbgbugwrbuggwbbbugbgbwgrgbwguwbrbwrurwwuubggubrugrrr
|
||||||
|
grgggugbgububgwbgrgwgwbrrgruwrbubgrgrburwwrrug
|
||||||
|
gruwggbbugbgwwbbruwurbbrbrwwbrrwrrruwbwwggbgburggub
|
||||||
|
rgbbrrbrwuurubrwwgrguuwburrbbwruwbwrgrggbg
|
||||||
|
ubrwrwuubwgrruuurgrbgwwwrgrggwruuurrrwbrrrrbb
|
||||||
|
ggrbbbbuugrgbguurrgrgwgwburrrgwbgubggrwurwguwwgwrwbwrbruug
|
||||||
|
grrwrwwuugrggwbbwwwwurwbwbbbbgwgwrwburrugbbg
|
||||||
|
bwbgrurrwwgurwrwurgwwwbbwgrurwburbuwwuuggrgbrubrgwurbubu
|
||||||
|
urbrrwwbwwbwgbuwruuurrrbwbwrrrwgwrbuuwurbbuugr
|
||||||
|
uubrbgbubbrrubwrguggbubuwrgwgrggurguuwbrwgwgwwugwbbww
|
||||||
|
brgbwrbrwwwbrugguuwwwbgbgbgrurwuubbbgwgrugbg
|
||||||
|
ubbggrrububwbuuwbuwwggrurrugbguwwrgbbgbwwbbg
|
||||||
|
uubguburggrgggurwrwgbuggrbwuuwwgbburbgbbwuugrwgwrggruuubr
|
||||||
|
bbbgggruubuuwbruguubgwbrbgwgbwruwbrwbwwwggwwwbur
|
||||||
|
rbrruburrugrrggurugbuuubuggrbbuwgrbwrwrrbwgburgggwwwuubr
|
||||||
|
urbrrbwgbgrrgrwwrrbwuuruwubwrbrwrwwruugruu
|
||||||
|
bbgrguuuwwrwbrugbwwugggwbbbbbugbrwrbwwgwrrwwrubwugrbgwgwrw
|
||||||
|
wbguggrrrwrrbwrbruwbgggwwbgurgrbuwwgwgururbrurubggrwwbuuwu
|
||||||
|
wrubrrwggrgggwgrgrbbgwbuwrbwwrugwwwwbwburgbgguruubb
|
||||||
|
urbugrgbgrbbuwbgbwbuwbwwgwbbrrgggwgrgbgwwrbubrgwbrwr
|
||||||
|
wurgwrrbbbwrburgbgrubgurugbwgrgburrwwbgwugurwuuuguwrbgrugbg
|
||||||
|
gbgubuuwgwrurbgrwuuurwbbwggrrwubrruuburugrbuuguuguuugugbg
|
||||||
|
gbrrbrbuurguwbuwrrgbrrbbgwgwggwbuwgrgrwbbwgb
|
||||||
|
bbrugrwgrwburbrbburrurgrbggwrbrwrbgwrrrgbrwrgwgugbggwr
|
||||||
|
wrguwbgbbrubuwwwurgurrurbwbwrrbbggbbgwrrwbuuwww
|
||||||
|
guuubgrwrwurgbrubbguubrgggwwbwwurggbrwuuwuwwbrwuwbburbwww
|
||||||
|
uwrubwgwuugbbbwburgbuubwbuwbwwbggwbbbgwwrbbru
|
||||||
|
rbuwgwwgbrgggrgrwwuurrwggwuwwbrbggwbggbrgbbg
|
||||||
|
wgwwugbrwurguwuwubugbwgbwurbuwwguubrbbbrgubwgrbrr
|
||||||
|
gbrburgrruwubwwuggggugrbgbbubbgwuwbuguwrbbrbubgwugbwrr
|
||||||
|
bgbbrrbuuwgbubrwwrgbgrwwwubrrrrrrbwuurbgwubbgruwrbwgbg
|
||||||
|
grwrrwwuwwguwgrugwwwrbgbuuugubrwwgrbwwgrbrru
|
||||||
|
grwwwrbgggbwggrbgbwwrwwwbgbbrgbwuuruwbbugbgbuuuubwbgwgbg
|
||||||
|
bgbgwrrwugbrbwuggurruurrwuurggrrrbwbwbubwwwbgugggbugwrwgbg
|
||||||
|
urgrbugrgwguwgwbgbbwbrgwbbwggbuurbrbwwgwwuwwuuwurbwwwrgbg
|
||||||
|
bgugrbubgwubwuggrrrugwgbgwrgggbwbuwbggrrubbugbg
|
||||||
|
guurubwrbggwbrubuuggubrugrrbbwuggwuggggubguububbbbgbwuwr
|
||||||
|
bggwrwwrbwggwgwuruwwbububbwgurwurubruwwuguwugrurwwubwrub
|
||||||
|
wbwurrrgrgrrwuubbwugrrwububbwwrwgwwwbuwuwrgubrgguwrb
|
||||||
|
wrgrurgbbrwbugwgwwrbugbrrggggrrwrrrrrbruurbggggbg
|
||||||
|
gwbwuurbgrubrbrugbubbubbwuurbbrwbrwrwubggwubgbburwbbbrwwbg
|
||||||
|
wbuwgwgurgubbbuurwgrgwgubwgwwugugwrbuwuuwgbg
|
||||||
|
ggwgrbubuwggbgwbwbrwuugwgrgbrgbggwrububwgwuwuwbgubbgbg
|
||||||
|
gguwrbbgbgurbggwwgbugguurubruwrgwrguurgbg
|
||||||
|
rbbggbrbuggrgruwgwwrguguuwgbuwrwrbuwgwbwwuw
|
||||||
|
uuwbgrwwubwwwguburgbrwwubggwrgwbrrruwguubu
|
||||||
|
uubguwwurwrwwrgwrbwgurgubrwgwwrurrgwbbuuwrbubbbwu
|
||||||
|
buwbwuwbbwbbbbwugbuwwuuwrrgwbwugbwwuguwrwggrubwwuwggrg
|
||||||
|
wbwwrwwwururbbrugbgrbbwuuuuurwrgwrrbgrgubuugrrwwrgbwruub
|
||||||
|
gwrwwgugbggwbrgbwbrbgggurrrwbbuuwrbwrwgrguuwbrruguwrgbg
|
||||||
|
gggwurgwwuubgruggugbubbguwbgrguwbwwrubggguruwrrbugrgbg
|
||||||
|
ubwggggguguuwuruwwruuugguwrggrrurbrgrbgbg
|
||||||
|
rwuuuwgbggruurrwwgwbrrggwbwbrugrugrbrbggbbwbrgwubggbwb
|
||||||
|
uwugwuurwbrguuwbbgbrbwuwgwrruuububwwrrgrubwwbrgwrggbgbubbr
|
||||||
|
wggrbuuuuwuuwgbrbbubbuugrbbgbbwbrbuwguruwbrwrwgrgrrurgbg
|
||||||
|
rggrrwgguguwwgbgwbbrgbubuwgrurguugguurgwwwwgrgbg
|
||||||
|
wubgbbbuwrubuuruggbwwrrwrggrbrgburbrbuwgbuwwgbg
|
||||||
|
ugwrubgwwgwbuwgwurwuwrrwbgbrrbwrwrbggbbgwgwbrrggbg
|
||||||
|
grgwruuwwrugurrbbuwbwubrbrwbrbbrbguugrrrgbwgrrggugw
|
||||||
|
ggrgggbwrgbuuurugurbwurwrrrgwuburrbggwwbubwgbg
|
||||||
|
wgggruugrggurwgubruwbbuwbwruuwgbrugrbggrgbrbrugugbg
|
||||||
|
wrrrwgggrrrbrwrbrgwrgwrurgrgggwbgwrbbbrgugwwgwguu
|
||||||
|
rbgggwruwugugwrugburuwgrubbrrgubgwbbrgwbgggbbwgguwgbrw
|
||||||
|
buwwbugwuuwgubuuwbbgugrwbwggrgbruguugwgwwwwrruwbg
|
||||||
|
uwwrwrbgbrrrwgbgugwurgwrbrwgurburrbuwgruuwurbbugbwwrrrbrgbg
|
||||||
|
bgururwbgwubwwbrrurgugurbuubwggrrrguubugwbwgbg
|
||||||
|
uwuwbbwrgwubrbuwwrwbubwggwwrgwubgrbwuwbguwg
|
||||||
|
grruurwrrubrubbruurgrgrbwbgbwgurbbruwgbbruubrgrwu
|
||||||
|
wuwrrrwubggubbwgbwbbbrbwbgwrrgbrrgubrguuruwgrbgw
|
||||||
|
rwbrugugubwbbwbwgrgwuubrbbwuwwuggrwwgugugubr
|
||||||
|
wugubwbgwwuguwrgrggwwgbrwgubgurwbrubgwrruwgruwwgbgbg
|
||||||
|
wugugubuurwbrgrbrwuuubruuuurgurbuwbwuuwbrrww
|
||||||
|
uwwrwrrwuugggwbrwrwggrbubbuuwbwwwwbruwuwwrgbgbg
|
||||||
|
burrwugbwrgbuwrugrbbbgubwuggbgrwbwubrugrbu
|
||||||
|
gbuubrubrwwwgrugrgugrguuwwrwwruurbwgwbuuurbbuuwubrb
|
||||||
|
bbbgrbbbubrwuurgggrbwruruubrurbwwwruuuuwggrgbru
|
||||||
|
ruwwwbwggwbwugugrurgwbubwrubgggrubwrururrwuwuuu
|
||||||
|
wrgwuwgwrwwuwgbgbuuruwurrrgggwwubwbgbrgbg
|
||||||
|
uwrrrggrbwbuubbbrrgbrguwbwwuguwrubwgwgwrbwurwuugwgbb
|
||||||
|
ugwrrggbgbruggbggugbbbuwruubrugbgrrwbwrwbwrrbgu
|
||||||
|
rurwugugrurwgwgrwgbuburguguuwuurbgbugguwugurrurgbg
|
||||||
|
wggbwrgrgwuwggbuurbbgugurbwubrugrbburgugrbrggwb
|
||||||
|
gbugbbgbuwbrrubwgrwwbwgrrbbuurbgrguwguuubwb
|
||||||
|
wrbbrwwuguurrwbrbwgurbuwrugubgwbgbgbubbggbwr
|
||||||
|
rgwrggbwubgubruurbugugugurrbrwggrgwbgbwrgrgru
|
||||||
|
rbububggrrbbbubbuwgrwuurbburubbbwguuwubwwburrrwu
|
||||||
|
uurrruubwggggrrbruuuwgbgrbbbwrbrguwgbwgwwrwbr
|
||||||
|
bubwgrguwrurrwwurrgwrbwbwggrgwggwruwgrrguwbggbbbguurwbrbru
|
||||||
|
ggrugubwuwrwggwbubguugrwgubggbbwgugbwwgbguwbuururrwurgg
|
||||||
|
ubrrrbuubugururuugggruwbbwurggwwwruggbwwwuu
|
||||||
|
ruurrbwrrurwrubbwwgrrgbgururgwbrruwgrwwwugwbuwgug
|
||||||
|
wrrggurwubrgrrwburggrbbuwgrrgbuwbggrguwuwgwrwrrgwrurbbgbg
|
||||||
|
wrwbwbuurgugrugbwwbguuwwgwbuggrwuurwwugbg
|
||||||
|
rbrbrbwggbbwwbbbbbuggwbbubuguwwuugrgbrruugggbbwbwwrwgbg
|
||||||
|
rwrwuwrwgurgugbbrrwwwugrbbwbrgbugbbgbrurrgbg
|
||||||
|
buuubwrgwwbrrwbwuwrubruggbwrbruwggrgrgwggrwggugwbbgguw
|
||||||
|
urggwbugguugubguwruwrbbgbgbrggurrubuwrgbg
|
||||||
|
wgbwggwbrwgbgruuguururrbbrgrwgwbwubgrrwguwgwuwuububgbg
|
||||||
|
gwwwbgurgbwrgwbuugurwbuurrrwrgrggggbwubwwgbg
|
||||||
|
bgbuwbgwubgbwgwrruubrrwwrrruwuggrgbrrubbbwugwbwrbgwgrbuu
|
||||||
|
ururubwbugbuwrgrwgburrwuurgwugrgbbgguwgguruwwbuuwgrwbrrbb
|
||||||
|
rgurgruuwwwuubbbbwrrrwwrrrrgrburrguruwgggwwwugbg
|
||||||
|
bgrbwwuuggrbwgwbwbwubuwrbuurwugbbbubrruubrgbg
|
||||||
|
uubugurrgbrguuruwurrwgbuuuwwuwbrrubgbgwugwgwbgbwubwwgr
|
||||||
|
gbgwugwwrgwgwuwwurrggbrugrwrgugugbbbwggbg
|
||||||
|
rbwuggbwguruggbggugrubwrubwwgrggbgguburuubbrrururwubrgggbg
|
||||||
|
bgrwuurubggwrrguguwubbguwgrwgbgrurwugrwgww
|
||||||
|
rrwuububrbbwgbwrrugbwbwuwugruwugbuwrbwgwrgw
|
||||||
|
bbggbguwbbbuwugbguuuwgbrguwwgwwbbruburgbbbbrurrwburuwggbg
|
||||||
|
bgurwgrurbwwurwrgggwrgbubugwuwbbbrgruuugrrrruggbrggbg
|
||||||
|
wrgwubrwwrrbubwuruurbbgbuwgwgurwgwggubrwrwbruuuwrug
|
||||||
|
ggrbuggbbbwrubwgwubrbrbburbgbgwrbwgwgrgggrbrwrgugruubrbb
|
||||||
|
rbrbbruwuugrrbgrububrgrggrurbrbrwbgwbrbwuguwgrwwwub
|
||||||
|
wgrrbgugwurrubbwrwgbuggrrurbgrrbwwuuwurwggbbwwruugru
|
||||||
|
brwuuwwbrrrbggbuwgbbgwrugurwuwbwgubbrgrgwgbbbgrugbg
|
||||||
|
uguwuburgbrggrrbubgurwgrbgrwuwuubrbrwrwruwwwbwgwrbg
|
||||||
|
rbbubuwbubbbbrwubbwrbugwrwubbwrbbgugbgwrbwuwuwgwrw
|
||||||
|
uuuubwbrubwwbrbuwbrgugwubrrurbgugugrbrbbrwggrwggrur
|
||||||
|
gguuugwwbwrbrgwurwwurruwbgwurgrgrbrgbwubggrwgbg
|
||||||
|
gggwrugrbwwugwgwuugugwbugbwwggugguwguugwwuwrbrgbbrbbrwurgbg
|
||||||
|
ubbuugbgbubwbuwwgrbgrrgbbwbbwrrgbugugwugwgggbg
|
||||||
|
guburbrrbrwubbgguguurrwuubrbrwrgbrbguwwbrrrb
|
||||||
|
bwubgbwwrwbwbgbubggwwwbgbgurruugwuruwugbugwugurbugrgbwwbgbg
|
||||||
|
uubrgrwwrrgrrbubrrbwggggrwruwuurrbbrwrgbwrugwbwgbg
|
||||||
|
uubbggbrwugwgbbgbrbrgbrggruwrubbwwwuurgububuwbrrurubbugbg
|
||||||
|
wwgwgwgwggrwruuwugbbrbwwgbgwugbgwwbgbuwbubuuguwwgruwu
|
||||||
|
wrrbruruugbugrwurbwrrwuwuguurgrbugrrgbwurrggugbg
|
||||||
|
gurrrwruwwruuwrgrbgwbbrurgwwwwwrgrrwrubwgggbgwbburrbguww
|
||||||
|
wwrwrubgrrwurbgbbbubrgrwbwrbrgbuwrubuuggbg
|
||||||
|
grbwgwgrbrbrwwbruwgrubgubuwrrrrgbbrugbubrwguuubbbrwgbg
|
||||||
|
brwuwwwrgggrgubruguurbwbrrrwbwrgggbbggwrgugbbbgurbggrwurwg
|
||||||
|
wrbbrwrggbbguugwugwgrrguwugubbbwgwwuggggbubuwwbwgguwwrrwbu
|
||||||
|
gbgwbrwrbgwbwbwwgwgbuwbuwbgbrbrbgbbbrggbg
|
||||||
|
bububbwrwgubgwwggbruggbbrwgbbubwbwwbwbgbwwwwwwwbrurwrr
|
||||||
|
rrgbgrbbubrbwwbgrrggbgrgwubgbugurwbgurgwwbuguwwgbg
|
||||||
|
bbbggburbwwwwugwuubrwbgwbwbgruwbrwubrrrggrrwrwwwrrgwbgbg
|
||||||
|
wwwurgbbuwgbgrurgbbgwguuuuuwwwrubugrwuwwwbrwwbggrggbg
|
||||||
|
urrrubwburgrbwgburgbbgrgrwrggrrbgubwugbg
|
||||||
|
rguwrwgguwuggwrrwurwbubbuwrbwrrrgwrugrrubburrrbbrbgbwgbwgbg
|
||||||
|
buwurrbgwuruwbuuggbwbggbruggurguuugrrbgbg
|
||||||
|
guwuubgrbwrwwbuuwuugbbbrwbuubuurugrwubrguuurwuuwrrbuwrgbg
|
||||||
|
bbubgggwuugwrugbubbguwwrgubwrrgburgwgurugbbbgubwrgbg
|
||||||
|
ruruwgurggguwrugubgrwrrrwggwugugbwgbgwrgbbuuuwrw
|
||||||
|
rgruuwugwugugbgwwwguruuguuwurururbrbbuwrwurgwubgbg
|
||||||
|
ggwgguuugwwwrbuuuurbbbwwwruwubgbgrgurbwugwubuwwwggg
|
||||||
|
gburgwuwrbbrwgwwgbgbwurrwbgbwbwrgbgwrrbrgwwgrrwrgggruugrgbg
|
||||||
|
wbbguuwuurrugbwuwuubwbbuuwgbrgbwwbgwururwb
|
||||||
|
gbwwwgbbggwwgbwurrgrbwrrbubwwgwbgwwrwwbwggwbrwgbg
|
||||||
|
wwgbwwuubwuwrbugwrrugbguwbbwgrwbrwbggwgbgrgb
|
||||||
|
rbbgguubbwwbubgbwgugugwuburwrwgwwuwurrbrbuwurrgggbgrbbwrg
|
||||||
|
urwgrwrbrgggrbuugbbruwubbgrwrgurbwwrbgwbrwrgbbgubbbr
|
||||||
|
bubuwwwwrubburgwgwwubwuwbubruwubrwwgggrgbubwuwubwuwuurgrub
|
||||||
|
wbbgrurrwbuwrgbbbrrguwwurwrwrrrwwwrbubwguguubbruwbrurrgwrgbg
|
||||||
|
uwubwwggrurbrwguubrrwgrwugrugwbubwbbrbuubggbg
|
||||||
|
bgwuwruugwwwwbbwbrugurwguwugwrbuguburbbgrgbrburwwrugu
|
||||||
|
urugrwwgwggguwgbrbwrrwrggrwuuguruwurgbuubrggbwgbgrruuu
|
||||||
|
wurggrrurubwbuwwgbgwbrbuwrwuurrbrrbrrwwwrgbg
|
||||||
|
wwbubrgbbugruguuuruggrwrwgburwwwrbwbrubruwwubgwwbwgr
|
||||||
|
wrrrrggrubuuuuuurggbwwgwbgwubbgwwbrrbbbgrbgbwubwbugbg
|
||||||
|
wbgrrgrbwwbugbbbbgbgrugbrbugwuwubuuwgwuubwgbgwuwgbrrww
|
||||||
|
bwgrrbggbgwrwugwruurwbwugwugwrurrwbrrguwrwwb
|
||||||
|
gbgurggugggubwwgwgbubggrgguubwbururgwbgbubbbwr
|
||||||
|
gbuubwgugubwwgwguuggwbgwbrwgbrrggbwwbgbg
|
||||||
|
wwwgrbrwuuuwgwwgugbbrgbgbbwgbgbrwguwwgrrububgwwgbbbbbb
|
||||||
|
uruwggrbrrwuruburrbwrwwwgwuwwwwuurwgwugrbwwuubuwg
|
||||||
|
rgwugrbruurgrrwbguruwwgubbrwrwbgubgbuuubuugbggwrg
|
||||||
|
brgwgruubuuuuggwuwuggrwgrbgbbwwuwwrgurgwwwu
|
||||||
|
bgrrgurrgwbbrrrwuugugubwgugrruuwwuwrwbwbgb
|
||||||
|
gburggbrugbbbubwwwruwurgwubbbubrburgbuurgbggbgb
|
||||||
|
bbgwbbbwrbuwurgbuuurbwgbbgguubuwgbguggbwbwrguwgrug
|
||||||
|
wuguwwwubwrrbbwuuwbgbwguwbgbuwubgbubbgrbwubwrburgwg
|
||||||
|
wrwrgwurbgwwurubrbwgrgugwwbrrwbwwwugrrrwwbrbruggur
|
||||||
|
uwgurrubgburrguuuubuuuuggwrwgwrbbruggrrwggbgubg
|
||||||
|
wgrwggrwrwwwwbbgbuuurrrbggbgugurrrrgrurggg
|
||||||
|
ubwgwbgburrbguuguwruubrbggrbggbbwuwubrgggb
|
||||||
|
rwguwrurburbwwubuggbbbubrugrbbbbgwggwrrrwrrgubgwwgww
|
||||||
|
ggguurrrgburgrbgggbwuubgrruguwwugrggrwrbgugrbbbrgrgu
|
||||||
|
bbrrburrbbbrrruurgburgbwrbuwuubbugwwuubwbrugw
|
||||||
|
brbwwwuugbggwurgbwrwrrwurrurwwgggurwwuububbwbwugbuubrr
|
||||||
|
grwwuuwuwbgrrwgbrwrwbbgggrguurgwgbuubwbgrgruwbubwurbgwggbg
|
||||||
|
gbubgbwbururrbwrrbuurwrburrgrgrgwwrrurrrrbgbg
|
||||||
|
guurbguugrgbbugwbbwbbuwwbruuuuruwgburuuruwggbgrwrbrwg
|
||||||
|
wwgrbbuwbuwuubrrbwwrbrgugububrwggrugbwrrurugbugrwgbrgubbub
|
||||||
|
ubwwrgugrurbbbbwurwrubuwrwgwwurbuubuwbgwuwubwubgwuuuwuwwbgbg
|
||||||
|
wgwgbgrwgrgrubuurrwrgrwwwbgbubbwwbrgbgwwrrwurbwrgwwgbg
|
||||||
|
rrubwubbgggrwrguguguwggwguwrwrgwwggrgubrwbrbwwugwr
|
||||||
|
gbrrrwuggbgwugurubrgbwrgrbwubbgbuwbggbgrwbrrbbrwggbug
|
||||||
|
grbrbrbbwgruurbbrgbrwgurbubuuwruurbwurbgbwwwbuwugrg
|
||||||
|
brbbrubbuguubwgugwururwgbwubguurgwbrbbggwurrgrwubb
|
||||||
|
wbgwgbwgbbggrwwbubwurbuwgwwbuwbrrwwgrwrrgbuuuguwwbubwugbg
|
||||||
|
urbgbbuubgburwgrubguggbbwwggburgrbuuurgrbuuub
|
||||||
|
grbggbwwuggwrbbgrwuwbrguwwwbwrbbbgrwrguubrgrbrwggbbrurgbg
|
||||||
|
rrbwwgbwwrrbrgwbwururrwgrwggbwrbruubrrgurwurggrgubgggubw
|
||||||
|
bgbrrrgwrbuurruuuububwgwuuguggrrbbwbggurrgbgbrgrrwggbbgb
|
||||||
|
ugbbbwuwbrwgbwbggubwwuuwwrgrgwrburgbwbbwbuubbrwgrrgwr
|
||||||
|
buubrbbbrwgwuurwggggubgrggbrwrbgbbbbbwrruuuggbg
|
||||||
|
ubuggbwgbrwrgguguggwurrwrrwubwguurwbwgwbrwrubggubbw
|
||||||
|
bububuurbgrwrrwrbrurruguwubrbrggrwrrwgwurwbguu
|
||||||
|
rubbwrwrwrrgrubwwgbruguburbrbwwrguggrbbwubugrrgwuwgrggbg
|
||||||
|
uwrrruugwgwbwugbrwrbrrburubggbrubbgbguwruwbwrwubgwggwbbugbg
|
||||||
|
gwugrguuwwbbgubbrgguruwwwbguuuuwgurwuwugubbgbg
|
||||||
|
wurrwubuubuwuwbuurrgugwuggbgwrrwbgbwbwguugggrwwgugb
|
||||||
|
wgwgbwwuggruguruuubgbwurrwbbbwwbrugwbgggbg
|
||||||
|
wrwubrubruuubrrgwugbbrguwugrbgwruwburbwuwbrgrubbrwubrrbub
|
||||||
|
wrwuwubruggugrruwbrgbbbgbgbuuurwbwrwgwbuwuugwbbuwwwrbggw
|
||||||
|
rruwbuuwbrbwrgrggwbuurrugruububbwgwbgwggubgubbgwgubgbg
|
||||||
|
buwwgrgwurgbgrbgbgbbrrggbggguwuwgurbwubbbrwbwwuwbu
|
||||||
|
wwbrggrgurwruubbuwwurgbrbbrbuugwbrbwburbgugb
|
||||||
|
bgbgwugwrbburbrwwwgwuwgurwruguwgruuguwgruwbgbwugwb
|
||||||
|
uwwgwuwgggwbrwggbrbbguwrgrbrggugwrbgbugugwrwurrbubb
|
||||||
|
rgbrgrrrwrgrwuwbrrurugurbgbwwwgbuwbrbuugwgrrbwbrgbugbg
|
||||||
|
gwrwgbgrrgbbbbggrrwugbwrwggurbrwrwwbwggubgr
|
||||||
|
bwbwrbrubwrwuwrrbuwbrguwrgbbuggbubrbugugbrbbwrgrurrgbg
|
||||||
|
uuwbwrgubbguubbbguuwugurrurwwgubrbgwgbwrrrrwwbwuuuuruwgbg
|
||||||
|
rbwrgbgbrbuugrwguguuwwuwubbrgggbgwrwrrwgwubww
|
||||||
|
bwwrbwrbbwruubuwrgrbgbwwwuwgurrurrwrguburubuwgbg
|
||||||
|
bgbrrbbrwbuwwgubrwubrugurwguwgugwbwwrubwbbubrgbwrrbwbuwrrgbg
|
||||||
|
bggbruggbwgrwugurbwwubuuuwgbgwruburgbrrwbwugbg
|
||||||
|
rwguwwrguwrggggwrgwrgwwwbwgrggwrubuuubwuuggwwugrbwburrw
|
||||||
|
uwrgbgbbgbbwurugrwwgburgubrwuuwbbwwwbrrrggugrruwugugbwg
|
||||||
|
uuwwbgruuguwgbbrrbubwubbgubbgggbgrwuuwrrgggru
|
||||||
|
ggbugwurwguwwgrbbgwrurgrbbgrwrguwwrwwurguwgrbrwguugwbrrgrg
|
||||||
|
bwrwugburgbbbrbwuugggrrgwrubrrrgbwrrbrwurrrwbb
|
||||||
|
wbwbgrrrrrbbwbbrguguwgururgurrwgwgguwburggggburgwguu
|
||||||
|
uuurgrbgwwrwwwbrurgbggubrrgwwwgbwgbuuwbbbwwurrbwbgbg
|
||||||
|
brubbguwgrugbrbugwrwwbguuugwrwrrwbrrgwbwwwbgwwubwbuwwurrb
|
||||||
|
wbrwbbrurgwguubwrwrwbbuwwgubruwrrgbrugrwwrbubwgbbu
|
||||||
|
guwgggburrwwbwgwggbrgbwrrrrubbggbuurguwrbbgrbwwbg
|
||||||
|
bwuwguuwwugrbgwgwubbguurubbbbbwrwggbggwurrugbb
|
||||||
|
brwgurwbwrrgbguwbubrwgrbrgwwbbuwwrburgbg
|
||||||
|
ubuuwgwgruugrurgububrgwubbuuwbwruwbgbgrwurbugbg
|
||||||
|
wuubwwugrwwbgbbubbguwgruwrbgwguurgbrubgguwu
|
||||||
|
gbwrwggrrrwwgurwurwwruwbuburrgurrwwurrbbgbg
|
||||||
|
rbwbrruwwwwwgbgbburrrrbwurwbugbrgwwgwrwwurbuggr
|
||||||
|
ugwggugubuuuwuwgubggrwgrugwrwubgwgbbugrwgbg
|
||||||
|
rwbggrbruubbbwgrwuwbrwrwbgwrbbwrbrwgggugubgbwugwgugugbruub
|
||||||
|
gwrbgrrbbburwgwwbrurbwbwwuguwrwrbgurburwbbrbgugwrbu
|
||||||
97
20/20-1.py
Executable file
97
20/20-1.py
Executable file
@@ -0,0 +1,97 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
from collections import defaultdict
|
||||||
|
|
||||||
|
file = "./input.txt"
|
||||||
|
cheat_time = 100
|
||||||
|
#file = "./ex.txt"
|
||||||
|
#cheat_time = 25
|
||||||
|
|
||||||
|
from time import time
|
||||||
|
from copy import deepcopy
|
||||||
|
import heapq
|
||||||
|
start_time = time()
|
||||||
|
|
||||||
|
def print_grid(f):
|
||||||
|
for r in f:
|
||||||
|
for s in r:
|
||||||
|
print(s, end="")
|
||||||
|
print()
|
||||||
|
|
||||||
|
def fill_grid(gri:list[list[str]], ma:list[tuple[int,int]], filler:str)->list[list[str]]:
|
||||||
|
result = deepcopy(gri)
|
||||||
|
for m in ma:
|
||||||
|
x , y = m[0],m[1]
|
||||||
|
result[y][x] = filler
|
||||||
|
return result
|
||||||
|
|
||||||
|
|
||||||
|
def read_input(input_file:str, ) -> list[list[str]]:
|
||||||
|
result_grid = []
|
||||||
|
f = open(input_file, "r")
|
||||||
|
for line in f:
|
||||||
|
line = line.strip()
|
||||||
|
if line == "":
|
||||||
|
continue
|
||||||
|
else:
|
||||||
|
temp = []
|
||||||
|
for b in line:
|
||||||
|
temp.append(b)
|
||||||
|
result_grid.append(temp)
|
||||||
|
f.close()
|
||||||
|
return result_grid
|
||||||
|
|
||||||
|
def find_start_end(maze:list[list[str]])->tuple[tuple[int,int],tuple[int,int]]:
|
||||||
|
rows, cols = len(maze), len(maze[0])
|
||||||
|
for r in range(rows):
|
||||||
|
for c in range(cols):
|
||||||
|
if maze[r][c] == 'S':
|
||||||
|
start_point = (r, c)
|
||||||
|
elif maze[r][c] == 'E':
|
||||||
|
end_point = (r, c)
|
||||||
|
return start_point, end_point
|
||||||
|
|
||||||
|
def shortest_path(maze,start,end):
|
||||||
|
rows, cols = len(maze), len(maze[0])
|
||||||
|
# Dijkstra-Algorithmus
|
||||||
|
queue = [(0, start, [])]
|
||||||
|
visited = set()
|
||||||
|
while queue:
|
||||||
|
distance, current, path = heapq.heappop(queue)
|
||||||
|
if current == end:
|
||||||
|
# return distance, path + [current]
|
||||||
|
return distance, [(y, x) for x, y in path + [current]]
|
||||||
|
if current in visited:
|
||||||
|
continue
|
||||||
|
visited.add(current)
|
||||||
|
for dx, dy in [(0, 1), (1, 0), (0, -1), (-1, 0)]:
|
||||||
|
nx, ny = current[0] + dx, current[1] + dy
|
||||||
|
if 0 <= nx < rows and 0 <= ny < cols and maze[nx][ny] != '#':
|
||||||
|
heapq.heappush(queue, (distance + 1, (nx, ny), path + [current]))
|
||||||
|
return None, []
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
grid = read_input(file)
|
||||||
|
p_start, p_end = find_start_end(grid)
|
||||||
|
sol = shortest_path(grid, p_start, p_end)
|
||||||
|
full_path_len = sol[0]
|
||||||
|
#print(sol)
|
||||||
|
#print(f"Shortest Path Length: {sol[0]}")
|
||||||
|
#print_grid(fill_grid(grid,sol[1],"O"))
|
||||||
|
counts = defaultdict(int)
|
||||||
|
for i in range(1,len(grid)-1):
|
||||||
|
for j in range(1,len(grid[0])-1):
|
||||||
|
if grid[i][j] == "#":
|
||||||
|
t_grid = deepcopy(grid)
|
||||||
|
t_grid[i][j] = "."
|
||||||
|
t_sol = shortest_path(t_grid, p_start, p_end)
|
||||||
|
if t_sol and t_sol[0] < sol[0]:
|
||||||
|
counts[abs(t_sol[0]-sol[0])] += 1
|
||||||
|
|
||||||
|
p1_solution = 0
|
||||||
|
print(counts)
|
||||||
|
for key in counts.keys():
|
||||||
|
if key >= cheat_time:
|
||||||
|
p1_solution += counts[key]
|
||||||
|
print(f"Solution Part 1: {p1_solution}")
|
||||||
|
print(f'Runtime: {time()-start_time:.4f} s')
|
||||||
96
20/20-11.py
Executable file
96
20/20-11.py
Executable file
@@ -0,0 +1,96 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
from collections import defaultdict
|
||||||
|
|
||||||
|
file = "./input.txt"
|
||||||
|
cheat_time = 100
|
||||||
|
#file = "./ex.txt"
|
||||||
|
#cheat_time = 25
|
||||||
|
|
||||||
|
from time import time
|
||||||
|
from copy import deepcopy
|
||||||
|
import heapq
|
||||||
|
start_time = time()
|
||||||
|
|
||||||
|
def print_grid(f):
|
||||||
|
for r in f:
|
||||||
|
for s in r:
|
||||||
|
print(s, end="")
|
||||||
|
print()
|
||||||
|
|
||||||
|
def fill_grid(gri:list[list[str]], ma:list[tuple[int,int]], filler:str)->list[list[str]]:
|
||||||
|
result = deepcopy(gri)
|
||||||
|
for m in ma:
|
||||||
|
x , y = m[0],m[1]
|
||||||
|
result[y][x] = filler
|
||||||
|
return result
|
||||||
|
|
||||||
|
|
||||||
|
def read_input(input_file:str, ) -> list[list[str]]:
|
||||||
|
result_grid = []
|
||||||
|
f = open(input_file, "r")
|
||||||
|
for line in f:
|
||||||
|
line = line.strip()
|
||||||
|
if line == "":
|
||||||
|
continue
|
||||||
|
else:
|
||||||
|
temp = []
|
||||||
|
for b in line:
|
||||||
|
temp.append(b)
|
||||||
|
result_grid.append(temp)
|
||||||
|
f.close()
|
||||||
|
return result_grid
|
||||||
|
|
||||||
|
def find_start_end(maze:list[list[str]])->tuple[tuple[int,int],tuple[int,int]]:
|
||||||
|
rows, cols = len(maze), len(maze[0])
|
||||||
|
for r in range(rows):
|
||||||
|
for c in range(cols):
|
||||||
|
if maze[r][c] == 'S':
|
||||||
|
start_point = (r, c)
|
||||||
|
elif maze[r][c] == 'E':
|
||||||
|
end_point = (r, c)
|
||||||
|
return start_point, end_point
|
||||||
|
|
||||||
|
def shortest_path(maze,start,end):
|
||||||
|
rows, cols = len(maze), len(maze[0])
|
||||||
|
# Dijkstra-Algorithmus
|
||||||
|
queue = [(0, start, [])]
|
||||||
|
visited = set()
|
||||||
|
while queue:
|
||||||
|
distance, current, path = heapq.heappop(queue)
|
||||||
|
if current == end:
|
||||||
|
# return distance, path + [current]
|
||||||
|
return distance, [(y, x) for x, y in path + [current]]
|
||||||
|
if current in visited:
|
||||||
|
continue
|
||||||
|
visited.add(current)
|
||||||
|
for dx, dy in [(0, 1), (1, 0), (0, -1), (-1, 0)]:
|
||||||
|
nx, ny = current[0] + dx, current[1] + dy
|
||||||
|
if 0 <= nx < rows and 0 <= ny < cols and maze[nx][ny] != '#':
|
||||||
|
heapq.heappush(queue, (distance + 1, (nx, ny), path + [current]))
|
||||||
|
return None, []
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
grid = read_input(file)
|
||||||
|
p_start, p_end = find_start_end(grid)
|
||||||
|
sol = shortest_path(grid, p_start, p_end)
|
||||||
|
full_path_len = sol[0]
|
||||||
|
#print(sol)
|
||||||
|
#print(f"Shortest Path Length: {sol[0]}")
|
||||||
|
#print_grid(fill_grid(grid,sol[1],"O"))
|
||||||
|
counts = defaultdict(int)
|
||||||
|
for i in range(1,len(grid)-1):
|
||||||
|
for j in range(1,len(grid[0])-1):
|
||||||
|
if grid[i][j] == "#":
|
||||||
|
grid[i][j] = "."
|
||||||
|
t_sol = shortest_path(grid, p_start, p_end)
|
||||||
|
if t_sol and t_sol[0] < sol[0]:
|
||||||
|
counts[abs(t_sol[0]-sol[0])] += 1
|
||||||
|
grid[i][j] = "#"
|
||||||
|
p1_solution = 0
|
||||||
|
print(counts)
|
||||||
|
for key in counts.keys():
|
||||||
|
if key >= cheat_time:
|
||||||
|
p1_solution += counts[key]
|
||||||
|
print(f"Solution Part 1: {p1_solution}")
|
||||||
|
print(f'Runtime: {time()-start_time:.4f} s')
|
||||||
15
20/ex.txt
Normal file
15
20/ex.txt
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
###############
|
||||||
|
#...#...#.....#
|
||||||
|
#.#.#.#.#.###.#
|
||||||
|
#S#...#.#.#...#
|
||||||
|
#######.#.#.###
|
||||||
|
#######.#.#...#
|
||||||
|
#######.#.###.#
|
||||||
|
###..E#...#...#
|
||||||
|
###.#######.###
|
||||||
|
#...###...#...#
|
||||||
|
#.#####.#.###.#
|
||||||
|
#.#...#.#.#...#
|
||||||
|
#.#.#.#.#.#.###
|
||||||
|
#...#...#...###
|
||||||
|
###############
|
||||||
141
20/input.txt
Normal file
141
20/input.txt
Normal file
@@ -0,0 +1,141 @@
|
|||||||
|
#############################################################################################################################################
|
||||||
|
#.....#.....#.......#.......#...#.....###...#######...#.........#...#...###...###.....#.....#...#...#...#...#...................#.......#...#
|
||||||
|
#.###.#.###.#.#####.#.#####.#.#.#.###.###.#.#######.#.#.#######.#.#.#.#.###.#.###.###.#.###.#.#.#.#.#.#.#.#.#.#################.#.#####.#.#.#
|
||||||
|
#...#.#...#.#.#.....#.....#.#.#.#.#...#...#...###...#.#.......#...#.#.#.....#...#...#.#.#...#.#.#.#...#.#.#.#.........#.........#.....#...#.#
|
||||||
|
###.#.###.#.#.#.#########.#.#.#.#.#.###.#####.###.###.#######.#####.#.#########.###.#.#.#.###.#.#.#####.#.#.#########.#.#############.#####.#
|
||||||
|
#...#.....#...#.....###...#.#.#...#...#.....#.#...#...#.......#...#.#...#.......#...#.#.#.###.#.#.#.....#.#.###...#...#.......#...###.#.....#
|
||||||
|
#.#################.###.###.#.#######.#####.#.#.###.###.#######.#.#.###.#.#######.###.#.#.###.#.#.#.#####.#.###.#.#.#########.#.#.###.#.#####
|
||||||
|
#.............#...#...#...#.#.#.......#...#.#.#.#...###.....#...#...#...#.#...#...#...#.#.....#.#.#.#...#.#.#...#.#.#.........#.#.....#.#...#
|
||||||
|
#############.#.#.###.###.#.#.#.#######.#.#.#.#.#.#########.#.#######.###.#.#.#.###.###.#######.#.#.#.#.#.#.#.###.#.#.#########.#######.#.#.#
|
||||||
|
###...###.....#.#...#...#.#.#.#.#.....#.#.#.#.#.#...###...#.#.......#...#.#.#.#.#...###.......#.#.#.#.#.#.#.#...#.#.#.#...#...#.......#...#.#
|
||||||
|
###.#.###.#####.###.###.#.#.#.#.#.###.#.#.#.#.#.###.###.#.#.#######.###.#.#.#.#.#.###########.#.#.#.#.#.#.#.###.#.#.#.#.#.#.#.#######.#####.#
|
||||||
|
#...#...#.......###...#...#...#...#...#.#...#.#...#.#...#.#.#.......#...#.#.#...#...#...#...#.#...#...#...#.#...#...#...#.#.#.#.....#...#...#
|
||||||
|
#.#####.#############.#############.###.#####.###.#.#.###.#.#.#######.###.#.#######.#.#.#.#.#.#############.#.###########.#.#.#.###.###.#.###
|
||||||
|
#.....#.#...#...#...#.....#.........###.#...#...#.#.#...#.#.#.###...#.#...#.#.......#.#.#.#.#.#...........#...#.....#.....#.#.#.#...#...#...#
|
||||||
|
#####.#.#.#.#.#.#.#.#####.#.###########.#.#.###.#.#.###.#.#.#.###.#.#.#.###.#.#######.#.#.#.#.#.#########.#####.###.#.#####.#.#.#.###.#####.#
|
||||||
|
#.....#...#...#...#.#...#.#.#...###...#...#...#...#...#.#...#...#.#.#.#...#.#...#...#.#.#.#.#...#...###...#.....###...#.....#.#.#.#...#.....#
|
||||||
|
#.#################.#.#.#.#.#.#.###.#.#######.#######.#.#######.#.#.#.###.#.###.#.#.#.#.#.#.#####.#.###.###.###########.#####.#.#.#.###.#####
|
||||||
|
#.................#.#.#.#.#.#.#...#.#.###...#.....#...#.....#...#.#...#...#.#...#.#.#.#.#.#.###...#...#.#...#...#.......#.....#.#.#.#...#...#
|
||||||
|
#################.#.#.#.#.#.#.###.#.#.###.#.#####.#.#######.#.###.#####.###.#.###.#.#.#.#.#.###.#####.#.#.###.#.#.#######.#####.#.#.#.###.#.#
|
||||||
|
#.......#...#.....#...#.#.#.#.#...#.#.#...#.###...#.###.....#...#...#...###.#.....#.#.#...#...#.....#.#.#.###.#...#...#...###...#.#.#.#...#.#
|
||||||
|
#.#####.#.#.#.#########.#.#.#.#.###.#.#.###.###.###.###.#######.###.#.#####.#######.#.#######.#####.#.#.#.###.#####.#.#.#####.###.#.#.#.###.#
|
||||||
|
#.#...#...#...#...#...#...#...#...#.#.#...#...#...#...#.....#...#...#.#...#.#.......#.....#...#...#.#...#.....#.....#...#...#...#.#.#...#...#
|
||||||
|
#.#.#.#########.#.#.#.###########.#.#.###.###.###.###.#####.#.###.###.#.#.#.#.###########.#.###.#.#.###########.#########.#.###.#.#.#####.###
|
||||||
|
#...#...........#...#...........#...#...#...#...#.#...#...#.#...#...#...#.#.#.###...###...#...#.#.#.....#.......###...#...#.....#...#...#...#
|
||||||
|
###############################.#######.###.###.#.#.###.#.#.###.###.#####.#.#.###.#.###.#####.#.#.#####.#.#########.#.#.#############.#.###.#
|
||||||
|
###.............###...#...###...#.......#...#...#.#.....#.#...#...#.#.....#.#.#...#.#...#...#.#.#.....#.#.#...#...#.#...#...#...#...#.#...#.#
|
||||||
|
###.###########.###.#.#.#.###.###.#######.###.###.#######.###.###.#.#.#####.#.#.###.#.###.#.#.#.#####.#.#.#.#.#.#.#.#####.#.#.#.#.#.#.###.#.#
|
||||||
|
#...#...#...#...#...#...#...#...#.......#...#...#.......#.....#...#.#.#...#.#.#.#...#.#...#.#.#.....#...#.#.#...#...#.....#.#.#...#...#...#.#
|
||||||
|
#.###.#.#.#.#.###.#########.###.#######.###.###.#######.#######.###.#.#.#.#.#.#.#.###.#.###.#.#####.#####.#.#########.#####.#.#########.###.#
|
||||||
|
#.....#...#.#.#...#.......#...#.#.......###.#...#.....#.......#.###.#...#.#.#...#...#...#...#...###.....#...#...#...#...###...#.......#...#.#
|
||||||
|
###########.#.#.###.#####.###.#.#.#########.#.###.###.#######.#.###.#####.#.#######.#####.#####.#######.#####.#.#.#.###.#######.#####.###.#.#
|
||||||
|
#...#...#...#...#...#...#.#...#.#...#...#...#...#...#.#...#...#...#.#.....#.......#...#...#.....#.....#.#.....#...#...#...#...#.#.....###...#
|
||||||
|
#.#.#.#.#.#######.###.#.#.#.###.###.#.#.#.#####.###.#.#.#.#.#####.#.#.###########.###.#.###.#####.###.#.#.###########.###.#.#.#.#.###########
|
||||||
|
#.#.#.#.#.........#...#...#.....#...#.#.#...#...###.#.#.#.#.....#.#.#.#...###...#.#...#...#.#...#...#.#.#...........#...#...#...#.......#...#
|
||||||
|
#.#.#.#.###########.#############.###.#.###.#.#####.#.#.#.#####.#.#.#.#.#.###.#.#.#.#####.#.#.#.###.#.#.###########.###.###############.#.#.#
|
||||||
|
#.#...#.#...#...###.#...........#.#...#...#.#...#...#...#.#...#.#.#.#.#.#...#.#.#.#.#.....#.#.#...#.#.#.#...#.......###.................#.#.#
|
||||||
|
#.#####.#.#.#.#.###.#.#########.#.#.#####.#.###.#.#######.#.#.#.#.#.#.#.###.#.#.#.#.#.#####.#.###.#.#.#.#.#.#.###########################.#.#
|
||||||
|
#.#...#...#...#.#...#.#.........#...#...#...#...#.....#...#.#...#.#.#.#...#...#...#.#...#...#.###...#.#.#.#...#.....#...#...#...#...#...#.#.#
|
||||||
|
#.#.#.#########.#.###.#.#############.#.#####.#######.#.###.#####.#.#.###.#########.###.#.###.#######.#.#.#####.###.#.#.#.#.#.#.#.#.#.#.#.#.#
|
||||||
|
#.#.#.........#.#.#...#.......#.......#.....#.#...#...#...#.....#.#.#.#...#.........#...#...#.#.......#.#.....#.#...#.#...#...#...#...#...#.#
|
||||||
|
#.#.#########.#.#.#.#########.#.###########.#.#.#.#.#####.#####.#.#.#.#.###.#########.#####.#.#.#######.#####.#.#.###.#####################.#
|
||||||
|
#...###...#...#...#.#.....#...#.#.........#.#...#.#.#####...#...#.#.#...###...#.....#.....#...#.........#...#.#.#.....#...#...#.............#
|
||||||
|
#######.#.#.#######.#.###.#.###.#.#######.#.#####.#.#######.#.###.#.#########.#.###.#####.###############.#.#.#.#######.#.#.#.#.#############
|
||||||
|
#.......#...#.....#.#...#.#.....#.......#.#.....#.#...#.....#.#...#.###.......#.#...#...#.###...#.........#...#.#.......#...#...#...###.....#
|
||||||
|
#.###########.###.#.###.#.#############.#.#####.#.###.#.#####.#.###.###.#######.#.###.#.#.###.#.#.#############.#.###############.#.###.###.#
|
||||||
|
#...........#...#.#.#...#.#.............#...#...#...#.#.#.....#...#...#...#...#.#...#.#.#.....#.#.............#.#...........#.....#...#...#.#
|
||||||
|
###########.###.#.#.#.###.#.###############.#.#####.#.#.#.#######.###.###.#.#.#.###.#.#.#######.#############.#.###########.#.#######.###.#.#
|
||||||
|
###...#.....#...#...#...#.#...#...........#...#...#...#.#.###.....#...###...#.#.#...#.#.#.....#.###...........#.#...........#.#.......#...#.#
|
||||||
|
###.#.#.#####.#########.#.###.#.#########.#####.#.#####.#.###.#####.#########.#.#.###.#.#.###.#.###.###########.#.###########.#.#######.###.#
|
||||||
|
#...#...#.....#...#.....#.....#.#.......#...###.#.....#.#.#...#...#.#.........#.#...#.#.#...#.#.#...#...........#...#...#...#.#...#...#.#...#
|
||||||
|
#.#######.#####.#.#.###########.#.#####.###.###.#####.#.#.#.###.#.#.#.#########.###.#.#.###.#.#.#.###.#############.#.#.#.#.#.###.#.#.#.#.###
|
||||||
|
#.......#.#.....#...#...#.....#.#...###.....#...#.....#...#.#...#.#.#.....#...#.#...#.#.#...#...#...#.#.........#...#.#...#.#.#...#.#...#...#
|
||||||
|
#######.#.#.#########.#.#.###.#.###.#########.###.#########.#.###.#.#####.#.#.#.#.###.#.#.#########.#.#.#######.#.###.#####.#.#.###.#######.#
|
||||||
|
#.......#.#.........#.#...###...###...........#...###...###...#...#...#...#.#...#...#.#.#.....#...#...#.......#.#.....#...#...#...#...#...#.#
|
||||||
|
#.#######.#########.#.#########################.#####.#.#######.#####.#.###.#######.#.#.#####.#.#.###########.#.#######.#.#######.###.#.#.#.#
|
||||||
|
#.......#.###...#...#...#...#...###...#...#...#.....#.#.......#.#...#.#...#.......#...#.#...#.#.#.............#...#.....#...#...#.....#.#.#.#
|
||||||
|
#######.#.###.#.#.#####.#.#.#.#.###.#.#.#.#.#.#####.#.#######.#.#.#.#.###.#######.#####.#.#.#.#.#################.#.#######.#.#.#######.#.#.#
|
||||||
|
#.....#.#.#...#.#.......#.#.#.#.....#...#...#.#...#...#.......#.#.#...###...#...#.#.....#.#...#.................#.#.#...###...#...#...#.#.#.#
|
||||||
|
#.###.#.#.#.###.#########.#.#.###############.#.#.#####.#######.#.#########.#.#.#.#.#####.#####################.#.#.#.#.#########.#.#.#.#.#.#
|
||||||
|
#...#.#...#...#...........#...#.....#.......#...#...#...#...###.#.....#.....#.#...#.......#...#.................#...#.#.#...#...#...#...#...#
|
||||||
|
###.#.#######.#################.###.#.#####.#######.#.###.#.###.#####.#.#####.#############.#.#.#####################.#.#.#.#.#.#############
|
||||||
|
#...#.###...#.............#...#.###...#...#.....#...#.....#...#...#...#.#...#...#...#.......#.#.................#.....#...#.#.#.............#
|
||||||
|
#.###.###.#.#############.#.#.#.#######.#.#####.#.###########.###.#.###.#.#.###.#.#.#.#######.#################.#.#########.#.#############.#
|
||||||
|
#...#.#...#.....#.........#.#...#.......#.......#.#...#...#...###.#...#.#.#...#...#.#...#...#.#.................#...#.......#.#.............#
|
||||||
|
###.#.#.#######.#.#########.#####.###############.#.#.#.#.#.#####.###.#.#.###.#####.###.#.#.#.#.###################.#.#######.#.#############
|
||||||
|
#...#.#.......#.#...........#...#.............###...#.#.#.#.....#...#.#.#.###.....#.###...#.#...#.....#.........#...#.........#...#.........#
|
||||||
|
#.###.#######.#.#############.#.#############.#######.#.#.#####.###.#.#.#.#######.#.#######.#####.###.#.#######.#.###############.#.#######.#
|
||||||
|
#...#.........#...#...........#.........#...#.......#...#.......#...#.#.#.#.......#.#...###.#...#.###...#.....#...#.....#...#...#...#...#...#
|
||||||
|
###.#############.#.###################.#.#.#######.#############.###.#.#.#.#######.#.#.###.#.#.#.#######.###.#####.###.#.#.#.#.#####.#.#.###
|
||||||
|
#...#...........#.#...................#...#.........#######S..###.....#...#.....#...#.#.....#.#.#.#.......###.....#...#...#...#.......#.#...#
|
||||||
|
#.###.#########.#.###################.#######################.#################.#.###.#######.#.#.#.#############.###.#################.###.#
|
||||||
|
#.....#.........#.....................#################.....#...#...#...#...###...###...#...#.#...#.......#.....#...#...#.........#...#...#.#
|
||||||
|
#######.###############################################.###.###.#.#.#.#.#.#.###########.#.#.#.###########.#.###.###.###.#.#######.#.#.###.#.#
|
||||||
|
###...#.............#..............E#################...###...#.#.#...#...#.#...........#.#...###.........#.#...###...#...#.....#...#.###...#
|
||||||
|
###.#.#############.#.###############################.#######.#.#.#########.#.###########.#######.#########.#.#######.#####.###.#####.#######
|
||||||
|
#...#...........###...#.........................#####.......#...#.....#...#.#.............###...#.....#.....#.#.....#.......###.....#.......#
|
||||||
|
#.#############.#######.#######################.###########.#########.#.#.#.#################.#.#####.#.#####.#.###.###############.#######.#
|
||||||
|
#...#.....#...#...#...#.......................#.#...#.....#...#.....#.#.#...#...........#.....#.....#...#.....#...#...........#...#.........#
|
||||||
|
###.#.###.#.#.###.#.#.#######################.#.#.#.#.###.###.#.###.#.#.#####.#########.#.#########.#####.#######.###########.#.#.###########
|
||||||
|
#...#.#...#.#...#.#.#...#.....#...#...........#.#.#...###.....#...#...#.#...#.........#.#.....#...#.......#.....#.#.........#...#...........#
|
||||||
|
#.###.#.###.###.#.#.###.#.###.#.#.#.###########.#.###############.#####.#.#.#########.#.#####.#.#.#########.###.#.#.#######.###############.#
|
||||||
|
#.....#.....###.#.#...#.#...#...#...#...#...#...#.#.......#...###.....#.#.#...#...#...#.#...#...#...........#...#.#.......#.#.....#.........#
|
||||||
|
###############.#.###.#.###.#########.#.#.#.#.###.#.#####.#.#.#######.#.#.###.#.#.#.###.#.#.#################.###.#######.#.#.###.#.#########
|
||||||
|
#.....#.....#...#.....#.....#.......#.#.#.#.#.....#.....#...#.#...###.#.#.#...#.#.#...#...#.###...#...#.....#.....#...#...#...###.#.......###
|
||||||
|
#.###.#.###.#.###############.#####.#.#.#.#.###########.#####.#.#.###.#.#.#.###.#.###.#####.###.#.#.#.#.###.#######.#.#.#########.#######.###
|
||||||
|
#...#.#...#...#.............#.....#...#...#...#.....###...#...#.#...#.#.#.#.#...#.###.....#...#.#...#.#...#...#.....#.#.....#...#.......#...#
|
||||||
|
###.#.###.#####.###########.#####.###########.#.###.#####.#.###.###.#.#.#.#.#.###.#######.###.#.#####.###.###.#.#####.#####.#.#.#######.###.#
|
||||||
|
#...#...#...#...#...........#.....#...........#.#...#...#.#...#.#...#.#.#.#...#...#...###...#...#...#...#...#.#...###.......#.#.......#.....#
|
||||||
|
#.#####.###.#.###.###########.#####.###########.#.###.#.#.###.#.#.###.#.#.#####.###.#.#####.#####.#.###.###.#.###.###########.#######.#######
|
||||||
|
#.....#.....#...#...#...#...#...###.#...#.......#...#.#.#...#.#.#.#...#.#.....#...#.#.....#.......#...#.....#...#...###...###.#.......#.....#
|
||||||
|
#####.#########.###.#.#.#.#.###.###.#.#.#.#########.#.#.###.#.#.#.#.###.#####.###.#.#####.###########.#########.###.###.#.###.#.#######.###.#
|
||||||
|
#.....#.....#...###...#...#...#.#...#.#...#.........#.#.....#...#...#...#.....#...#.#.....#.....#.....#.......#...#.....#.....#.......#.#...#
|
||||||
|
#.#####.###.#.###############.#.#.###.#####.#########.###############.###.#####.###.#.#####.###.#.#####.#####.###.###################.#.#.###
|
||||||
|
#.......#...#.#...#...........#.#.....#...#.#...#...#.......#.....#...###.....#...#.#.....#...#.#.......#.....###...#.................#.#...#
|
||||||
|
#########.###.#.#.#.###########.#######.#.#.#.#.#.#.#######.#.###.#.#########.###.#.#####.###.#.#########.#########.#.#################.###.#
|
||||||
|
#.........#...#.#.#.......#...#...#.....#.#...#...#.#.......#.#...#.###.....#.#...#.....#.#...#.....#...#...###...#.#...................#...#
|
||||||
|
#.#########.###.#.#######.#.#.###.#.#####.#########.#.#######.#.###.###.###.#.#.#######.#.#.#######.#.#.###.###.#.#.#####################.###
|
||||||
|
#...........#...#.......#...#.....#.....#.#...#...#.#.........#...#...#...#.#.#.....###.#...#.......#.#.....#...#.#...#.....#...#...#...#...#
|
||||||
|
#############.#########.###############.#.#.#.#.#.#.#############.###.###.#.#.#####.###.#####.#######.#######.###.###.#.###.#.#.#.#.#.#.###.#
|
||||||
|
#...........#.........#...#.....###.....#...#...#...#...###...###...#...#.#.#.....#...#.....#.###...#.........#...###...###...#...#...#...#.#
|
||||||
|
#.#########.#########.###.#.###.###.#################.#.###.#.#####.###.#.#.#####.###.#####.#.###.#.###########.#########################.#.#
|
||||||
|
#.#.....#...#...#...#.#...#...#.....#.....#...#...#...#.#...#.....#...#...#...###...#.#.....#...#.#.#...#.......#...#...#...........#.....#.#
|
||||||
|
#.#.###.#.###.#.#.#.#.#.#####.#######.###.#.#.#.#.#.###.#.#######.###.#######.#####.#.#.#######.#.#.#.#.#.#######.#.#.#.#.#########.#.#####.#
|
||||||
|
#...#...#.....#...#...#.......#.....#.#...#.#.#.#.#...#.#...#.....###.#.......#...#.#.#.....#...#.#.#.#.#.........#...#...#.........#.....#.#
|
||||||
|
#####.#########################.###.#.#.###.#.#.#.###.#.###.#.#######.#.#######.#.#.#.#####.#.###.#.#.#.###################.#############.#.#
|
||||||
|
#...#.................#...#...#...#.#.#...#.#.#.#.#...#.#...#.....#...#...#...#.#.#.#.#...#.#...#.#...#.#...#...#...#...#...#...........#.#.#
|
||||||
|
#.#.#################.#.#.#.#.###.#.#.###.#.#.#.#.#.###.#.#######.#.#####.#.#.#.#.#.#.#.#.#.###.#.#####.#.#.#.#.#.#.#.#.#.###.#########.#.#.#
|
||||||
|
#.#...................#.#...#.#...#.#.#...#.#...#...#...#.#...#...#.....#.#.#.#.#.#.#.#.#...#...#.....#.#.#...#...#.#.#...###.#.........#.#.#
|
||||||
|
#.#####################.#####.#.###.#.#.###.#########.###.#.#.#.#######.#.#.#.#.#.#.#.#.#####.#######.#.#.#########.#.#######.#.#########.#.#
|
||||||
|
#...#...#.......#.....#.###...#.#...#.#...#.........#...#.#.#...#.......#.#.#.#.#.#.#.#...#...#...#...#.#.....#.....#.......#.#.#...#...#...#
|
||||||
|
###.#.#.#.#####.#.###.#.###.###.#.###.###.#########.###.#.#.#####.#######.#.#.#.#.#.#.###.#.###.#.#.###.#####.#.###########.#.#.#.#.#.#.#####
|
||||||
|
#...#.#...#.....#.#...#.#...#...#...#.#...#...#...#.#...#.#.#...#...#.....#.#.#.#.#.#...#.#.#...#.#.###.#.....#.#.........#...#...#...#.....#
|
||||||
|
#.###.#####.#####.#.###.#.###.#####.#.#.###.#.#.#.#.#.###.#.#.#.###.#.#####.#.#.#.#.###.#.#.#.###.#.###.#.#####.#.#######.#################.#
|
||||||
|
#.#...#.....#...#.#.#...#...#.#...#...#.#...#.#.#.#.#...#.#...#.#...#...#...#.#.#.#.###.#.#.#.#...#...#.#.....#.#...#...#.....#...#.........#
|
||||||
|
#.#.###.#####.#.#.#.#.#####.#.#.#.#####.#.###.#.#.#.###.#.#####.#.#####.#.###.#.#.#.###.#.#.#.#.#####.#.#####.#.###.#.#.#####.#.#.#.#########
|
||||||
|
#.#...#.......#.#.#...#...#.#.#.#.###...#...#...#.#...#.#.#.....#...###...###.#.#.#...#.#.#.#.#...#...#.#.....#...#...#...###...#.#...#...###
|
||||||
|
#.###.#########.#.#####.#.#.#.#.#.###.#####.#####.###.#.#.#.#######.#########.#.#.###.#.#.#.#.###.#.###.#.#######.#######.#######.###.#.#.###
|
||||||
|
#.....#.........#.#.....#...#...#...#...#...#...#.....#.#.#...#...#.........#.#.#.#...#.#.#...###.#...#.#.......#...#...#.......#...#.#.#...#
|
||||||
|
#######.#########.#.###############.###.#.###.#.#######.#.###.#.#.#########.#.#.#.#.###.#.#######.###.#.#######.###.#.#.#######.###.#.#.###.#
|
||||||
|
###...#.......#...#.............#...#...#...#.#.........#...#.#.#.#...#.....#...#.#...#.#.#.......#...#.#.......###.#.#.#.......#...#...#...#
|
||||||
|
###.#.#######.#.###############.#.###.#####.#.#############.#.#.#.#.#.#.#########.###.#.#.#.#######.###.#.#########.#.#.#.#######.#######.###
|
||||||
|
#...#.........#.###.............#...#...#...#.#.......#.....#...#.#.#...#.......#.#...#.#.#.......#.###...###.......#.#.#.......#...#...#...#
|
||||||
|
#.#############.###.###############.###.#.###.#.#####.#.#########.#.#####.#####.#.#.###.#.#######.#.#########.#######.#.#######.###.#.#.###.#
|
||||||
|
#...#.........#.#...#...#...#...#...#...#...#...#...#.#.###...#...#.......#...#.#.#...#...#.......#.....#...#.....#...#.#.....#...#.#.#.#...#
|
||||||
|
###.#.#######.#.#.###.#.#.#.#.#.#.###.#####.#####.#.#.#.###.#.#.###########.#.#.#.###.#####.###########.#.#.#####.#.###.#.###.###.#.#.#.#.###
|
||||||
|
###.#.#.......#.#.#...#...#.#.#...###.#.....###...#...#...#.#...#...#...#...#...#...#.....#.#...#.....#...#...#...#.#...#...#...#.#.#.#.#...#
|
||||||
|
###.#.#.#######.#.#.#######.#.#######.#.#######.#########.#.#####.#.#.#.#.#########.#####.#.#.#.#.###.#######.#.###.#.#####.###.#.#.#.#.###.#
|
||||||
|
#...#.#.......#.#.#.....#...#.#.......#.......#.......#...#.....#.#.#.#.#.........#.#.....#...#.#.#...#.....#.#.#...#...#...###.#.#...#...#.#
|
||||||
|
#.###.#######.#.#.#####.#.###.#.#############.#######.#.#######.#.#.#.#.#########.#.#.#########.#.#.###.###.#.#.#.#####.#.#####.#.#######.#.#
|
||||||
|
#...#...#.....#.#.#.....#.#...#.#.....#.....#.###.....#.#.......#.#...#...#...#...#.#.......#...#.#...#...#.#.#.#.#.....#.....#...#.......#.#
|
||||||
|
###.###.#.#####.#.#.#####.#.###.#.###.#.###.#.###.#####.#.#######.#######.#.#.#.###.#######.#.###.###.###.#.#.#.#.#.#########.#####.#######.#
|
||||||
|
###.....#.....#.#...#.....#.###...#...#...#...#...#...#.#...#...#.......#...#.#.###.#...#...#.#...#...#...#...#.#.#...#.....#.....#.......#.#
|
||||||
|
#############.#.#####.#####.#######.#####.#####.###.#.#.###.#.#.#######.#####.#.###.#.#.#.###.#.###.###.#######.#.###.#.###.#####.#######.#.#
|
||||||
|
#.............#.###...#...#.#...###...#...#.....#...#.#.#...#.#.#...#...#...#.#...#...#...#...#...#...#.......#.#.###.#.#...#.....#...###.#.#
|
||||||
|
#.#############.###.###.#.#.#.#.#####.#.###.#####.###.#.#.###.#.#.#.#.###.#.#.###.#########.#####.###.#######.#.#.###.#.#.###.#####.#.###.#.#
|
||||||
|
#...#...#.....#.#...#...#.#.#.#.......#...#.#...#...#...#...#.#...#.#.....#.#...#.......#...#.....###...#.....#...#...#.#...#.......#...#.#.#
|
||||||
|
###.#.#.#.###.#.#.###.###.#.#.###########.#.#.#.###.#######.#.#####.#######.###.#######.#.###.#########.#.#########.###.###.###########.#.#.#
|
||||||
|
#...#.#.#.#...#.#...#.#...#.#.#...#.....#.#.#.#.#...#.......#.....#.#...#...#...#...#...#...#.....#.....#.........#.#...###...#.....#...#.#.#
|
||||||
|
#.###.#.#.#.###.###.#.#.###.#.#.#.#.###.#.#.#.#.#.###.###########.#.#.#.#.###.###.#.#.#####.#####.#.#############.#.#.#######.#.###.#.###.#.#
|
||||||
|
#.....#...#.....###...#.....#...#...###...#...#...###.............#...#...###.....#...#####.......#...............#...#######...###...###...#
|
||||||
|
#############################################################################################################################################
|
||||||
69
24/24-01.py
Normal file
69
24/24-01.py
Normal file
@@ -0,0 +1,69 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
|
from time import time
|
||||||
|
from copy import deepcopy
|
||||||
|
import re
|
||||||
|
|
||||||
|
start_time = time()
|
||||||
|
|
||||||
|
file = "./input.txt"
|
||||||
|
# file = "./ex-small.txt"
|
||||||
|
# file = "./ex-big.txt"
|
||||||
|
|
||||||
|
|
||||||
|
def read_and_parse(input_file: str) -> tuple[dict[str:int], list[tuple[str, str, str, str]]]:
|
||||||
|
result_dict = {}
|
||||||
|
with open(input_file, 'r') as d:
|
||||||
|
datei = d.read()
|
||||||
|
pat_dict = r'(.+)\: +(\d)'
|
||||||
|
pat_list = r'(.+) +(.+) +(.+) +\-\> +(.+)'
|
||||||
|
match_d = re.findall(pat_dict, datei)
|
||||||
|
# print(match_d)
|
||||||
|
for d in match_d:
|
||||||
|
result_dict[d[0]] = int(d[1])
|
||||||
|
match_l = re.findall(pat_list, datei)
|
||||||
|
# print(match_l)
|
||||||
|
return result_dict, match_l
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
in_dict, in_list = read_and_parse(file)
|
||||||
|
var_found = True
|
||||||
|
while var_found:
|
||||||
|
var_found = False
|
||||||
|
temp = []
|
||||||
|
for e in in_list:
|
||||||
|
if e[0] in in_dict and e[2] in in_dict:
|
||||||
|
var_found = True
|
||||||
|
if e[1] == "AND":
|
||||||
|
if in_dict[e[0]] == 1 and in_dict[e[2]] == 1:
|
||||||
|
in_dict[e[3]] = 1
|
||||||
|
else:
|
||||||
|
in_dict[e[3]] = 0
|
||||||
|
elif e[1] == "OR":
|
||||||
|
if in_dict[e[0]] == 1 or in_dict[e[2]] == 1:
|
||||||
|
in_dict[e[3]] = 1
|
||||||
|
else:
|
||||||
|
in_dict[e[3]] = 0
|
||||||
|
elif e[1] == "XOR":
|
||||||
|
if in_dict[e[0]] != in_dict[e[2]]:
|
||||||
|
in_dict[e[3]] = 1
|
||||||
|
else:
|
||||||
|
in_dict[e[3]] = 0
|
||||||
|
else:
|
||||||
|
temp.append(e)
|
||||||
|
in_list = deepcopy(temp)
|
||||||
|
|
||||||
|
print()
|
||||||
|
print(in_dict)
|
||||||
|
print(in_list)
|
||||||
|
|
||||||
|
z_keys = sorted([key for key in in_dict if key.startswith("z")], reverse=True)
|
||||||
|
print(z_keys)
|
||||||
|
sol = ""
|
||||||
|
for z in z_keys:
|
||||||
|
sol += str(in_dict[z])
|
||||||
|
print(sol)
|
||||||
|
print(f'Solution Part1: {int(sol, 2)}')
|
||||||
|
print(f'Runtime: {time() - start_time:.2f} s')
|
||||||
47
24/ex-big.txt
Normal file
47
24/ex-big.txt
Normal file
@@ -0,0 +1,47 @@
|
|||||||
|
x00: 1
|
||||||
|
x01: 0
|
||||||
|
x02: 1
|
||||||
|
x03: 1
|
||||||
|
x04: 0
|
||||||
|
y00: 1
|
||||||
|
y01: 1
|
||||||
|
y02: 1
|
||||||
|
y03: 1
|
||||||
|
y04: 1
|
||||||
|
|
||||||
|
ntg XOR fgs -> mjb
|
||||||
|
y02 OR x01 -> tnw
|
||||||
|
kwq OR kpj -> z05
|
||||||
|
x00 OR x03 -> fst
|
||||||
|
tgd XOR rvg -> z01
|
||||||
|
vdt OR tnw -> bfw
|
||||||
|
bfw AND frj -> z10
|
||||||
|
ffh OR nrd -> bqk
|
||||||
|
y00 AND y03 -> djm
|
||||||
|
y03 OR y00 -> psh
|
||||||
|
bqk OR frj -> z08
|
||||||
|
tnw OR fst -> frj
|
||||||
|
gnj AND tgd -> z11
|
||||||
|
bfw XOR mjb -> z00
|
||||||
|
x03 OR x00 -> vdt
|
||||||
|
gnj AND wpb -> z02
|
||||||
|
x04 AND y00 -> kjc
|
||||||
|
djm OR pbm -> qhw
|
||||||
|
nrd AND vdt -> hwm
|
||||||
|
kjc AND fst -> rvg
|
||||||
|
y04 OR y02 -> fgs
|
||||||
|
y01 AND x02 -> pbm
|
||||||
|
ntg OR kjc -> kwq
|
||||||
|
psh XOR fgs -> tgd
|
||||||
|
qhw XOR tgd -> z09
|
||||||
|
pbm OR djm -> kpj
|
||||||
|
x03 XOR y03 -> ffh
|
||||||
|
x00 XOR y04 -> ntg
|
||||||
|
bfw OR bqk -> z06
|
||||||
|
nrd XOR fgs -> wpb
|
||||||
|
frj XOR qhw -> z04
|
||||||
|
bqk OR frj -> z07
|
||||||
|
y03 OR x01 -> nrd
|
||||||
|
hwm AND bqk -> z03
|
||||||
|
tgd XOR rvg -> z12
|
||||||
|
tnw OR pbm -> gnj
|
||||||
10
24/ex-small.txt
Normal file
10
24/ex-small.txt
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
x00: 1
|
||||||
|
x01: 1
|
||||||
|
x02: 1
|
||||||
|
y00: 0
|
||||||
|
y01: 1
|
||||||
|
y02: 0
|
||||||
|
|
||||||
|
x00 AND y00 -> z00
|
||||||
|
x01 XOR y01 -> z01
|
||||||
|
x02 OR y02 -> z02
|
||||||
313
24/input.txt
Normal file
313
24/input.txt
Normal file
@@ -0,0 +1,313 @@
|
|||||||
|
x00: 1
|
||||||
|
x01: 1
|
||||||
|
x02: 1
|
||||||
|
x03: 1
|
||||||
|
x04: 0
|
||||||
|
x05: 1
|
||||||
|
x06: 0
|
||||||
|
x07: 1
|
||||||
|
x08: 0
|
||||||
|
x09: 1
|
||||||
|
x10: 1
|
||||||
|
x11: 1
|
||||||
|
x12: 1
|
||||||
|
x13: 1
|
||||||
|
x14: 0
|
||||||
|
x15: 1
|
||||||
|
x16: 1
|
||||||
|
x17: 0
|
||||||
|
x18: 0
|
||||||
|
x19: 1
|
||||||
|
x20: 1
|
||||||
|
x21: 0
|
||||||
|
x22: 1
|
||||||
|
x23: 1
|
||||||
|
x24: 0
|
||||||
|
x25: 0
|
||||||
|
x26: 0
|
||||||
|
x27: 0
|
||||||
|
x28: 1
|
||||||
|
x29: 1
|
||||||
|
x30: 1
|
||||||
|
x31: 0
|
||||||
|
x32: 1
|
||||||
|
x33: 0
|
||||||
|
x34: 1
|
||||||
|
x35: 1
|
||||||
|
x36: 1
|
||||||
|
x37: 0
|
||||||
|
x38: 1
|
||||||
|
x39: 1
|
||||||
|
x40: 0
|
||||||
|
x41: 0
|
||||||
|
x42: 0
|
||||||
|
x43: 1
|
||||||
|
x44: 1
|
||||||
|
y00: 1
|
||||||
|
y01: 1
|
||||||
|
y02: 1
|
||||||
|
y03: 1
|
||||||
|
y04: 1
|
||||||
|
y05: 0
|
||||||
|
y06: 0
|
||||||
|
y07: 0
|
||||||
|
y08: 0
|
||||||
|
y09: 0
|
||||||
|
y10: 1
|
||||||
|
y11: 0
|
||||||
|
y12: 0
|
||||||
|
y13: 1
|
||||||
|
y14: 0
|
||||||
|
y15: 1
|
||||||
|
y16: 0
|
||||||
|
y17: 1
|
||||||
|
y18: 1
|
||||||
|
y19: 0
|
||||||
|
y20: 1
|
||||||
|
y21: 0
|
||||||
|
y22: 0
|
||||||
|
y23: 0
|
||||||
|
y24: 1
|
||||||
|
y25: 0
|
||||||
|
y26: 0
|
||||||
|
y27: 0
|
||||||
|
y28: 1
|
||||||
|
y29: 1
|
||||||
|
y30: 0
|
||||||
|
y31: 1
|
||||||
|
y32: 0
|
||||||
|
y33: 0
|
||||||
|
y34: 0
|
||||||
|
y35: 0
|
||||||
|
y36: 1
|
||||||
|
y37: 1
|
||||||
|
y38: 0
|
||||||
|
y39: 0
|
||||||
|
y40: 1
|
||||||
|
y41: 1
|
||||||
|
y42: 1
|
||||||
|
y43: 1
|
||||||
|
y44: 1
|
||||||
|
|
||||||
|
kgv OR rdq -> stt
|
||||||
|
y00 AND x00 -> pjf
|
||||||
|
y13 XOR x13 -> wqh
|
||||||
|
y21 AND x21 -> ccs
|
||||||
|
wws AND cds -> kgv
|
||||||
|
x09 AND y09 -> sgj
|
||||||
|
x14 XOR y14 -> tnm
|
||||||
|
msn OR ssj -> vfb
|
||||||
|
cwt AND wfd -> wjk
|
||||||
|
y41 XOR x41 -> fsh
|
||||||
|
jhn AND hjd -> nfk
|
||||||
|
kvg OR sgj -> z09
|
||||||
|
trk OR trs -> nvk
|
||||||
|
jnf XOR wgh -> cwt
|
||||||
|
bkg AND tgw -> vrw
|
||||||
|
dvr OR wtv -> dwg
|
||||||
|
vch AND css -> cjn
|
||||||
|
wmf AND mdn -> qnn
|
||||||
|
gbv AND pth -> hns
|
||||||
|
jgb AND qbm -> jdb
|
||||||
|
x05 XOR y05 -> wcq
|
||||||
|
gtv OR pjr -> crc
|
||||||
|
y23 XOR x23 -> vph
|
||||||
|
jwq AND fqf -> tgv
|
||||||
|
y38 XOR x38 -> ghm
|
||||||
|
dgc OR ntm -> hrs
|
||||||
|
y22 XOR x22 -> tgw
|
||||||
|
stt AND wcr -> krw
|
||||||
|
gvt AND kns -> nmv
|
||||||
|
y03 AND x03 -> scc
|
||||||
|
x42 XOR y42 -> vcf
|
||||||
|
jbj OR rrc -> cvn
|
||||||
|
pth XOR gbv -> z17
|
||||||
|
hpb OR scc -> ngk
|
||||||
|
mvf XOR hrs -> z29
|
||||||
|
x17 XOR y17 -> gbv
|
||||||
|
y22 AND x22 -> kkq
|
||||||
|
y37 XOR x37 -> vcr
|
||||||
|
sqq XOR fgt -> z36
|
||||||
|
wcq AND knc -> gnw
|
||||||
|
krw OR hbj -> nkt
|
||||||
|
hpm OR mrw -> knc
|
||||||
|
vts OR hsk -> vfw
|
||||||
|
y19 AND x19 -> sjt
|
||||||
|
qbm XOR jgb -> z21
|
||||||
|
x28 AND y28 -> ntm
|
||||||
|
bwv XOR wsh -> z12
|
||||||
|
y43 XOR x43 -> cch
|
||||||
|
vfb XOR fpt -> z03
|
||||||
|
qkc OR sqw -> hjd
|
||||||
|
vqr OR ndj -> fqf
|
||||||
|
mcf AND cch -> kcq
|
||||||
|
qjb XOR kjr -> z35
|
||||||
|
y44 AND x44 -> mgv
|
||||||
|
vfw AND mqt -> ndj
|
||||||
|
x34 XOR y34 -> jwk
|
||||||
|
jnf AND wgh -> kvg
|
||||||
|
x41 AND y41 -> dqw
|
||||||
|
x02 AND y02 -> msn
|
||||||
|
vfb AND fpt -> hpb
|
||||||
|
swb AND qvq -> gtv
|
||||||
|
vnq XOR wqh -> z13
|
||||||
|
trn XOR pgk -> z06
|
||||||
|
cvn XOR gmp -> z30
|
||||||
|
vfw XOR mqt -> z07
|
||||||
|
ctf XOR tnm -> z14
|
||||||
|
hwb OR wmb -> ctf
|
||||||
|
ghm XOR hjg -> z38
|
||||||
|
wkt OR qjj -> tgj
|
||||||
|
kcq OR dcc -> cpw
|
||||||
|
x06 XOR y06 -> pgk
|
||||||
|
cjn OR jmv -> jgb
|
||||||
|
y00 XOR x00 -> z00
|
||||||
|
mdn XOR wmf -> z39
|
||||||
|
y36 AND x36 -> gst
|
||||||
|
tgw XOR bkg -> z22
|
||||||
|
tgv OR cfk -> wgh
|
||||||
|
y25 XOR x25 -> ktd
|
||||||
|
wdj AND fvw -> dvr
|
||||||
|
kbk OR wpm -> sgn
|
||||||
|
x44 XOR y44 -> dph
|
||||||
|
wsh AND bwv -> tnr
|
||||||
|
y24 XOR x24 -> skp
|
||||||
|
y30 XOR x30 -> gmp
|
||||||
|
y05 AND x05 -> z05
|
||||||
|
x11 AND y11 -> rsw
|
||||||
|
qnn OR rrn -> fvw
|
||||||
|
x34 AND y34 -> hgg
|
||||||
|
wcs OR rpr -> fgt
|
||||||
|
x07 AND y07 -> vqr
|
||||||
|
fvw XOR wdj -> z40
|
||||||
|
y29 AND x29 -> rrc
|
||||||
|
fsh XOR dwg -> z41
|
||||||
|
cpw XOR dph -> z44
|
||||||
|
y32 XOR x32 -> hbg
|
||||||
|
pjf AND fcg -> vms
|
||||||
|
cwt XOR wfd -> z10
|
||||||
|
x27 AND y27 -> hbj
|
||||||
|
y04 AND x04 -> mrw
|
||||||
|
vcf XOR btn -> z42
|
||||||
|
vnq AND wqh -> wmb
|
||||||
|
x43 AND y43 -> dcc
|
||||||
|
vrw OR kkq -> jjr
|
||||||
|
cds XOR wws -> z26
|
||||||
|
x39 XOR y39 -> wmf
|
||||||
|
y29 XOR x29 -> mvf
|
||||||
|
rfn OR pmm -> mhh
|
||||||
|
y35 XOR x35 -> qjb
|
||||||
|
ngk XOR vvf -> z04
|
||||||
|
kht OR gfk -> cds
|
||||||
|
bgb OR tnr -> vnq
|
||||||
|
kns XOR gvt -> z33
|
||||||
|
sjt OR pbd -> vch
|
||||||
|
hvp OR nfk -> pth
|
||||||
|
x38 AND y38 -> dtt
|
||||||
|
y18 AND x18 -> pjr
|
||||||
|
x07 XOR y07 -> mqt
|
||||||
|
gst OR bmm -> nwb
|
||||||
|
y21 XOR x21 -> qbm
|
||||||
|
jwk AND gfr -> cph
|
||||||
|
nvk XOR brp -> z31
|
||||||
|
x17 AND y17 -> nkr
|
||||||
|
sqt OR nqs -> kns
|
||||||
|
qbs OR vht -> sfw
|
||||||
|
brp AND nvk -> rfn
|
||||||
|
hrs AND mvf -> jbj
|
||||||
|
x12 AND y12 -> bgb
|
||||||
|
y36 XOR x36 -> sqq
|
||||||
|
jdb OR ccs -> bkg
|
||||||
|
x04 XOR y04 -> vvf
|
||||||
|
y19 XOR x19 -> vmj
|
||||||
|
vms OR vpb -> kmq
|
||||||
|
y35 AND x35 -> wcs
|
||||||
|
vph AND jjr -> qbs
|
||||||
|
fgt AND sqq -> bmm
|
||||||
|
vcf AND btn -> fbb
|
||||||
|
wjk OR ktk -> kmn
|
||||||
|
x08 AND y08 -> cfk
|
||||||
|
y01 XOR x01 -> fcg
|
||||||
|
y23 AND x23 -> vht
|
||||||
|
kgm AND nkt -> dgc
|
||||||
|
swb XOR qvq -> z18
|
||||||
|
x09 XOR y09 -> jnf
|
||||||
|
cch XOR mcf -> z43
|
||||||
|
sgn XOR smv -> z15
|
||||||
|
y40 XOR x40 -> wdj
|
||||||
|
gnw OR gdd -> trn
|
||||||
|
dgn OR pqt -> hjg
|
||||||
|
y30 AND x30 -> trs
|
||||||
|
ngk AND vvf -> hpm
|
||||||
|
y12 XOR x12 -> bwv
|
||||||
|
kmn XOR dmk -> z11
|
||||||
|
y20 AND x20 -> css
|
||||||
|
stt XOR wcr -> z27
|
||||||
|
vph XOR jjr -> z23
|
||||||
|
nmv OR wjj -> gfr
|
||||||
|
x02 XOR y02 -> jdc
|
||||||
|
y28 XOR x28 -> kgm
|
||||||
|
gfr XOR jwk -> z34
|
||||||
|
x16 AND y16 -> hvp
|
||||||
|
gkb OR mgv -> z45
|
||||||
|
mhh AND hbg -> sqt
|
||||||
|
fqf XOR jwq -> z08
|
||||||
|
x13 AND y13 -> hwb
|
||||||
|
vmj AND crc -> pbd
|
||||||
|
dwg AND fsh -> brb
|
||||||
|
sfw AND skp -> qjj
|
||||||
|
knc XOR wcq -> gdd
|
||||||
|
x31 XOR y31 -> brp
|
||||||
|
fcg XOR pjf -> z01
|
||||||
|
dqw OR brb -> btn
|
||||||
|
cvn AND gmp -> trk
|
||||||
|
y16 XOR x16 -> jhn
|
||||||
|
y27 XOR x27 -> wcr
|
||||||
|
x33 XOR y33 -> gvt
|
||||||
|
y08 XOR x08 -> jwq
|
||||||
|
trn AND pgk -> hsk
|
||||||
|
nkt XOR kgm -> z28
|
||||||
|
y15 AND x15 -> sqw
|
||||||
|
crc XOR vmj -> z19
|
||||||
|
hbg XOR mhh -> z32
|
||||||
|
smv AND sgn -> qkc
|
||||||
|
vcr XOR nwb -> pqt
|
||||||
|
x14 AND y14 -> kbk
|
||||||
|
jhn XOR hjd -> z16
|
||||||
|
x10 AND y10 -> ktk
|
||||||
|
kmq AND jdc -> ssj
|
||||||
|
y15 XOR x15 -> smv
|
||||||
|
sqd OR dtt -> mdn
|
||||||
|
x24 AND y24 -> wkt
|
||||||
|
hgg OR cph -> kjr
|
||||||
|
ktd XOR tgj -> z25
|
||||||
|
ctf AND tnm -> wpm
|
||||||
|
x40 AND y40 -> wtv
|
||||||
|
x10 XOR y10 -> wfd
|
||||||
|
y33 AND x33 -> wjj
|
||||||
|
x39 AND y39 -> rrn
|
||||||
|
y03 XOR x03 -> fpt
|
||||||
|
x31 AND y31 -> pmm
|
||||||
|
y32 AND x32 -> nqs
|
||||||
|
x11 XOR y11 -> dmk
|
||||||
|
y18 XOR x18 -> qvq
|
||||||
|
x37 AND y37 -> dgn
|
||||||
|
skq OR rsw -> wsh
|
||||||
|
vch XOR css -> z20
|
||||||
|
kmn AND dmk -> skq
|
||||||
|
ghm AND hjg -> sqd
|
||||||
|
kjr AND qjb -> rpr
|
||||||
|
y01 AND x01 -> vpb
|
||||||
|
cpw AND dph -> gkb
|
||||||
|
y26 AND x26 -> rdq
|
||||||
|
tgj AND ktd -> kht
|
||||||
|
x26 XOR y26 -> wws
|
||||||
|
sfw XOR skp -> z24
|
||||||
|
y42 AND x42 -> thc
|
||||||
|
nkr OR hns -> swb
|
||||||
|
y20 XOR x20 -> jmv
|
||||||
|
vcr AND nwb -> z37
|
||||||
|
fbb OR thc -> mcf
|
||||||
|
x06 AND y06 -> vts
|
||||||
|
jdc XOR kmq -> z02
|
||||||
|
y25 AND x25 -> gfk
|
||||||
Reference in New Issue
Block a user