initial commit

This commit is contained in:
s-prechtl 2022-12-09 08:29:06 +01:00
commit 27fe77bbe1
134 changed files with 21939 additions and 0 deletions

26
2021/Day1/Day1.py Normal file
View file

@ -0,0 +1,26 @@
if __name__ == '__main__':
with open('input.txt', 'r') as f:
input_data = f.readlines()
input_data = [int(x) for x in input_data]
# Part 1
sol = 0
for i in range(len(input_data)):
if i>0 and input_data[i] > input_data[i-1]:
sol+=1
print(sol)
# Part 2
windows = []
sol = 0
for i in range(len(input_data)):
if i < len(input_data)-2:
windows.append(sum(input_data[i:i+3]))
for i in range(len(windows)):
if i>0 and windows[i] > windows[i-1]:
sol+=1
print(sol)

2000
2021/Day1/input.txt Normal file

File diff suppressed because it is too large Load diff

0
2021/Day10/Day10.py Normal file
View file

0
2021/Day10/input.txt Normal file
View file

0
2021/Day11/Day11.py Normal file
View file

0
2021/Day11/input.txt Normal file
View file

0
2021/Day12/Day12.py Normal file
View file

0
2021/Day12/input.txt Normal file
View file

0
2021/Day13/Day13.py Normal file
View file

0
2021/Day13/input.txt Normal file
View file

0
2021/Day14/Day14.py Normal file
View file

0
2021/Day14/input.txt Normal file
View file

0
2021/Day15/Day15.py Normal file
View file

0
2021/Day15/input.txt Normal file
View file

0
2021/Day16/Day16.py Normal file
View file

0
2021/Day16/input.txt Normal file
View file

0
2021/Day17/Day17.py Normal file
View file

0
2021/Day17/input.txt Normal file
View file

0
2021/Day18/Day18.py Normal file
View file

0
2021/Day18/input.txt Normal file
View file

0
2021/Day19/Day19.py Normal file
View file

0
2021/Day19/input.txt Normal file
View file

51
2021/Day2/Day2.py Normal file
View file

@ -0,0 +1,51 @@
def part1():
answer = 0
horizontal = 0
depth = 0
with open("input.txt", "r") as f:
input = f.readlines()
for line in input:
line = line.strip()
line = line.split(" ")
val = int(line[1])
if line[0] == "forward":
horizontal += val
if line[0] == "up":
depth -= val
if line[0] == "down":
depth += val
answer = horizontal*depth
return answer
def part2():
answer = 0
horizontal = 0
aim = 0
depth = 0
with open("input.txt", "r") as f:
input = f.readlines()
for line in input:
line = line.strip()
line = line.split(" ")
val = int(line[1])
if line[0] == "forward":
horizontal += val
depth += val*aim
if line[0] == "up":
aim -= val
if line[0] == "down":
aim += val
answer = horizontal*depth
return answer
if __name__ == '__main__':
print(part1())
print(part2())

1000
2021/Day2/input.txt Normal file

File diff suppressed because it is too large Load diff

0
2021/Day20/Day20.py Normal file
View file

0
2021/Day20/input.txt Normal file
View file

0
2021/Day21/Day21.py Normal file
View file

0
2021/Day21/input.txt Normal file
View file

0
2021/Day22/Day22.py Normal file
View file

0
2021/Day22/input.txt Normal file
View file

0
2021/Day23/Day23.py Normal file
View file

0
2021/Day23/input.txt Normal file
View file

0
2021/Day24/Day24.py Normal file
View file

0
2021/Day24/input.txt Normal file
View file

0
2021/Day25/Day25.py Normal file
View file

0
2021/Day25/input.txt Normal file
View file

100
2021/Day3/Day3.py Normal file
View file

@ -0,0 +1,100 @@
import copy
def part1():
with open('input.txt', 'r') as f:
lines = f.readlines()
onesNeeded = len(lines) / 2
gamma = ""
eps = ""
onesInBinaries = countOnesInBinaries(lines)
for i in range(len(onesInBinaries)):
if onesInBinaries[i] >= onesNeeded:
gamma += "1"
eps += "0"
else:
gamma += "0"
eps += "1"
return int(gamma, 2) * int(eps, 2)
def part2():
with open('input.txt', 'r') as f:
lines = f.readlines()
co2 = copy.deepcopy(lines)
onesInBinaries = countOnesInBinaries(lines)
currpops = []
for i in range(len(lines[0].strip())):
for j in range(len(lines)):
onesNeeded = len(lines) / 2
line = lines[j].strip()
if onesInBinaries[i] >= onesNeeded:
if line[i] == "0":
currpops.append(j)
# lines.pop(j)
else:
if line[i] == "1":
# lines.pop(j)
currpops.append(j)
if not len(currpops) is len(lines):
currpops.reverse()
for j in currpops:
lines.pop(j)
currpops = []
else:
lines = lines[-1]
if len(lines) == 1:
break
for i in range(len(co2[0].strip())):
for j in range(len(lines)):
onesNeeded = len(lines) / 2
line = co2[j].strip()
if onesInBinaries[i] >= onesNeeded:
if line[i] == "1":
currpops.append(j)
# co2.pop(j)
else:
if line[i] == "0":
# co2.pop(j)
currpops.append(j)
if not len(currpops) is len(co2):
currpops.reverse()
for j in currpops:
co2.pop(j)
currpops = []
else:
co2 = co2[-1]
if len(co2) == 1:
break
return int(co2[0].strip(), 2) * int(lines[0].strip(), 2)
def countOnesInBinaries(lines):
onesInBinaries = [0 for _ in range(len(lines[0]) - 1)]
for line in lines:
line = line.strip()
for i in range(len(line)):
num = int(line[i])
if num == 1:
onesInBinaries[i] += 1
return onesInBinaries
if __name__ == '__main__':
print(part1())
print(part2())

1000
2021/Day3/input.txt Normal file

File diff suppressed because it is too large Load diff

51
2021/Day4/Board.py Normal file
View file

@ -0,0 +1,51 @@
import copy
class BingoBoard:
values = [[],
[],
[],
[],
[]]
solved : bool
def __init__(self, values: list[str]):
self.solved = False
self.values = copy.deepcopy(self.values)
for i in range(5):
self.values[i] = [int(x) for x in values[i].split()]
def enterValue(self, value: int):
for row in self.values:
for i in range(len(row)):
if row[i] == value:
row[i] = 'X'
return
def checkWin(self):
for row in self.values:
valid = ""
for col in row:
valid += str(col)
if valid == 'XXXXX':
self.solved = True
return True
for col in range(5):
valid = ""
for row in self.values:
valid += str(row[col])
if valid == 'XXXXX':
self.solved = True
return True
return False
def sum(self):
sum = 0
for row in self.values:
for num in row:
if num != 'X':
sum += int(num)
return sum

42
2021/Day4/Day4.py Normal file
View file

@ -0,0 +1,42 @@
import copy
from Board import BingoBoard
if __name__ == '__main__':
boards = []
with open("input.txt", "r") as f:
toPop = []
inp = f.readlines()
nums = [int(x) for x in inp[0].split(",")]
inp.pop(0)
for i in range(len(inp)):
inp[i] = inp[i].strip()
if inp[i] == "":
toPop.append(i)
toPop.reverse()
for i in toPop:
inp.pop(i)
for board in range(len(inp) // 5):
boards.append(BingoBoard(inp[board * 5:board * 5 + 5]))
# part1
# for num in nums:
# for board in boards:
# board.enterValue(num)
# if board.checkWin():
# print(board.sum() * num)
# exit()
# part2
won = 0
for num in nums:
for board in boards:
if not board.solved:
board.enterValue(num)
if board.checkWin():
won += 1
if won == len(boards):
print(board.sum()*num)
exit()

601
2021/Day4/input.txt Normal file
View file

@ -0,0 +1,601 @@
1,76,38,96,62,41,27,33,4,2,94,15,89,25,66,14,30,0,71,21,48,44,87,73,60,50,77,45,29,18,5,99,65,16,93,95,37,3,52,32,46,80,98,63,92,24,35,55,12,81,51,17,70,78,61,91,54,8,72,40,74,68,75,67,39,64,10,53,9,31,6,7,47,42,90,20,19,36,22,43,58,28,79,86,57,49,83,84,97,11,85,26,69,23,59,82,88,34,56,13
85 23 65 78 93
27 53 10 12 26
5 34 83 25 6
56 40 73 29 54
33 68 41 32 82
8 31 14 70 91
53 49 86 13 21
66 28 76 78 93
39 63 80 43 23
56 25 60 67 72
67 78 36 64 14
46 16 80 23 94
22 47 51 65 57
33 76 21 92 97
31 95 54 27 20
1 77 86 43 30
28 88 7 5 60
66 24 3 57 33
38 23 59 84 44
74 47 17 29 85
21 50 86 2 70
85 19 22 93 25
99 38 74 30 65
81 0 47 78 63
34 11 51 88 64
45 15 29 81 30
75 21 88 91 49
39 20 4 17 78
10 12 38 11 7
98 6 65 69 86
36 20 31 44 69
30 65 55 88 64
74 85 82 61 5
57 17 90 43 54
58 83 52 23 7
42 16 82 86 76
60 26 27 59 55
7 53 22 78 5
18 61 10 15 17
28 46 14 87 77
21 43 15 47 61
24 76 28 3 27
19 62 69 82 93
49 29 97 74 41
92 36 37 99 40
31 4 3 62 51
24 57 78 67 53
13 5 76 38 55
79 9 75 98 71
65 1 39 18 47
59 4 38 95 99
85 68 69 93 43
83 57 48 42 15
47 50 80 79 90
56 87 78 64 25
21 37 14 67 95
88 39 26 38 49
89 83 54 77 96
48 86 94 19 20
43 41 8 74 58
1 36 12 90 91
63 21 98 82 66
39 86 7 52 77
80 81 44 33 58
78 30 11 51 28
81 74 7 33 96
75 60 87 47 91
39 73 30 50 13
4 41 9 43 77
34 82 72 48 12
93 63 74 25 57
29 76 9 45 70
98 77 71 16 41
47 54 18 14 55
31 89 67 87 83
8 72 45 93 68
74 26 69 94 65
28 9 20 47 41
46 54 21 56 22
84 62 18 15 48
20 51 81 40 69
71 10 13 93 75
44 86 0 95 37
99 39 76 80 66
14 64 49 62 27
75 7 51 86 79
43 30 61 39 16
85 63 90 28 96
88 78 72 31 73
98 87 23 19 58
20 95 47 97 12
92 25 68 87 91
37 10 78 23 63
74 93 58 39 5
76 51 48 72 16
37 18 32 34 85
22 31 98 42 19
29 72 48 76 25
47 1 21 7 53
79 82 86 52 78
20 16 47 78 92
88 15 71 67 2
5 52 90 70 9
22 49 28 82 27
6 19 61 73 48
71 26 7 11 79
52 30 47 1 31
17 75 94 91 28
81 98 23 55 21
77 15 39 24 16
5 75 44 88 65
89 45 23 69 19
41 61 67 52 54
47 38 57 12 98
62 70 26 87 53
50 4 65 77 25
6 21 5 27 92
39 63 97 75 79
60 34 87 26 74
99 24 44 85 2
13 64 38 78 21
74 17 83 57 94
25 39 69 53 4
54 33 81 50 76
42 75 19 77 26
63 31 70 19 39
38 87 15 90 75
61 98 6 29 86
78 62 32 11 60
55 97 13 73 82
51 63 68 84 36
12 33 37 31 8
18 41 34 74 23
72 39 85 48 60
24 19 29 88 0
46 51 17 23 13
20 93 97 99 81
57 47 33 84 44
28 96 2 43 56
68 36 62 15 5
81 99 5 30 10
38 62 57 8 37
7 86 98 3 54
46 82 96 15 72
83 1 75 25 50
47 57 11 61 27
53 10 31 91 98
76 85 55 38 23
6 81 67 71 70
35 29 17 50 56
24 65 15 1 89
45 60 97 23 14
84 56 58 5 54
3 72 51 46 79
67 70 78 34 77
38 11 54 23 2
33 14 10 96 63
43 5 36 20 30
70 53 66 71 9
91 90 21 7 88
94 44 4 86 26
39 70 54 50 30
55 40 12 72 71
68 7 66 47 91
31 24 13 1 96
79 14 40 87 68
16 32 53 46 98
38 95 21 89 69
62 60 19 81 33
70 52 28 83 0
62 42 38 48 64
61 79 78 97 98
89 7 3 29 68
92 76 14 67 1
41 99 72 47 60
5 75 18 42 33
72 61 36 31 29
19 58 1 34 94
54 84 92 99 38
76 68 79 53 37
14 91 37 5 98
68 29 34 76 43
75 0 67 33 69
81 47 58 30 93
88 92 42 77 54
64 24 28 54 53
72 68 3 73 4
83 6 59 66 94
87 80 55 20 16
13 82 74 31 70
63 92 71 0 83
98 40 50 55 2
88 5 85 30 23
10 75 81 58 68
51 31 14 89 1
67 93 94 54 53
38 71 34 40 24
31 63 30 99 75
4 57 86 19 70
60 49 87 68 74
56 94 79 53 7
24 12 19 6 99
82 51 41 46 43
17 49 52 78 55
75 48 61 70 87
14 55 32 21 31
88 83 23 44 4
1 77 45 90 85
46 81 51 27 62
60 24 29 18 0
95 92 91 27 26
22 43 45 64 62
83 23 25 85 94
84 53 72 28 20
75 60 52 18 73
95 41 7 21 32
58 65 16 56 97
68 25 91 83 24
66 89 15 55 6
2 30 84 10 90
58 86 44 19 74
57 89 17 6 83
77 35 60 32 13
97 63 62 28 76
55 31 11 0 52
33 39 59 42 45
61 50 92 9 79
15 0 28 5 72
91 24 21 29 87
86 76 43 31 93
63 11 86 45 85
96 74 66 93 32
95 30 99 23 18
69 97 48 15 1
42 87 47 83 80
93 5 40 64 2
44 51 15 54 83
69 77 90 58 11
0 48 43 30 55
25 72 38 73 52
89 58 71 68 15
23 65 9 36 74
21 29 42 79 98
55 47 33 39 28
16 75 91 69 57
13 79 12 71 2
60 94 99 43 82
84 89 29 91 87
74 80 25 32 21
70 14 68 92 11
78 1 16 51 87
58 94 59 15 43
79 41 50 47 39
53 37 9 28 72
34 63 89 35 18
31 67 70 42 43
60 2 89 49 22
56 17 81 24 74
20 65 1 96 51
68 7 0 38 25
59 14 29 53 19
9 2 11 33 44
81 6 10 47 58
20 34 62 55 40
71 38 69 45 78
59 36 70 42 21
3 16 49 79 98
74 25 8 84 19
61 80 47 65 64
91 62 52 9 40
1 85 63 7 2
0 20 61 26 77
99 37 74 42 76
25 94 19 78 60
79 72 95 22 11
51 21 79 76 32
55 23 69 19 61
71 54 94 47 92
5 64 6 68 16
91 81 9 99 30
61 69 82 86 68
66 81 28 38 36
26 29 31 11 8
72 51 12 95 63
18 30 88 17 32
34 8 14 42 67
66 79 65 20 52
37 87 74 24 3
59 54 21 32 89
31 4 62 76 30
11 93 8 92 55
38 72 99 3 83
12 75 0 41 46
17 25 5 39 48
14 18 86 29 84
6 20 41 51 48
5 67 30 24 47
3 8 92 22 39
4 56 36 31 75
2 45 85 81 96
47 43 72 22 3
19 87 53 12 60
29 40 56 68 18
66 97 70 33 39
85 37 0 90 98
61 35 81 84 94
11 1 58 45 77
6 99 67 36 43
5 7 0 87 80
44 78 39 70 20
58 34 49 29 75
17 15 28 23 84
59 25 92 48 0
20 81 47 3 71
68 60 5 22 87
90 32 41 39 6
36 78 67 24 50
55 72 52 75 44
87 15 92 31 58
83 89 68 19 43
99 44 53 68 25
71 67 16 19 36
35 58 14 86 48
88 18 61 24 23
87 9 91 37 15
37 5 63 68 28
41 50 76 99 64
34 92 78 94 71
11 96 97 42 58
33 45 0 93 48
33 68 9 12 81
60 98 28 8 99
14 17 6 82 15
57 69 43 38 29
47 84 76 22 18
79 70 92 38 47
12 82 98 46 0
76 15 53 59 97
18 52 49 29 96
44 64 68 89 24
95 14 17 27 42
55 43 57 29 25
34 73 86 50 16
69 37 75 63 39
78 79 3 4 30
27 31 15 92 46
36 23 72 40 50
51 99 55 89 21
12 70 84 63 85
78 88 77 75 0
15 67 40 39 28
9 79 22 52 75
96 65 86 98 14
97 87 44 84 68
36 26 89 43 27
79 59 48 27 36
85 92 93 76 24
2 25 7 42 90
23 29 74 35 86
58 60 31 75 57
10 43 83 75 8
88 12 38 30 9
60 67 59 76 6
55 45 74 34 25
97 49 65 96 69
59 86 15 3 19
89 4 74 61 23
52 98 8 79 39
95 17 22 14 51
50 18 94 30 84
19 63 58 72 67
35 93 29 91 0
39 26 43 84 21
70 42 2 53 12
59 99 8 1 86
23 86 34 22 65
71 10 16 50 91
66 89 49 81 43
40 7 26 75 61
62 59 2 46 95
24 21 0 49 25
92 42 48 12 7
81 93 59 68 3
14 23 63 39 29
35 43 6 44 89
67 74 95 34 10
39 90 59 44 51
17 16 97 24 62
20 54 76 63 88
87 66 14 78 82
96 86 67 59 79
66 3 30 77 71
2 91 99 82 31
48 65 75 98 53
63 54 64 76 1
85 96 40 98 24
16 20 10 23 17
79 59 53 42 65
67 2 5 80 75
62 38 19 74 73
43 10 79 92 8
52 36 4 5 67
56 29 33 24 97
85 17 53 75 65
62 64 1 21 83
93 92 79 17 12
40 88 6 82 34
90 96 53 25 43
14 62 54 10 39
49 68 41 16 44
67 99 24 58 76
43 53 59 54 51
47 6 61 8 2
80 68 90 14 4
29 46 94 89 50
14 45 19 33 43
6 55 4 31 80
51 2 69 68 61
71 70 79 91 93
66 18 54 13 87
8 45 61 54 30
85 16 19 82 37
56 39 11 47 4
74 70 10 60 91
21 63 95 53 72
71 21 63 86 27
53 52 40 23 81
2 47 92 68 15
46 45 31 8 1
34 80 37 11 69
96 0 15 90 66
65 43 92 83 18
3 47 19 8 32
71 26 42 34 28
62 99 55 5 12
37 99 30 21 3
63 18 68 47 27
57 0 65 85 20
7 58 40 92 43
15 19 5 4 53
46 16 45 95 68
6 44 31 47 73
84 82 71 75 94
26 25 17 32 49
18 96 13 58 9
71 36 13 68 10
84 7 60 79 41
1 83 43 81 97
90 53 80 19 38
48 25 32 42 29
37 68 86 44 78
87 67 77 70 60
45 34 27 15 47
12 21 13 55 26
81 41 63 40 74
24 50 93 94 57
99 4 56 5 28
42 31 22 6 76
90 89 16 49 59
9 7 43 71 54
69 75 94 38 46
52 64 50 72 42
76 63 13 60 10
99 80 43 33 17
25 31 4 89 22
88 57 22 66 34
85 16 87 95 59
73 2 46 5 29
25 69 53 6 14
96 77 19 91 43
46 99 52 47 76
89 53 24 13 59
45 5 1 30 19
68 25 22 10 73
42 27 31 0 94
42 44 98 89 87
65 10 80 56 41
3 35 95 48 43
85 97 83 12 94
50 38 93 47 17
16 73 18 81 89
6 48 54 93 19
35 52 88 49 31
43 79 83 14 28
50 62 98 26 22
38 47 7 20 35
45 76 63 96 24
98 53 2 87 80
83 86 92 48 1
73 60 26 94 6
80 50 29 53 92
66 90 79 98 46
40 21 58 38 60
35 13 72 28 6
48 76 51 96 12
79 80 24 37 51
86 70 1 22 71
52 69 10 83 13
12 40 3 0 30
46 50 48 76 5

66
2021/Day5/Day5.py Normal file
View file

@ -0,0 +1,66 @@
from Line import Line
def getHighestIndixes(lines: [Line]):
currMaxX = 0
currMaxY = 0
for line in lines:
currMaxX = max(currMaxX, max(line.start.x, line.end.x) + 1)
currMaxY = max(currMaxX, max(line.start.y, line.end.y) + 1)
return currMaxX, currMaxY
def part1(lines: [Line], arraySize: []):
area = []
for x in range(arraySize[0]):
area.append([])
area[x] = []
for y in range(arraySize[1]):
area[x].append(0)
for line in lines:
if line.axis == "X":
for y in range(min(line.start.y, line.end.y), max(line.start.y, line.end.y) + 1):
area[line.start.x][y] += 1
elif line.axis == "Y":
for x in range(min(line.start.x, line.end.x), max(line.start.x, line.end.x) + 1):
area[x][line.start.y] += 1
elif line.axis == "DIAG":
if line.start.x > line.end.x:
y = line.end.y
else:
y = line.start.y
if y < max(line.start.y, line.end.y):
op = 1
else:
op = -1
for x in range(min(line.start.x, line.end.x), max(line.start.x, line.end.x) + 1):
area[x][y] += 1
y += op
danger = 0
for row in area:
for val in row:
if val > 1:
danger += 1
return danger
if __name__ == '__main__':
lines = []
with open("input.txt", "r") as f:
raw = [x.strip() for x in f.readlines()]
for i in raw:
inp = i.replace(" -> ", ", ")
vals = [int(x) for x in inp.split(",")]
lines.append(Line(vals[0], vals[1], vals[2], vals[3]))
if lines[-1].axis == "INVALID":
lines.pop(-1)
print(part1(lines, getHighestIndixes(lines)))

26
2021/Day5/Line.py Normal file
View file

@ -0,0 +1,26 @@
class Point:
x: int
y: int
def __init__(self, x, y):
self.x = x
self.y = y
class Line:
start: Point
end: Point
axis: str
def __init__(self, x1, y1, x2, y2):
self.start = Point(x1, y1)
self.end = Point(x2, y2)
if x1 == x2:
self.axis = "X"
elif y1 == y2:
self.axis = "Y"
elif abs(x1 - x2) == abs(y1 - y2):
self.axis = "DIAG"
else:
self.axis = "INVALID"

500
2021/Day5/input.txt Normal file
View file

@ -0,0 +1,500 @@
284,294 -> 733,743
625,347 -> 653,375
561,848 -> 561,181
836,102 -> 836,339
946,941 -> 22,17
18,954 -> 956,16
370,142 -> 370,700
990,966 -> 677,966
366,603 -> 366,465
728,942 -> 57,271
615,493 -> 847,493
584,281 -> 301,281
125,356 -> 301,180
941,569 -> 555,183
151,116 -> 509,116
41,18 -> 841,818
627,670 -> 627,630
965,472 -> 965,100
93,404 -> 330,641
475,963 -> 475,514
389,389 -> 389,326
842,565 -> 842,576
454,700 -> 650,700
73,810 -> 73,319
450,212 -> 450,284
316,392 -> 316,697
915,592 -> 578,592
622,485 -> 434,485
109,853 -> 952,10
305,73 -> 305,222
27,489 -> 157,489
191,979 -> 867,979
527,329 -> 527,292
301,645 -> 301,162
639,730 -> 176,730
46,964 -> 46,458
727,422 -> 435,714
28,552 -> 404,552
33,108 -> 33,21
227,249 -> 327,249
414,903 -> 784,903
69,422 -> 888,422
422,924 -> 103,605
793,353 -> 450,10
714,682 -> 714,972
201,745 -> 410,745
408,713 -> 408,847
174,842 -> 818,198
863,353 -> 775,353
199,780 -> 670,780
877,947 -> 340,410
163,202 -> 163,91
955,919 -> 955,585
836,271 -> 533,271
258,366 -> 728,836
582,749 -> 582,12
80,40 -> 80,704
287,213 -> 287,635
390,546 -> 390,194
837,511 -> 538,810
473,281 -> 902,281
851,865 -> 731,745
918,59 -> 445,532
796,215 -> 796,248
875,111 -> 604,111
660,805 -> 538,805
507,850 -> 145,850
585,861 -> 585,52
426,74 -> 700,348
206,405 -> 529,405
418,333 -> 418,17
368,457 -> 33,792
186,81 -> 957,852
505,283 -> 113,283
20,878 -> 462,878
750,237 -> 69,918
15,280 -> 358,623
798,981 -> 500,683
965,970 -> 22,970
950,970 -> 148,970
660,392 -> 660,884
862,405 -> 862,527
801,283 -> 801,361
71,837 -> 136,837
651,438 -> 945,144
524,607 -> 614,517
348,955 -> 138,955
957,164 -> 404,717
531,581 -> 454,504
710,185 -> 710,271
822,86 -> 822,966
745,233 -> 490,488
350,823 -> 663,823
824,67 -> 447,444
846,667 -> 796,617
666,24 -> 666,906
640,39 -> 640,145
654,481 -> 985,481
581,894 -> 416,729
443,11 -> 697,11
318,627 -> 799,146
113,78 -> 891,856
181,149 -> 179,151
451,74 -> 451,262
458,726 -> 314,726
218,662 -> 533,662
965,108 -> 527,108
782,481 -> 896,367
557,927 -> 557,938
506,242 -> 941,677
948,778 -> 948,629
567,816 -> 567,956
323,773 -> 323,364
864,980 -> 864,12
611,699 -> 611,886
613,392 -> 901,104
528,905 -> 156,905
632,206 -> 798,40
338,237 -> 919,818
256,889 -> 11,644
835,52 -> 55,832
464,144 -> 322,144
254,747 -> 254,509
866,892 -> 866,916
827,946 -> 30,149
899,84 -> 177,806
134,634 -> 357,634
781,492 -> 244,492
817,762 -> 817,976
818,749 -> 818,860
262,480 -> 263,480
409,576 -> 409,698
242,151 -> 981,890
149,519 -> 149,557
42,990 -> 42,930
687,974 -> 50,337
758,382 -> 465,382
760,861 -> 760,934
17,835 -> 17,915
645,923 -> 645,648
702,116 -> 72,746
153,162 -> 955,964
185,101 -> 918,834
554,179 -> 554,353
879,673 -> 879,949
368,13 -> 368,512
582,105 -> 591,114
146,291 -> 600,745
609,538 -> 930,538
320,604 -> 320,146
566,698 -> 443,575
167,708 -> 844,31
712,630 -> 712,421
912,930 -> 64,82
980,931 -> 87,38
23,893 -> 888,28
640,435 -> 676,435
701,516 -> 190,516
684,145 -> 62,767
127,471 -> 91,435
685,197 -> 78,197
103,493 -> 103,522
309,986 -> 309,850
938,270 -> 938,300
295,72 -> 354,72
948,889 -> 948,455
254,733 -> 254,175
95,329 -> 942,329
19,672 -> 19,445
206,807 -> 206,934
886,961 -> 886,690
117,386 -> 117,292
199,59 -> 668,528
299,263 -> 299,878
28,295 -> 638,905
10,140 -> 276,406
279,526 -> 921,526
485,128 -> 856,499
418,398 -> 186,398
296,577 -> 296,521
514,261 -> 10,765
691,673 -> 776,758
131,430 -> 152,430
858,85 -> 62,85
394,846 -> 270,970
827,913 -> 827,376
634,669 -> 910,669
12,53 -> 945,986
782,467 -> 782,421
159,832 -> 109,832
793,807 -> 79,93
120,584 -> 356,584
645,16 -> 645,355
526,685 -> 217,376
296,305 -> 296,929
954,144 -> 954,839
748,88 -> 103,733
523,804 -> 473,754
524,316 -> 524,756
696,183 -> 912,183
288,564 -> 55,797
568,103 -> 568,348
468,626 -> 682,412
163,163 -> 961,961
762,824 -> 27,89
623,625 -> 32,34
865,343 -> 490,718
259,458 -> 259,33
944,660 -> 944,176
781,804 -> 826,759
15,702 -> 15,553
403,310 -> 918,825
438,734 -> 835,734
825,13 -> 825,245
129,611 -> 370,611
49,939 -> 172,939
687,906 -> 687,532
629,482 -> 273,126
727,218 -> 424,218
447,451 -> 233,451
142,779 -> 813,779
527,27 -> 527,804
482,55 -> 482,200
39,264 -> 806,264
884,636 -> 458,636
467,121 -> 199,389
856,925 -> 856,666
666,359 -> 378,359
11,946 -> 705,946
491,281 -> 940,730
86,112 -> 918,944
974,807 -> 974,707
445,67 -> 914,536
953,394 -> 953,822
468,398 -> 157,87
231,620 -> 231,646
979,869 -> 979,911
450,330 -> 450,79
675,659 -> 617,659
66,181 -> 66,723
181,406 -> 181,192
908,334 -> 908,526
254,891 -> 282,891
777,791 -> 127,141
469,58 -> 694,58
954,957 -> 566,569
957,957 -> 123,123
741,359 -> 741,986
763,526 -> 763,101
857,427 -> 600,170
527,756 -> 490,719
625,249 -> 397,249
798,702 -> 712,702
868,75 -> 868,853
332,296 -> 332,629
211,829 -> 100,940
12,139 -> 12,218
655,978 -> 655,242
99,852 -> 855,96
486,267 -> 486,855
474,90 -> 474,244
948,491 -> 186,491
896,59 -> 278,677
295,732 -> 629,732
860,936 -> 860,556
143,790 -> 143,26
371,847 -> 395,847
739,301 -> 739,44
384,716 -> 748,716
848,423 -> 848,923
855,23 -> 218,660
381,805 -> 381,438
451,610 -> 91,610
906,957 -> 191,957
118,675 -> 169,675
836,818 -> 95,818
368,945 -> 825,488
165,299 -> 899,299
392,327 -> 926,861
663,16 -> 131,548
630,302 -> 888,302
206,869 -> 206,331
979,413 -> 979,204
894,860 -> 62,28
444,897 -> 962,379
550,158 -> 550,885
845,736 -> 811,736
846,857 -> 12,857
981,730 -> 981,154
694,835 -> 88,835
21,101 -> 21,385
19,960 -> 964,15
283,721 -> 450,721
59,136 -> 758,835
287,313 -> 719,313
471,252 -> 849,630
682,189 -> 168,189
10,921 -> 774,157
884,598 -> 884,540
207,615 -> 207,443
627,408 -> 67,408
285,36 -> 285,792
116,585 -> 254,585
183,86 -> 183,702
220,138 -> 868,138
833,68 -> 286,615
367,534 -> 766,534
907,514 -> 621,228
133,593 -> 133,581
164,727 -> 768,123
566,227 -> 566,555
983,988 -> 105,110
620,177 -> 620,821
612,413 -> 612,176
168,889 -> 168,210
871,487 -> 559,175
399,870 -> 761,870
236,976 -> 582,630
699,216 -> 699,887
153,745 -> 790,745
444,749 -> 444,257
808,165 -> 939,165
546,525 -> 95,976
583,179 -> 373,389
235,816 -> 840,816
744,89 -> 832,89
425,317 -> 465,357
267,235 -> 114,82
887,59 -> 572,374
808,237 -> 808,626
431,352 -> 400,383
815,376 -> 815,905
249,218 -> 989,958
120,435 -> 357,198
807,551 -> 490,234
910,524 -> 910,725
802,304 -> 447,659
789,228 -> 678,339
229,322 -> 52,322
658,393 -> 506,393
378,438 -> 378,569
163,981 -> 473,671
537,984 -> 935,586
58,945 -> 966,37
132,696 -> 565,263
136,813 -> 136,284
606,656 -> 298,348
533,572 -> 673,712
872,912 -> 301,341
16,287 -> 16,613
571,541 -> 980,950
117,495 -> 35,495
85,79 -> 682,676
425,431 -> 117,739
982,984 -> 10,12
28,75 -> 431,478
259,529 -> 259,436
762,267 -> 170,859
323,135 -> 929,741
81,238 -> 561,718
128,213 -> 876,961
649,466 -> 649,540
715,863 -> 119,863
830,624 -> 794,660
123,968 -> 977,114
489,466 -> 489,811
27,10 -> 980,963
255,732 -> 255,484
574,829 -> 431,829
548,743 -> 22,217
903,297 -> 903,763
684,774 -> 64,154
260,823 -> 683,823
422,211 -> 422,826
10,196 -> 988,196
108,802 -> 15,802
104,70 -> 104,452
885,59 -> 885,36
68,854 -> 68,774
731,935 -> 731,718
657,986 -> 617,986
732,292 -> 732,32
841,56 -> 841,83
74,108 -> 862,896
654,895 -> 323,895
374,952 -> 374,217
90,723 -> 750,63
246,89 -> 911,754
453,301 -> 755,301
983,988 -> 23,28
81,705 -> 133,757
752,743 -> 752,397
53,243 -> 449,639
451,811 -> 451,187
26,672 -> 26,699
254,861 -> 943,861
643,740 -> 643,966
486,655 -> 149,318
375,146 -> 375,973
76,293 -> 103,293
246,398 -> 246,248
324,392 -> 595,121
130,577 -> 131,577
380,623 -> 549,454
224,181 -> 985,942
310,223 -> 310,594
23,982 -> 23,738
19,858 -> 832,858
726,531 -> 726,578
730,433 -> 196,433
606,599 -> 242,599
444,832 -> 444,238
198,870 -> 47,870
944,473 -> 795,473
737,386 -> 178,945
328,902 -> 328,644
422,851 -> 567,851
674,781 -> 215,781
920,757 -> 302,757
225,932 -> 640,517
359,337 -> 791,337
935,430 -> 935,262
772,850 -> 280,358
175,829 -> 175,451
938,204 -> 234,908
253,749 -> 308,749
704,458 -> 468,458
222,95 -> 743,616
968,840 -> 123,840
491,619 -> 491,889
979,580 -> 979,459
901,193 -> 171,923
246,155 -> 246,680
711,755 -> 247,755
671,734 -> 475,734
803,783 -> 129,109
145,890 -> 920,115
463,521 -> 463,700
782,99 -> 782,311
547,467 -> 630,467
14,88 -> 795,869
653,899 -> 653,90
488,874 -> 488,570
93,879 -> 645,327
320,658 -> 40,938
611,246 -> 611,22
258,935 -> 258,829
931,436 -> 931,263
252,460 -> 252,461
490,382 -> 965,382
242,89 -> 242,617
271,111 -> 595,435
462,706 -> 242,486
557,328 -> 747,328
486,99 -> 486,333
156,40 -> 488,372
323,482 -> 138,297
595,539 -> 812,756
923,861 -> 377,315
934,952 -> 256,274
314,777 -> 314,12
508,47 -> 508,144
888,807 -> 701,807
745,774 -> 878,907
740,716 -> 740,215
62,43 -> 62,12
571,196 -> 454,196
568,107 -> 408,107
549,676 -> 404,676
595,573 -> 595,970
148,168 -> 193,123
763,71 -> 759,71
797,64 -> 307,64
959,984 -> 32,57
457,562 -> 634,562
127,521 -> 601,47
112,296 -> 112,120
148,755 -> 451,755
636,494 -> 870,494
910,242 -> 945,277
912,911 -> 912,892
759,815 -> 759,314
391,285 -> 391,959
455,460 -> 182,460
112,78 -> 112,385
842,179 -> 842,592
236,424 -> 421,424
508,907 -> 30,907
637,219 -> 34,822
503,375 -> 503,205
570,533 -> 626,533
658,11 -> 658,94
179,286 -> 326,433
918,214 -> 200,932
339,887 -> 81,887
794,91 -> 50,835
225,356 -> 225,261
80,160 -> 80,335
148,64 -> 847,763
595,393 -> 941,393

27
2021/Day6/Day6.py Normal file
View file

@ -0,0 +1,27 @@
def calc(fish: {}, days):
for i in range(256):
toAdd = fish["0"]
for key in "012345678":
if key != "8":
fish[key] = fish[str(int(key) + 1)]
fish["6"] = int(fish["6"]) + toAdd
fish["8"] = toAdd
sum = 0
for key in fish:
sum += fish[key]
return sum
if __name__ == '__main__':
with open("input.txt", "r") as f:
raw = f.read().strip().split(",")
fish = {"0": 0, "1": raw.count("1"), "2": raw.count("2"), "3": raw.count("3"), "4": raw.count("4"),
"5": raw.count("5"),
"6": raw.count("6"), "7": 0, "8": 0
}
print(calc(fish, 256))

1
2021/Day6/input.txt Normal file
View file

@ -0,0 +1 @@
5,3,2,2,1,1,4,1,5,5,1,3,1,5,1,2,1,4,1,2,1,2,1,4,2,4,1,5,1,3,5,4,3,3,1,4,1,3,4,4,1,5,4,3,3,2,5,1,1,3,1,4,3,2,2,3,1,3,1,3,1,5,3,5,1,3,1,4,2,1,4,1,5,5,5,2,4,2,1,4,1,3,5,5,1,4,1,1,4,2,2,1,3,1,1,1,1,3,4,1,4,1,1,1,4,4,4,1,3,1,3,4,1,4,1,2,2,2,5,4,1,3,1,2,1,4,1,4,5,2,4,5,4,1,2,1,4,2,2,2,1,3,5,2,5,1,1,4,5,4,3,2,4,1,5,2,2,5,1,4,1,5,1,3,5,1,2,1,1,1,5,4,4,5,1,1,1,4,1,3,3,5,5,1,5,2,1,1,3,1,1,3,2,3,4,4,1,5,5,3,2,1,1,1,4,3,1,3,3,1,1,2,2,1,2,2,2,1,1,5,1,2,2,5,2,4,1,1,2,4,1,2,3,4,1,2,1,2,4,2,1,1,5,3,1,4,4,4,1,5,2,3,4,4,1,5,1,2,2,4,1,1,2,1,1,1,1,5,1,3,3,1,1,1,1,4,1,2,2,5,1,2,1,3,4,1,3,4,3,3,1,1,5,5,5,2,4,3,1,4

24
2021/Day7/Day7.py Normal file
View file

@ -0,0 +1,24 @@
import sys
def calcFuelCost(steps: int):
total = 0
for cost in range(1, steps + 1):
total += cost
return total
if __name__ == '__main__':
with open("input.txt", "r") as f:
crabs = [int(x) for x in f.read().strip().split(",")]
minFuel = sys.maxsize
for i in crabs:
totalfuelcost = 0
for x in crabs:
totalfuelcost += calcFuelCost(abs(x - i))
minFuel = min(totalfuelcost, minFuel)
print(minFuel)

1
2021/Day7/input.txt Normal file
View file

@ -0,0 +1 @@
1101,1,29,67,1102,0,1,65,1008,65,35,66,1005,66,28,1,67,65,20,4,0,1001,65,1,65,1106,0,8,99,35,67,101,99,105,32,110,39,101,115,116,32,112,97,115,32,117,110,101,32,105,110,116,99,111,100,101,32,112,114,111,103,114,97,109,10,1247,39,529,198,497,33,1618,2,28,653,764,312,163,62,263,4,243,1277,8,432,324,564,44,56,745,0,534,558,1026,313,482,410,411,63,461,261,561,62,428,42,1806,251,1186,553,241,795,127,1004,94,183,382,194,890,1025,1153,1064,155,278,203,666,1098,678,228,12,530,226,680,476,74,122,136,64,515,630,137,187,146,249,77,879,1174,257,9,353,1496,239,131,21,330,922,110,5,804,2,1195,756,195,399,1306,1495,1088,687,102,901,222,3,717,853,1242,573,406,645,1211,193,319,35,302,677,704,42,69,228,247,420,401,1006,124,662,355,746,483,211,1484,146,104,314,154,170,932,215,1600,1250,20,134,1038,724,728,157,261,1373,1113,449,339,415,1165,172,956,466,327,1342,27,1031,1233,547,636,100,440,510,154,28,949,222,867,11,297,218,814,169,358,1088,1071,630,1360,1106,249,13,312,7,56,1667,948,69,767,279,1032,82,139,636,592,684,294,952,83,252,158,450,1250,78,548,1052,1,1231,888,253,533,637,694,955,448,1351,1569,1060,65,269,450,102,962,408,259,61,20,437,14,1676,16,533,90,1727,623,286,48,395,169,271,140,652,139,1497,356,98,60,362,964,880,934,544,140,322,428,80,215,192,300,431,126,46,109,780,209,776,203,443,60,889,21,882,22,127,476,694,174,226,1041,364,282,541,429,755,770,931,967,1346,1240,647,150,199,137,181,1177,571,150,1104,56,517,286,1204,346,619,1269,307,425,228,254,328,570,956,1567,810,356,196,77,31,429,1178,6,502,310,443,1221,119,571,583,18,256,460,694,650,799,200,121,119,125,894,1263,610,892,635,93,320,252,371,1416,150,664,154,344,381,610,819,591,536,1312,1521,148,1232,70,50,328,226,752,1685,729,449,31,963,402,62,1365,928,619,538,950,202,19,271,292,59,55,345,189,302,29,217,486,1576,62,1364,122,1667,388,62,182,1278,13,459,729,821,293,78,5,111,135,868,94,196,14,342,185,271,1055,350,363,235,137,142,31,30,466,922,436,1174,81,114,244,770,54,288,579,4,1287,36,321,849,751,1081,342,359,829,1147,1092,125,269,1652,493,22,456,193,49,70,288,4,954,1718,84,154,24,171,220,1033,66,289,395,1732,1553,616,411,899,1398,402,219,621,343,293,422,494,80,732,1210,449,72,236,307,541,10,620,1361,605,351,1304,475,215,989,153,8,1229,113,216,3,170,998,308,964,1755,223,1694,1937,60,41,1120,491,1270,766,501,326,236,632,163,880,963,1213,1030,444,229,425,239,834,59,66,580,488,303,475,457,1182,150,1273,53,22,53,224,536,945,824,56,694,187,586,555,1464,188,538,286,120,260,38,70,13,678,916,542,235,1138,34,259,12,280,178,45,213,1,580,268,114,1076,536,185,825,374,282,186,3,356,393,385,597,53,187,288,10,194,447,949,521,84,124,16,221,153,800,969,241,40,76,565,7,238,252,13,276,461,30,1034,129,204,657,793,630,1068,97,537,226,155,363,531,458,123,442,1155,371,196,1764,1049,73,258,853,2,653,923,189,472,1119,582,974,948,447,161,1737,765,93,369,48,293,762,58,2,1282,242,67,1310,129,468,425,116,471,768,291,878,1138,569,427,725,515,67,526,766,213,1307,288,1589,1304,3,287,1050,14,7,428,1684,479,355,72,1233,21,1449,284,11,27,315,274,181,215,486,247,946,59,158,432,231,178,1722,13,189,439,13,72,211,239,841,175,893,234,328,154,134,13,653,31,40,303,110,172,113,515,69,1009,1413,450,172,168,92,385,1555,216,1487,72,173,339,496,779,1696,153,49,342,1225,141,873,402,777,269,767,361,108,536,1432,343,23,380,716,1609,958,1512,743,246,315,220,1634,16,405,61,1150,350,620,1,13,749,9,738,1391,334,148,1142,220,662,1612,878,65,164,235,95,499,929,399,1675,886,86,452,238,487,354,103,7,372,428,971,419,41,56,613,126,819,354,170,1025,1183,2,1201,813,339,272,400,13,221,1021,182,192,1239,52,508,266,42,504,1281,779,1629,46,65,541,1004,115,384,922,89,372,56,211,419,420,149,316,670,1271,253,845,260,25,624,402,54,270,1366,831,170,47,11,235,106,757,854,1343,548,32,29,283,200,11,443,12,372,239,165,440,1099,104,686,335,656,1182,994,1126,14,503,508,766,634,744,660,102,56,449,227,96,357,23,83,653,519,144,9,59,892,253,984,777,178,629,82

21
2021/Day8/Day8.py Normal file
View file

@ -0,0 +1,21 @@
if __name__ == '__main__':
with open("input.txt", "r") as f:
data = [x.split("|")[1].strip().split() for x in f.readlines()]
for d in range(len(data)):
for entry in range(len(data[d])):
data[d][entry] = "".join(sorted(data[d][entry]))
one = "cf"
four = "bcdf"
seven = "acf"
eight = "abcdefg"
entries = 0
for d in data:
for entry in d:
if len(entry) == len(one) or len(entry) == len(four) or len(seven) == len(entry) or len(eight) == len(entry):
entries += 1
print(entries)

143
2021/Day8/Day8_2_Reddit.py Normal file
View file

@ -0,0 +1,143 @@
def AOC_8_a():
with open("src/input8.txt") as file:
lines = file.read().splitlines()
lines = [x.split(" | ")[1].split(' ') for x in lines]
total = 0
for line in lines:
for item in line:
if len(item) == 2 or len(item) == 3 or len(item) == 4 or len(item) == 7:
total += 1
print(total)
def AOC_8_b():
with open("input.txt") as file:
lines = file.read().splitlines()
lines = [x.split(" | ") for x in lines]
total = 0
for (lefthand, righthand) in lines:
lefts = lefthand.split(' ')
digits = fill_dict(lefts)
digits["2"] = find_two(digits["1"], digits["len5"] + digits["len6"])
digits["9"] = find_nine(digits["4"], digits["len6"])
digits["len6"].remove(digits["9"])
digits["5"] = find_five(digits["2"], digits["len5"])
digits["len5"].remove(digits["2"])
digits["len5"].remove(digits["5"])
digits["3"] = find_three(digits["len5"])
digits["6"] = find_six(digits["5"], digits["len6"])
digits["len6"].remove(digits["6"])
digits["0"] = find_zero(digits["len6"])
del digits["len5"]
del digits["len6"]
number = ""
for item in righthand.split(' '):
item = "".join(sorted(item))
for key, value in digits.items():
if (value == item):
number += key
print(number)
total += int(number)
print(total)
def pd(dict):
for (key, value) in dict.items():
print(key, ": ", value)
# 0 is the last number to find, and is just the last remaining not used string
def find_zero(candidates):
return candidates[0]
# 2 is the only digit that shares a unique single segment with 1 (5 and 6 also share
# a single segment with 1, but they're thus not unique) among unknown digits. We need both len5 and len6
# to check for this uniqueness.
def find_two(segment, candidates):
az = {x: shares_only_one_segment(x, segment) for x in candidates if shares_only_one_segment(x, segment) is not None}
return least_frequent(az)
# 3 will be the only len5 segment not assigned at this point
def find_three(candidates):
return candidates[0]
# 5 is the only digit that shares three segments with 2
def find_five(segment, candidates):
for can in candidates:
if (shares_x_segments(segment, can, 3)):
return can
# 6 is the only digit that shares five segments with 5
def find_six(segment, candidates):
for can in candidates:
if (shares_x_segments(segment, can, 5)):
return can
# 9 is the only digit that shares four segments with 4
def find_nine(segment, candidates):
for can in candidates:
if (shares_x_segments(segment, can, 4)):
return can
def least_frequent(dict):
list = [value for (key, value) in dict.items()]
lowest_value = min(set(list), key=list.count)
for key, value in dict.items():
if (lowest_value == value):
return key
def shares_only_one_segment(segment, candidate):
total = 0
for a in segment:
for b in candidate:
if (a == b):
total += 1
shared = a
return shared if total == 1 else None
def shares_x_segments(segment, candidate, x):
total = 0
for seg in segment:
for can in candidate:
if (seg == can):
total += 1
return total == x
def fill_dict(lefts):
digits = {"len5": [], "len6": []}
for num in lefts:
num = "".join(sorted(num))
if (len(num) == 2):
digits["1"] = num
if (len(num) == 4):
digits["4"] = num
if (len(num) == 3):
digits["7"] = num
if (len(num) == 7):
digits["8"] = num
if (len(num) == 5):
digits["len5"].append(num)
if (len(num) == 6):
digits["len6"].append(num)
return digits
if __name__ == '__main__':
AOC_8_b()

200
2021/Day8/input.txt Normal file
View file

@ -0,0 +1,200 @@
dbc gfecab afcdg dfebcag bd dgbe bcaeg dcefab ecgadb agcbd | acdgb gbcda gdecfba bacge
bacdegf aefbdc ebf fdbcag edbfa gdaeb acfdb cdegbf face fe | ebf ecdabf fcbad afcdbg
cabgde gd becgfd dgfe cebgf gfdeacb fdbac bcgaef bgdfc gdc | cbfad dg dgef ecfbdg
adecgf egfdc cgeadb adbfce dafg bcfeg dge dg fadec dcbegaf | dg dcegf cdgafe gbacfed
badeg gdbfcea acgef fgdc bgcaef cd ebcfda gadce edcgaf edc | dce efcga dbgea dc
bgfec dbfgec ebgafc afegcdb fca af cgdabf aegf badce cfabe | caf ebacf bafgec cbfeag
begacd bd cfadbeg fbecg begfd bgd cdfeag gbaedf fdba agefd | cbgfe fdab efbdg bd
bg gfdebc beg gabd fcbae fgaeb afegd gafdce dacbfge efgbda | gdba dfgae dgba gb
cfd edcfbg abfcg gfdcb gbcefda dgcbe defg df acebfd caedbg | agedcbf dgbfaec gbfecd cdf
bdcag acgebfd eac ae bade abcdgf bdacge bcgea aedgcf efcbg | cfdagb degacb eac edab
ga ebcadgf gdaf bga fgecb dfabcg adcfb gadecb fecdab gbacf | fgda gdaf agb gfda
gbcdaf fabdceg gbe ebfgad bfdga eg cefabg fdge adegb cedba | ge fcaedbg ebg aecbdfg
ab bdeag gbdefc cgafdb fgedb agb befa bagfdec ecgda agfedb | ab aefb abg ab
fgceab fcgdb fdcebg cbf gafbd cegfd bced cb cadfge cbdgafe | ecbagf cbfdeg cb bc
fgb eafdgcb cefg ebdgac fcbged fbade fg gbfed gbecd fcabdg | fg eadfcgb fgcbda gedcb
ecgfda faebc cb fadeb adecbg edfgabc bfgc cab gecaf ecbfag | fcgb bca gbcf cgbf
gfaed cg cgab abdcf fabcgd gcfda fgc fdgacbe cbdaef fcebdg | fgc cfdageb cbfgad degfa
fbacd gedfac fadegbc gbf degb ecgdf gb bdecfg gcdbf efbcag | cgedfb gb bcdfa cfdagbe
dceg deacbg acfbeg egdafbc ebfda dc bcd cgabe gbdafc dbace | cged fabegc febad ebgcfa
gbdcae cfgade dc dgbface fdage cbgfa adc gdafc dcfe gbdaef | fedc adgcf fcde dgacbfe
afdgbe cgfabe dcgeab aef feacb fbgcade bgace cgef bcafd fe | ebacf abfdegc dbfac facgeb
fbeg dgfecba cfgabd eafcb gb edacg gecfab aebcdf ebcag gcb | cfadeb gecda bg gb
bfcaeg gd fbagc fgad fgcaedb fdgbac cdaeb dgfecb cagdb bdg | cbfgda dg afcedgb egfacb
gd dcafgb dacfbe edbgacf gfbdc fbceg dbg dfag bdfca begdac | aecfdb eagdcfb fdcbgea fgdbc
gf dfgc ebfgac bfdace gabfd adgfbc acbfd ecfagbd bgf aedgb | dfgc fdcg gfb gbf
gbdae ebadf dbcfag acfdb dfec feacdbg geafcb dcbafe fe fae | efa bdcfa eaf debacgf
deafgc fbgedca gfd dcga dcgbef aecfg dg agfebc adgfe dfabe | dgf badgcef fgace cabefgd
badcg bagdce bdafgce efgbc df cbgfda cfdbg edgfac fgd adbf | dfcbg df cgbdae bdfgc
dgabe beagc gbd gfcbdae gd bdegfa bgfedc fbcdae bafde fagd | bcdfge bgd bcage dfga
adgf adgfce aecfg cdega dbgaecf abcgfe egd egcdfb dg deabc | cdgae dafg dfag afdg
fbadec afcbg begac be ebcgda dceag edgb efdcga ebdacgf cbe | adfcebg ecafbd debgac edcafg
cbd dcga cagbf dcafb cd cdebfg dgafcb baefd cbfaeg cfdgeab | fcdab geacbf gfbdce dgcafb
becd abfdc cgbaf efcda bd ebdcaf gdfaceb bdf bdgeaf cedfga | ebdc fbd bdf fbgdae
gefacd adcg fedbc cdgfe egd dg dbfega cgbfeda aecfg bcefga | defbcga efcga afgced gdecf
gfacbd fbcgde cefba efdcga bfgcead egcdf gfb gcfbe bg edgb | gb fdegc gfb fgb
ag agfdcb egfad fag adefb fdgec bdfgcae acfegd gebfdc aecg | fga ag egafd fcgebd
cadgbf cd gefbac cdfba fbead cedagb gdcf adc gacbf fgebcda | gcbafd bdcaf gfcd abdfe
fgebda fd afceb fcdeb fcad cgbed gabfcde dcabfe def befagc | eacfb efd efagcb def
beaf gfcaebd fdeag dae acdgeb gcdfa dgabef gbedf ea dcbgef | ae aed ae ade
gb dgeca gecab gcdfaeb ceafb bgc fagb adfceb baegcf gebfdc | fgba bg fecgab bg
daf gbfda afcedg geadfb fbcdg fgaebc ad dbagefc dbae aebgf | aebd eadcbgf dfa beda
dcbaef cabfd efgcba cbdgfa aedfg abecfdg ace cbde dfcae ce | cbefag ebcd cdabgf cbfda
bcgefa bgfcead cd fcbadg bdcga dac gbaed gafdce cfbd bcagf | cbfag acd cfbd bdfc
dgfcb aebgd gadefc bgfdec cbafgd cgbad egbdafc ac acbf cga | ca ac cabf abcf
cgaed gafbdec fgaedc ba baegcd edfbg agcb bcdeaf ebdag bea | gfceda ecabfgd defgacb aeb
cbfag cgdaf dcefab bac ba bdfceg cfgeb eagb cbfgea abcfdge | ba bac gabe cfbeda
efcgd ecbafdg fgabed edb ebcg adcfb be efcdgb dfcgae dbefc | dcgef ebd becg gdfaebc
fgedabc dafeb eg ged aegfbd afbecd fbgdc edfgb egaf dacegb | gaecdb cbegad fega fega
bgfcdae fbcda df eafd gbcaed bdeca gfbac gfdbce bfadce bdf | afcbdeg gabfcde deaf cbeda
fcgebda fcga bgfcd ebdfcg degba baf bafgd dfagbc bfcade af | afb agfc af cfegabd
cbfg bfd eabfdg facbdg edfcgab bf fcabd aedcf ebgdac badcg | eafdc bdf bf fbcg
fbdgce eagbfd dbacfeg dagb geabf cdeaf ebd bd fgbcae afebd | defac bed edb db
aegcd bad gdaebcf cabfg db ecbd gafdce gcabd gbcade faebdg | dab dba dba cgfba
ecdba bedacfg cdgeba dagcb bdge gdbfac fcadeg ced de acfeb | ed badfgc beacf bcgdafe
fg abdeg fgebdca agdceb gfbd gdfae fga cdefa efagbc febgad | fg bgaefc gf bgafcde
beadc gcbfed fdc bacf fc cbadefg feadc dgfea dcbefa dcgeba | cdf gefda dfc fbca
bd bgcedf decafg gafcdb acgdf agbce bafd gaefbcd cdb acbdg | fcdga afbd cbfdeg cafdgb
dabe bgcda egcdb fcdage dcebga bcfge dafgebc gdafcb ed ecd | ebad deba de gcbde
ga gadcb ebcfdg egbcd agebdc eagb afcedg dbfca dfceagb dga | dabgc ga agd adbcg
cbfagde ecdgf eabgfc fbd egbdf fageb edba dacbgf bdaegf bd | beda deab abgfe cegfd
gcdfa gfea ef bdacfeg aedbc efc gfebdc adgbcf fecad aefcdg | feadc fe efc fgcad
gdcae fga af acegfb fbda gfead edfgbc agdfecb dbgafe fdbge | fabd gfaed efgbd dagce
afdebg febc cdbae abe eb dbfcea dabcfeg aecgdf dabgc dafce | cefb cedgaf eab acefd
fgc dcabg gbdefac dfeg ecfdgb bfgcd gebcaf beafdc fg edbfc | cdfeb fcagbe fgbdace febdc
aegfbd gacdeb fdeacgb dea dgcefb faeg bdfac dgefb ae debaf | debfg dea ea ead
acgedb cfgae egfcbda fdeac eacbfd fd bdagfe dabec def fdcb | fed fd fcbd fde
dba bgcfde da cdaf acfbgde fbgdc fgadeb dcbag agbec acgfdb | gacbdef adfgbe bgcad fcdabge
acdfe cfgdab cdgea afgcebd dcgbae daf gfea fa egdfac bedfc | fa fad fa cedga
caedg bafgde egcba dabegc agd fecdbga bcfeag fecdg ad abdc | gad cbeag dag cabd
adfebg fedcagb fagdc gda eadc degcf gdafec ad cdbfge facbg | da aedc cbfgdea ad
ecfdba dg dgafec gcabdfe fbadg fadcb gbdfca gfd bgefa dgbc | cgbd dbcaf cgdb dbgcfa
ebacg eb begd dcebaf cdgea gafdce ecb cagfb bfadcge egcdba | bgdaecf bedacg dbeg cbdgae
ebdagcf cgbea fe agefbc abgdf agfeb egafdc bcef feg deabcg | cegabd ecgafbd ef fe
cd cgebdfa fgeabd cbd cabed gfbdec adcf abgce eafbd fcebad | efabcdg bcefgd baedc abfde
acfg gbacfd edgfabc bdcaf dca caebdg dafbe gbcdf ac dfbgec | bgcfed cda dbgfc acd
agdbefc abdc ecd gfcae aedbf gbcdef ebafdg ecadbf efadc cd | afdeb cde dbafce bfadge
begad de fged gfbea dbe gbdac ebfgdac efgabd cadfbe fegabc | de dgfe cgfaeb gadbc
gefdc gdfb gdbcaef deb ebfcd gcebad bd dacefg gdcbef fabce | gfedabc deb gcfade fdgb
bdec dagcf cefbg bfgace bgedfc edacfbg fgdec fde adgefb de | dbfaegc cedb edfabcg fcdeg
eaf gabed cabegdf fe ecbgaf fadeg gadfc fcdega cfde cbgafd | adgef fced cgdbafe fae
fcbaedg gadce abcg ceb bgedf adfbec decagf bc dbceg eabdcg | ceb bgafecd cabg acefbd
dagb cfgde acgfeb fbgac fcgdb bd dbf cbfagd fcbeda bcefgad | db fegdbca dbceafg aedbfc
edagb da dab fbdge cgdfbe acegb adfe abdgfce dfgeab bfgcad | abd dab gfbead eagbc
bdfega dcbgf efcgabd ce fec fcegd agce fegad daebfc efdcga | ec ecf dgacef bfecad
cdabgef bgdfe aecgb gcfa fc acgebf dcaebf dcbgae cfgeb efc | fc fcga bfecga faecbdg
dfeac gdfcea fcg acdebf cdge cgefa bdcgaf cg fegbdac bfage | cfg cfg gfeca fegac
bfad bcf bedcga cadeb bf bceafd bcegfd dbaegfc ecfga cfbae | efacdb afbd bcf fb
aegfcd bcdeg abcefg gcfea bcgafed bga afbe bagec ab fbdgac | gceba gacbe gbacef gab
dca ebda bdfaceg acgdb gbcdea begcd efbdcg efacgd bfagc ad | adcbeg ad cbfga cfbgeda
fadebc gcfbea becgf gf fgc abfg ecgbd dfecabg fcedag eafcb | ebfgc gaedfc bgcef gedabfc
fadg eafgb gbead bdaec ecagbf dg gdb agfebd aedcgfb cfgbde | bfecdag bgd badce gd
egcd efadb gacbfd bcaeg ecadgb adc bacegf adecb dc agedcfb | fcgabe degc acd cd
bedfcag gc fagdec gfabce bfgec acgb befac gfc bgdef aecfbd | cg ebfdg cfg gc
aegbdf gfabced fadebc gfde ed bcaeg fbgda eadbg fgbacd bde | dbcefag bed afcbged aegdb
agd fagec cfbgda bfceagd fgeacb cdae gdbef dagef da efcdga | edbgf gda gedaf cdgfaeb
fgaec eb fcgbd agfdeb cedb fabcdeg egb febcg dfbgec cdfgab | fgbcde dbeafg egcfdba gcbfd
gfe fdbae ge bfgdc dgfaec cgeb dcfgbe dabfgc fdegb eabgcdf | gebc gceb defbcag afbcedg
dfce cgbed fbcagd bcdgf ged bdfgae ed bdfceg agebc fabdegc | fcde gde gecdbf de
dba dcafbg gcdefb fbged dgeab bfegad gaecd ba aebf egafdcb | beadg cfdbage bgafde acdge
bcgdef cbdgeaf ae fbdace afbde gcdabe gdbfa edbcf fcea bea | dgafb adbfce ea fbdecga
afdg fgebc fdeacbg fd gadcb fdcgb gfacbd gbeacd acdfeb dfc | fd bdcafeg caefbd dafg
dfebag defa bdgfa beafg agbcfd eab cbagefd cfgbe ea acbgde | abdcge abe ae fecbg
ef bgfdeac bdcefg cfdba ecf dgecba gfae abgefc ecbga acefb | debcag afge efag fe
cg gbfc gabcd bgade dgc gbecafd egdfac dfbac abdcfe gabfdc | gcbad degfabc cgafbd adbgcf
edbcgf acgbf fbaedc cbfae gfc agcdb dagecfb fg fcgbea eagf | fg adcbef fbeac fadcgeb
deacg daeb dagbce ecdbgf edc ed bgaefc gecba dagcf abdgecf | cdaeg abcge dec ecd
fcgadb caged bedc cdabeg dfaecbg befag db dgb eagbd gacdef | fecagdb begad dgb db
fbcdga fgcad fecdg gcedab bfca adc ac bfdga dbfega eafbcdg | adc cbgade fgcadb ceabgd
cefdbg gde bgfeac ed begcd cbefg bfde aedcgf cbafegd gacbd | fegbdac gcbefd cbgef bgedc
bfdagc afdc bagcf gbfdc begcd begdaf beafgc dbefgac gfd fd | fcda df dfac dcbfg
gcbfe bfeacg cedbf ge bfcga gfe gfecda ecbgdfa bgfadc bage | feg eagb gef abfgc
bgfec bac abecdfg ab gdcea ebgcfa fagb aebcg caebfd gfcbed | ab ab cba acgbe
gdbcf cbedg ce ceg abcgde adbeg efgcab bdfegac adec adfbeg | gaecdfb bedga cge cead
eafcb cfdbe aeb acfeg ab dcgbfe adfb fgacedb ecabgd fdbcae | fbcde aedfcbg bea edcbf
ebdca egc cgabe fbge cgbfda ge bacfg geacbf afdgec gebacfd | badce cge bgfcea ge
gdfecb bdge gdf dgbcaf aefbgc bfecg fgdec dg ecdbfga deacf | dgf fedcagb gd gcedf
agdeb cfdbag gcabd ed dacegbf gebfa eagbdc acde efcgbd edb | ed eagdb de de
feag cfgbed feacbdg cfgade efcdg fcgdab afd dfeac af abedc | cbagfde dbagfc faeg dgabcf
cdg efgbcd decgfa dcegb dgbf gd ebdcfga adebc gbcfe cefagb | bfecg dgbf gdbf dg
gab dfceag gdcb bg gbead agdefbc gcabef acged efdba agdceb | gdcb bgdc edbfa bag
bgafde afdgc gcafed efgdc ceda gdcebfa gdbacf de gbcef edg | edg gde eadfcbg cade
gdb egcfadb gdef abcfd dg ebfag gadbef abdgf aefbgc cbgaed | fedgba dbegfac bfeagd gefcdba
gad bdcag becdg gceabd dceafbg fgdeca fcgab ad baed dfcbge | cfaegdb gda ad gaedcfb
dafbeg eadgbfc fgd bagcf gedb abdfce gafdb fcdgea gd efbda | gebd fdg gaefcd deagcf
cdbe adefb ecfgbad bfcgad bacdf agcefd efd cdeafb aegfb de | gacebdf bdce fbcagd dcefab
cb acdgbe bce cdegabf bgdefa aegdb cdbg acbde fcebga fdace | ebc abfdecg ceb gbacdfe
cg fcedg edfbag ceag fdbec gdc faedcg bdcefag gbafcd dfeag | geca dgfacb cgd cg
bcafde defac dcage dgfbce gafc cgaedf cgd cg fgcedab gdeab | cdg ebadg aedgcf fagc
bdec dagbf ecagfb decbfa aefdc aeb dcegfa adefcbg ebadf be | cdbe gfadb eadfc dcbe
bcgeda fc badfe gbfdaec fcge cfd bedfc cedbg adfgbc dcgebf | cf ebacgfd fgce fdbceag
gd fgbdea dbg badce gdcab fcagedb fbacg beacfg cgfd dcafbg | fcdg gdcbfa dbg gdfc
cag cdfa cgade edgcbf fcebga begfcad gfdcae egabd defgc ac | ca agc fgbace gac
ecabf geacfb eabdcf dec cd bgecfda gfdbce edcba cdaf adgeb | ced aedfgbc dc gbeda
fbdac ea cadefg fae beag facbe bfgeacd cfdegb bgfec gfecba | agbe ea bafce egbdcf
bdc dbega abcdg gbcfa dc gcde cgbaefd cdfbae eagdbf ebgadc | adefcb agcfb cdb gced
ceb ce debfca abgdfe bdaeg cabegd caeg dbgec dcbfg bdecgfa | ce abegd gdfcb fcbdgae
cafedgb dgf bcfd cgdfbe acedfg gbfed agedb aecgfb bfgec fd | fdgbec feacdg df bgcfe
ef abgfc cagfeb gdebfc fbae bcadfg defgabc feg gefac gceda | degac gfbac gabfc gfcea
bfdeca bd eabfgc degbcfa cgdb gefbc dbf ecfbgd gaedf edgfb | dbfge bdf egbfca db
fac cbdfg eacfbg gaecfdb bacfd bfeda acgd ac gbfecd cgfadb | dagc ac dcga bedfa
egfbca aegcf gdcfab fdc adce fcedg cd cfgead fdebg cedagbf | dcgfe fdgbcea aedc cfebga
da bfged afedcb gcebdf gefda fedbga edgbfca gdba eagfc eda | ead dcfebg defcgb efgbcd
adefgb ecgf gcedb fedacb bec fbecdg cdfaebg gedfb gcbad ce | dcbfeag cfbged efgbad bcdfage
dfec gcd agdbe bdafgc afcbge bgecfad bgcde bgfce bgedfc cd | fbecag beagdfc cgd cedf
edbc agcfbe adefg cd defca gfabdc cad dgabefc dfebac bceaf | dbce ebdc febcdga cdgbefa
ecdb eb acgebdf ebf dcfebg bgdefa fcgbd gcdbaf feacg cfebg | bef ecfbg egdcbfa cdgfb
ebfcgd aefcb bfadge efd ed adfcgb fbgdc bfedagc fcebd dcge | gced fbcgd edgc ed
beagf cefbag ebafc gfce gdfeab fcaedbg ec dfcba ecb gbadec | ce acfdb dbgcafe ec
abegfc fbcged bgfea fecabdg gef ge abdgf gaec afecb cfbdea | cbfaedg bface gfe efabgc
bdg bacd edagb fbegac fgaed bdgcae cgbea dfbegc ecgafdb bd | gdeaf cfdgbe gbcaed bd
fbce fdegca egafb aef egdcfba eabgc fe ecdabg agfbd ecgbaf | fadgb cbage bcgdea abfgec
dbafge fedgcab efgdbc bc fbac fbdea gceda bfceda bdcea ebc | eadcb fcdeab cafb bdecgf
cbgae fec aefgcb acfeg fe efgcbd bgceafd fbea cagbed dcfga | edbagfc acefg gbdface ecf
cbfdga bae ebdf fbadge afdgb gfeac acbdge bdacfeg eb agfeb | edbf bea efdcbag aeb
efdcgab bedgaf aecbgf cgfe gfaeb cbgea ecbfad ec gdcab ecb | cgfe eabfg eabgf ec
bdefa dfebgca bfe eadfcb dcbage bfgad debca cgebaf ef cdfe | gacdbe eagcfbd afcgebd dfgbace
gca ebdcfa fdcgea acedb bdcgf eabg gbacde bcgdeaf ga gacdb | ebag abge gac aecdb
abcgf afgcbe baeg gbc ecdbgf gafce facbd cfgade bg egabdfc | aegb cgb bcdgef abcgf
ecagbf bdfgca ecgfd gbe fecgb dafgecb bacfg bgadec efba eb | geb cadfebg beaf be
agcdb bgcaf bf fadebgc daecbf gbdf fbc ebgcda afegc bgcafd | facgdeb dbfg fb bf
fdbeag cgd bdefcag afegd eacgdf dc dgefc ebcagd gfebc facd | geadf dc dc cdg
adcgfe cgebf acdbf abcedf dgfbaec edba cabef ea afe dfagcb | bfgec bfeca ae deba
adegb bgcd cbdfgea dc cedba cagefd dcbgae gebdaf faebc ced | egadb ced dcbg dc
fdeg gd fdbaec bfacg dgcfa ecfdga fadcegb fdcea dceabg gda | efgd eacdfb bcfadeg dag
af ebgfda ecagdb febgc afe dabce cfda febcda baecf becafdg | fa dbfega fa bfeagd
debagfc cbdgfe dcb fdbeg cegb fbced fcead cbdfga bc fabdeg | dcb efadgb dgcfeab ebafdg
cgfdae bdef becfg gcbefa ed abcdg gedcb cgbdef bdcgefa ecd | cde dec bfed bfcgdea
dcfegab becdg gcaedb egd bcdaef gcfdb eg eafcdg cdeab ageb | ged cegafbd egd eg
ba eafcd fcbegda acfgbd bedcgf ebgcfa fabdc dcgfb bagd baf | ba cafed efdbcag efdac
aebcdgf cd efbgac bfcgd cbfga gbefd bfdcga bcad geafcd dgc | fabcged fgaceb cbda dc
cgbaedf fbceg eafbcd degcf gfdcae gdcfa dbagcf dgae edf ed | fcgeb efd ed gdea
ac agfdcbe gcea dgecf fgdca efgcad dfbeac fca fdgba gcebfd | agbdf ca ac gbdfa
gbedaf dbgfc cbg abdfgc geadbc fecbd ebcgafd cafg gc dafbg | cdbfg gcfbad gcbdea fadcegb
bagfec efg bfcdga egac abfecdg afdbge dbefc ge cgbfe acfbg | fbdeag eg eg cbdfe
edbgcf dgbac bdceag dbagf cgd ecagb bceagf cd adce cgbafed | aecd egdbca gacbe gcd
bgfdc gdfbe afdbgc gc fbdac bacg gbafdec cdg cbdefa defagc | egdfb gcabdef cdbfa dgacfb
adgcfb gcd dfecgb cgebfa bgcaf adgcf cdbafeg dg ecafd adbg | bcgaf fadcgeb gd cgbaedf
bafgd cfaebg cefa cfbgead bcf bgcea defgcb bgacf ebcgda cf | fcbgae adfbg cdfgeb adgbf
becfa bcgdf gbceadf gebcfa defa adbcge de dec cebdf bdefac | faed fdcagbe edc bfacge
ebfgd gabd gd gfbcaed abgfec faegb dge aefdbg agdfec cfebd | faecdg cgaedf baefgd dcfeb
ecabd ged aebgfc ecagd dg fdcegb afgce dgaf dcaegf cedbgaf | edcga gfda gd dge
dfg fg eafdb aegdc faged gfba debafg ebgfcad gfbdce acedbf | fedagb edbfac gf fgd
dbgca fedca bfgcad adgcf agdecb dgf cefdgba bgaedf fcgb gf | acefdgb beafdg gfd cfbg
edgacf adegcb fd dbacgfe fabd dfbce egcfb edfbac cbeda fde | dafb bafd acefbd fd
bcefa gbfd eadcgb bgfdae gedcfa abefd efd df gedba fbdgeac | bfdae fgeacdb bacfe gdceba
bdcefg aefgcd gadcb gfb decbfag dfecg bfdgc defb cefagb fb | defb fbcged dbfegac egfdc
fe cedgab cbfe dacbfge cedba fed gafcd dfaec edbfac efdgab | abgedf efcb bedac gefbad
afcgbe cf fbc cegadb bfcdea fcgabed aebdc adfgb cedf cfadb | dafbc bfeagc bcf deacbgf
ebcafdg ecfbg bae dgcabf bcaedg dfbeca ae ebcag gdacb dage | cadbeg gbacd bfdegca eba
cadbe efgbc feacbg dgfecb bgd dg bgfcad ebdgc dgef gbdefca | aefcgb gd bfagced dgb
edgcfa dgbecfa bgedac dfbaec acgdf dg abfgc egdf adcef gdc | cgd cbgfa eacgdb gcafd
cad cfbead abceg edfa fadbcg becad edgfcb bgfaedc cdbfe da | egcab afde dcabfe ecfabd
fgbdc be egb bcdefag ceba gedbac egcda dcfgae debcg gbdaef | ceba edgac eadcfg bcdaeg
cg adcfgbe edbcga gbead cbdfa cga bgedaf faecdg dbacg cebg | gcdabfe fdacge cga bcgad
gacf gf bgeafd gef gefbc efbagc bdceag fdebc acfbedg gbaec | bcgaedf egf gcefb cafdegb
fgbadce cdbag agcfd faec acfegd fa fag cfged fdabeg dbfcge | agf bagefd edgfc gdbacef
agcdb gcadfb dgfcb gfdbec adebg adc ac cfab beagdcf daecfg | ac ca bedga ca
dfa abdcfg agbf cfabd dacgb dcebf eadgcb fa gbdafce ecfgad | af fa bcdaf bgaf
ebdfc cgbaed eg edabfc gefb adfgc gdfec deg ebdfgc debgcaf | abfcde bfge gde dge
dabfegc dfegb cbgf cf fdebgc dcbaef gcfed adecg fbdgea fce | cf gbfc fgcb begcadf

0
2021/Day9/Day9.py Normal file
View file

0
2021/Day9/input.txt Normal file
View file