master
Tom Weber 3 years ago
commit 8844d186fa

1
.gitignore vendored

@ -0,0 +1 @@
.venv

@ -0,0 +1,11 @@
filename = "inputs/day1.input"
file = open(filename, "rb").readlines()
inputs = file
counter = 0
for i in range(len(inputs) - 1):
if int(inputs[i + 1]) > int(inputs[i]):
counter += 1
print(counter)

@ -0,0 +1,10 @@
filename = "inputs/day1.input"
file = open(filename, "rb").readlines()
inputs = file
inputs = [int(x) for x in inputs]
counter = 0
for i in range(len(inputs) - 3):
if sum(inputs[i + 1 : i + 4]) > sum(inputs[i : i + 3]):
counter += 1
print(counter)

@ -0,0 +1,17 @@
filename = "inputs/day2.input"
file = open(filename, "rb").readlines()
inputs = file
x = 0
y = 0
for i in range(len(inputs)):
command = inputs[i].decode("utf-8").split()
if command[0] == "forward":
x += int(command[1])
if command[0] == "up":
y -= int(command[1])
if command[0] == "down":
y += int(command[1])
print(x * y)

@ -0,0 +1,19 @@
filename = "inputs/day2.input"
file = open(filename, "rb").readlines()
inputs = file
horiz = 0
depth = 0
aim = 0
for i in range(len(inputs)):
command = inputs[i].decode("utf-8").split()
if command[0] == "forward":
horiz += int(command[1])
depth += aim * int(command[1])
if command[0] == "up":
aim -= int(command[1])
if command[0] == "down":
aim += int(command[1])
print(horiz * depth)

@ -0,0 +1,23 @@
import numpy as np
filename = "inputs/day3.input"
file = open(filename, "rb").readlines()
inputs = file
inputs = [list(y.decode().replace("\n", "")) for y in inputs]
mat = np.array(inputs, dtype=int)
ones = np.count_nonzero(mat, axis=0, keepdims=True)
gamma = 0
epsilon = 0
for i in ones[0]:
if i > 500:
gamma = gamma * 10 + 1
epsilon = epsilon * 10
else:
gamma = gamma * 10
epsilon = epsilon * 10 + 1
print(int(str(gamma), 2) * int(str(epsilon), 2))

@ -0,0 +1,34 @@
import numpy as np
filename = "inputs/day3.input"
file = open(filename, "rb").readlines()
inputs = file
inputs = [list(y.decode().replace("\n", "")) for y in inputs]
oxymat = np.array(inputs, dtype=int)
comat = np.array(inputs, dtype=int)
for i in range(oxymat.shape[1]):
oxyones = np.count_nonzero(oxymat, axis=0, keepdims=True)
coones = np.count_nonzero(comat, axis=0, keepdims=True)
print(oxymat)
if oxymat.shape[0] > 1:
if oxyones[0, i] >= (oxymat.shape[0] - oxyones[0, i]):
oxymat = oxymat[oxymat[:, i] == 1]
else:
oxymat = oxymat[oxymat[:, i] == 0]
if comat.shape[0] > 1:
if coones[0, i] >= (comat.shape[0] - coones[0, i]):
comat = comat[comat[:, i] == 0]
else:
comat = comat[comat[:, i] == 1]
print(oxymat[0], oxymat[0].dot(2 ** np.arange(oxymat[0].size)[::-1]))
print(comat[0], comat[0].dot(2 ** np.arange(comat[0].size)[::-1]))
print(
oxymat[0].dot(2 ** np.arange(oxymat[0].size)[::-1])
* comat[0].dot(2 ** np.arange(comat[0].size)[::-1]),
)

@ -0,0 +1,41 @@
import numpy as np
numbers_file = "inputs/day4_1.input"
numbers = open(numbers_file, "rb").read().decode("utf-8").split(",")
numbers = [int(x) for x in numbers]
boards_file = "inputs/day4_2.input"
boards = open(boards_file, "rb").readlines()
boards = [x.decode().replace("\n", "") for x in boards]
boards = [x.split() for x in boards if len(x) > 0]
boards = np.array(boards, dtype=int).reshape(-1, 5, 5)
def is_solved(board):
if -5 in np.sum(board, axis=0):
return True
if -5 in np.sum(board, axis=1):
return True
else:
return False
def score_unmarked(board):
board = np.maximum(0, board)
return np.sum(board)
solved = False
for number in numbers:
boards[boards == number] = -1
for board in boards:
if is_solved(board):
solved_board = board
solved = True
last_number = number
if solved:
break
score = score_unmarked(solved_board)
print(last_number * score)

@ -0,0 +1,46 @@
import numpy as np
numbers_file = "inputs/day4_1.input"
numbers = open(numbers_file, "rb").read().decode("utf-8").split(",")
numbers = [int(x) for x in numbers]
boards_file = "inputs/day4_2.input"
boards = open(boards_file, "rb").readlines()
boards = [x.decode().replace("\n", "") for x in boards]
boards = [x.split() for x in boards if len(x) > 0]
boards = np.array(boards, dtype=int).reshape(-1, 5, 5)
n_boards = boards.shape[0]
def is_solved(board):
if -5 in np.sum(board, axis=0):
return True
if -5 in np.sum(board, axis=1):
return True
else:
return False
def score_unmarked(board):
board = np.maximum(0, board)
return np.sum(board)
solved = False
solved_boards = 0
current_number = 0
solved_boards = []
last_board = 0
for number in numbers:
boards[boards == number] = -1
for i in range(boards.shape[0]):
if is_solved(boards[i]) and (i not in solved_boards):
solved_boards.append(i)
if len(solved_boards) == n_boards:
last_board = i
last_number = number
if len(solved_boards) == n_boards:
break
print(score_unmarked(boards[last_board]) * last_number)
# score = score_unmarked(current_board)

@ -0,0 +1,32 @@
import numpy as np
file = "inputs/day5.input"
numbers = open(file, "rb").readlines()
numbers = [x.decode().replace("\n", "").split(" ") for x in numbers]
start_x = [int(x[0].split(",")[0]) for x in numbers]
end_x = [int(x[2].split(",")[0]) for x in numbers]
start_y = [int(x[0].split(",")[1]) for x in numbers]
end_y = [int(x[2].split(",")[1]) for x in numbers]
max_val = max(max(end_x), max(end_y))
vents = np.zeros((max_val + 1, max_val + 1))
for i in range(len(start_x)):
if start_x[i] == end_x[i]:
if start_y[i] < end_y[i]:
start = start_y[i]
end = end_y[i]
else:
start = end_y[i]
end = start_y[i]
vents[start_x[i], start : end + 1] += 1
if start_y[i] == end_y[i]:
if start_x[i] < end_x[i]:
start = start_x[i]
end = end_x[i]
else:
start = end_x[i]
end = start_x[i]
vents[start : end + 1, start_y[i]] += 1
print(len(vents[vents >= 2]))

@ -0,0 +1,50 @@
import numpy as np
file = "inputs/day5.input"
numbers = open(file, "rb").readlines()
numbers = [x.decode().replace("\n", "").split(" ") for x in numbers]
start_x = [int(x[0].split(",")[0]) for x in numbers]
end_x = [int(x[2].split(",")[0]) for x in numbers]
start_y = [int(x[0].split(",")[1]) for x in numbers]
end_y = [int(x[2].split(",")[1]) for x in numbers]
max_val = max(max(end_x), max(end_y))
vents = np.zeros((max_val + 1, max_val + 1))
def draw_diagonal(mat, x1, x2, y1, y2):
length = abs(x2 - x1)
if x1 < x2:
xincr = 1
else:
xincr = -1
if y1 < y2:
yincr = 1
else:
yincr = -1
for i in range(length + 1):
mat[y1 + i * yincr, x1 + i * xincr] += 1
return mat
for i in range(len(start_x)):
if start_y[i] < end_y[i]:
y1 = start_y[i]
y2 = end_y[i]
else:
y1 = end_y[i]
y2 = start_y[i]
if start_x[i] < end_x[i]:
x1 = start_x[i]
x2 = end_x[i]
else:
x1 = end_x[i]
x2 = start_x[i]
if start_x[i] == end_x[i]:
vents[y1 : y2 + 1, start_x[i]] += 1
elif start_y[i] == end_y[i]:
vents[start_y[i], x1 : x2 + 1] += 1
else:
vents = draw_diagonal(vents, start_x[i], end_x[i], start_y[i], end_y[i])
print(len(vents[vents >= 2]))

@ -0,0 +1,20 @@
import numpy as np
file = "inputs/day6.input"
numbers = [int(x) for x in open(file, "rb").read().decode().split(",")]
days = 80
current_day = numbers
for day in range(days):
next_day = []
for fish in current_day:
if fish == 0:
next_day.append(6)
next_day.append(8)
else:
next_day.append(fish - 1)
current_day = next_day
print(len(current_day))

@ -0,0 +1,16 @@
import numpy as np
file = "inputs/day6.input"
numbers = [int(x) for x in open(file, "rb").read().decode().split(",")]
unique, counts = np.unique(numbers, return_counts=True)
fishies = [counts[unique == x][0] if (x in unique) else 0 for x in range(9)]
days = 256
for day in range(days):
labour_fishies = fishies[0]
for idx in range(len(fishies) - 1):
fishies[idx] = fishies[idx + 1]
fishies[6] += labour_fishies
fishies[8] = labour_fishies
print(sum(fishies))

@ -0,0 +1,8 @@
import numpy as np
file = "inputs/day7.input"
numbers = [int(x) for x in open(file, "rb").read().decode().split(",")]
pos = np.median(numbers)
print(int(sum(abs(numbers - pos))))

@ -0,0 +1,20 @@
import numpy as np
file = "inputs/day7.input"
numbers = [int(x) for x in open(file, "rb").read().decode().split(",")]
def dist(n):
return 0.5 * (n ** 2 + n)
min_fuel = 999999999
best_pos = 0
for pos in range(max(numbers) + 1):
fuel = sum(dist(abs(numbers - np.array(pos))))
if fuel < min_fuel:
min_fuel = fuel
best_pos = pos
print(best_pos)

@ -0,0 +1,4 @@
import numpy as np
file = "inputs/day8.input"
numbers = open(file, "rb").readlines()

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

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

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

@ -0,0 +1,500 @@
299,462 -> 299,747
855,314 -> 855,140
981,328 -> 798,328
610,444 -> 680,374
797,242 -> 606,242
217,42 -> 147,42
735,378 -> 735,188
247,192 -> 912,192
377,341 -> 768,341
472,701 -> 66,701
48,970 -> 885,133
893,35 -> 664,35
617,237 -> 951,237
540,643 -> 190,293
575,815 -> 302,815
146,380 -> 146,562
568,481 -> 568,161
38,101 -> 921,984
613,12 -> 185,12
967,30 -> 17,980
823,620 -> 584,859
672,822 -> 413,822
259,626 -> 385,752
752,415 -> 857,310
758,659 -> 758,76
909,893 -> 35,19
964,913 -> 105,54
697,196 -> 697,913
389,821 -> 163,821
783,65 -> 281,65
775,732 -> 558,732
818,817 -> 42,817
499,537 -> 896,140
81,957 -> 81,844
851,256 -> 559,548
268,970 -> 268,170
106,216 -> 68,178
107,371 -> 850,371
160,107 -> 748,107
300,619 -> 524,395
940,196 -> 780,356
752,498 -> 752,94
807,619 -> 728,619
831,89 -> 313,89
56,389 -> 191,524
206,75 -> 206,816
486,924 -> 486,389
280,708 -> 542,446
562,917 -> 190,545
40,231 -> 40,404
804,327 -> 726,249
538,670 -> 170,302
473,229 -> 912,668
645,195 -> 645,916
502,13 -> 502,266
639,955 -> 639,434
87,56 -> 943,912
143,798 -> 699,798
469,261 -> 79,651
715,98 -> 104,709
914,339 -> 463,790
456,263 -> 456,101
656,105 -> 109,105
28,944 -> 123,944
981,652 -> 270,652
953,681 -> 605,333
474,858 -> 310,858
542,736 -> 807,736
234,412 -> 620,26
615,786 -> 36,207
169,56 -> 169,132
133,930 -> 989,74
342,34 -> 516,34
210,97 -> 947,834
43,857 -> 824,76
673,840 -> 673,156
718,123 -> 896,123
673,311 -> 673,564
639,352 -> 72,919
552,571 -> 661,462
819,335 -> 953,335
756,84 -> 823,84
250,969 -> 287,969
551,260 -> 378,433
417,412 -> 465,412
621,260 -> 249,632
226,633 -> 394,465
475,179 -> 602,306
272,571 -> 272,839
820,666 -> 820,829
988,608 -> 974,608
124,318 -> 124,589
303,516 -> 839,516
983,477 -> 983,786
299,870 -> 927,242
284,875 -> 213,875
427,493 -> 545,493
74,755 -> 17,698
294,326 -> 294,23
331,193 -> 391,193
381,671 -> 408,644
805,537 -> 805,155
721,956 -> 10,956
918,36 -> 918,915
981,891 -> 445,355
591,288 -> 933,288
199,256 -> 250,307
318,810 -> 789,339
250,245 -> 522,517
592,248 -> 958,614
722,215 -> 235,215
654,496 -> 654,905
76,860 -> 678,258
29,20 -> 954,945
379,851 -> 567,851
722,161 -> 13,870
965,302 -> 390,877
114,892 -> 114,348
265,681 -> 26,920
94,463 -> 94,160
340,150 -> 340,759
727,612 -> 175,60
457,951 -> 154,648
602,200 -> 602,841
487,194 -> 27,654
356,699 -> 887,168
915,237 -> 262,890
81,225 -> 815,959
227,877 -> 694,877
441,674 -> 441,968
865,201 -> 865,528
969,214 -> 511,214
802,748 -> 802,86
662,313 -> 636,313
308,447 -> 308,545
245,236 -> 532,236
621,195 -> 621,140
889,159 -> 197,851
68,683 -> 179,572
859,261 -> 56,261
982,539 -> 982,619
144,362 -> 851,362
304,905 -> 304,553
551,905 -> 637,905
432,316 -> 142,606
104,588 -> 104,862
316,392 -> 680,392
372,413 -> 866,413
874,53 -> 697,53
499,668 -> 499,329
32,207 -> 802,977
403,108 -> 100,411
578,442 -> 578,489
134,161 -> 848,875
851,935 -> 95,179
485,190 -> 485,57
411,47 -> 680,47
378,878 -> 378,127
908,717 -> 516,717
432,863 -> 328,863
212,278 -> 212,326
552,426 -> 933,807
419,329 -> 492,402
975,750 -> 424,750
40,54 -> 915,929
570,349 -> 576,349
32,784 -> 32,473
854,407 -> 343,407
18,932 -> 425,932
223,571 -> 468,816
939,330 -> 939,870
126,637 -> 105,616
84,310 -> 84,788
491,890 -> 229,890
737,831 -> 737,726
137,471 -> 137,957
642,429 -> 253,429
319,103 -> 903,103
38,872 -> 38,110
809,183 -> 809,653
877,87 -> 56,908
455,136 -> 693,374
218,647 -> 727,647
626,544 -> 797,544
147,46 -> 122,46
316,430 -> 495,430
608,469 -> 331,192
353,769 -> 714,769
649,90 -> 410,90
105,311 -> 105,674
594,600 -> 484,600
822,933 -> 279,933
478,267 -> 478,341
114,912 -> 114,387
843,480 -> 754,480
747,701 -> 747,143
646,88 -> 646,375
195,129 -> 757,691
470,895 -> 470,673
450,595 -> 334,711
165,872 -> 165,155
744,947 -> 987,947
153,15 -> 357,15
272,222 -> 272,201
535,551 -> 120,966
102,748 -> 102,281
348,482 -> 129,482
499,679 -> 499,821
399,875 -> 399,285
695,585 -> 733,547
40,509 -> 95,564
199,857 -> 228,886
491,885 -> 978,885
926,887 -> 104,65
492,128 -> 957,593
302,904 -> 302,906
706,782 -> 706,217
721,506 -> 721,675
847,725 -> 583,989
225,734 -> 942,17
141,161 -> 161,161
858,736 -> 858,433
183,724 -> 13,554
299,647 -> 299,420
623,39 -> 358,304
657,373 -> 657,976
452,714 -> 452,735
857,537 -> 392,72
758,979 -> 758,457
141,609 -> 141,100
266,76 -> 974,784
527,66 -> 236,357
971,176 -> 865,282
961,935 -> 74,48
328,434 -> 328,663
384,670 -> 12,670
534,508 -> 334,508
336,603 -> 202,469
690,140 -> 807,140
491,511 -> 491,166
265,493 -> 236,493
552,113 -> 552,329
370,542 -> 370,688
919,556 -> 488,125
142,949 -> 107,949
917,824 -> 360,267
866,109 -> 624,109
714,657 -> 714,155
727,567 -> 727,570
235,920 -> 235,683
329,261 -> 55,261
672,718 -> 113,159
469,380 -> 66,783
884,289 -> 884,15
412,197 -> 496,197
971,875 -> 20,875
831,245 -> 831,946
22,985 -> 391,985
984,136 -> 187,933
845,334 -> 660,519
367,299 -> 367,912
25,985 -> 946,64
487,416 -> 487,453
89,223 -> 723,857
890,953 -> 19,82
199,256 -> 199,521
785,981 -> 710,906
673,160 -> 673,682
65,730 -> 421,730
957,89 -> 832,89
647,361 -> 33,361
243,347 -> 784,888
50,760 -> 50,372
564,278 -> 564,846
344,652 -> 832,652
219,586 -> 219,502
976,500 -> 976,650
515,265 -> 744,36
930,730 -> 930,332
479,48 -> 592,48
979,326 -> 374,326
790,520 -> 375,520
129,919 -> 511,537
203,558 -> 212,558
688,842 -> 502,842
979,976 -> 90,87
78,929 -> 78,478
578,203 -> 802,427
788,360 -> 260,888
847,342 -> 212,977
256,578 -> 821,13
493,561 -> 712,342
90,116 -> 181,116
317,736 -> 963,90
453,548 -> 37,548
15,472 -> 514,971
972,579 -> 956,579
456,66 -> 349,66
102,771 -> 769,771
320,741 -> 327,748
981,150 -> 592,150
739,978 -> 739,804
861,10 -> 142,729
457,596 -> 580,596
358,287 -> 237,408
705,719 -> 59,73
27,770 -> 27,133
846,690 -> 846,464
138,351 -> 174,315
380,942 -> 380,985
490,421 -> 803,734
559,449 -> 761,449
709,218 -> 718,218
271,877 -> 271,814
89,845 -> 918,16
613,436 -> 976,73
27,88 -> 867,88
541,965 -> 739,767
187,746 -> 916,17
294,13 -> 333,13
600,647 -> 925,647
915,942 -> 41,68
38,625 -> 176,763
468,905 -> 468,727
337,89 -> 337,581
48,969 -> 732,285
555,301 -> 555,610
155,525 -> 985,525
235,167 -> 700,167
728,134 -> 728,289
696,595 -> 892,595
983,696 -> 401,114
581,40 -> 515,40
171,837 -> 975,33
588,683 -> 734,683
880,132 -> 231,132
847,145 -> 332,660
657,179 -> 657,18
49,957 -> 496,510
791,497 -> 552,736
988,989 -> 10,11
937,659 -> 937,461
403,458 -> 403,637
237,765 -> 237,813
35,504 -> 35,663
556,897 -> 802,897
382,491 -> 786,895
103,566 -> 528,566
598,570 -> 623,570
345,343 -> 345,985
537,59 -> 537,386
207,811 -> 974,44
463,623 -> 463,21
966,915 -> 966,965
569,281 -> 569,183
470,648 -> 470,666
441,420 -> 817,796
451,723 -> 908,266
300,297 -> 840,297
902,201 -> 902,912
598,930 -> 654,930
874,433 -> 874,176
551,967 -> 795,967
892,23 -> 137,778
306,463 -> 679,90
16,78 -> 16,980
782,749 -> 782,117
235,240 -> 244,231
461,183 -> 981,183
608,170 -> 608,640
75,711 -> 645,141
49,238 -> 488,238
14,963 -> 947,30
120,56 -> 120,73
630,978 -> 316,664
219,389 -> 803,973
106,918 -> 978,46
941,439 -> 788,592
313,943 -> 325,943
325,683 -> 325,67
774,816 -> 774,908
608,833 -> 608,679
447,289 -> 447,135
405,650 -> 405,406
622,467 -> 636,467
855,606 -> 855,663
918,640 -> 918,831
640,869 -> 640,904
481,405 -> 481,791
185,582 -> 21,746
556,772 -> 114,330
490,144 -> 490,591
60,74 -> 974,988
967,978 -> 10,21
159,669 -> 486,342
302,636 -> 302,771
841,427 -> 793,427
670,743 -> 234,743
47,676 -> 233,490
877,768 -> 123,14
139,462 -> 139,541
204,59 -> 204,300
720,702 -> 720,525
171,341 -> 787,341
699,899 -> 293,899
431,513 -> 431,849
904,278 -> 124,278
919,67 -> 815,67
401,519 -> 688,232
675,279 -> 675,137
376,786 -> 362,786
57,817 -> 801,73
809,468 -> 410,867
669,171 -> 669,65
520,36 -> 218,36
702,159 -> 709,159
399,646 -> 399,828
853,759 -> 853,91
58,143 -> 867,952
896,939 -> 42,85
677,120 -> 646,120
947,714 -> 737,714
515,107 -> 752,344
793,142 -> 793,789
86,896 -> 967,15
663,493 -> 833,493
986,766 -> 293,766
71,874 -> 71,417
471,426 -> 148,426
444,982 -> 142,982
124,582 -> 846,582
336,436 -> 257,436
877,750 -> 177,50
69,73 -> 911,915
315,363 -> 315,45
620,272 -> 556,272
616,186 -> 331,186
766,756 -> 59,49
555,271 -> 555,183
437,246 -> 454,246
169,57 -> 169,688
448,605 -> 420,605
194,149 -> 960,915
597,308 -> 597,512
328,337 -> 328,349
506,331 -> 506,144
608,633 -> 838,863
37,99 -> 767,829
128,487 -> 128,246
473,303 -> 473,529
754,890 -> 754,269
854,958 -> 957,958
704,360 -> 526,360
613,752 -> 260,752
179,302 -> 805,302
916,176 -> 519,176
318,622 -> 161,622
783,785 -> 322,785
148,289 -> 802,943
944,280 -> 671,280
758,402 -> 442,86
988,959 -> 56,27
716,642 -> 429,642
899,48 -> 899,111
981,325 -> 168,325
603,77 -> 474,77
103,387 -> 112,387
100,40 -> 160,40
969,317 -> 109,317
938,424 -> 938,179
834,980 -> 527,980
875,83 -> 22,83
89,572 -> 582,79
642,862 -> 642,247
499,26 -> 499,242
873,173 -> 206,840
314,112 -> 314,388
778,25 -> 778,944
902,457 -> 964,519
822,891 -> 623,891
538,76 -> 618,156
418,179 -> 204,179
138,131 -> 300,131
51,386 -> 51,764
756,728 -> 330,302
801,374 -> 801,506
239,416 -> 781,958
311,651 -> 848,651
67,586 -> 67,250
794,244 -> 794,515
228,810 -> 368,670
399,561 -> 682,561
919,61 -> 868,61
204,253 -> 224,253
74,657 -> 74,235
208,422 -> 722,422
246,353 -> 441,548
362,175 -> 362,688
403,681 -> 403,821
146,183 -> 23,183

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

@ -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,62,461,1087,183,1096,431,412,200,486,1543,25,580,1030,15,65,1186,9,226,173,77,119,691,855,451,88,741,221,1465,190,779,327,179,627,366,288,174,1147,49,773,3,5,65,20,172,601,307,611,699,1168,933,1295,832,242,62,8,4,226,768,33,566,21,10,937,15,760,100,574,181,89,72,1054,225,28,0,685,661,131,281,933,90,233,109,1345,81,106,636,1262,193,172,1056,709,1176,447,536,1054,929,171,226,127,274,710,917,218,192,25,128,321,1816,515,181,759,20,258,134,281,151,99,479,623,534,72,576,534,337,54,293,450,230,963,14,357,446,1244,964,16,865,52,1,1171,77,7,275,313,894,577,305,1119,393,285,354,136,1147,241,441,166,1024,650,101,178,1514,186,902,367,5,431,374,56,507,857,1316,0,186,63,118,1062,62,446,266,47,354,168,65,1036,447,689,160,749,728,791,1066,99,675,194,891,153,737,801,254,905,1046,21,413,386,204,603,373,218,440,137,1340,1616,121,903,722,841,731,213,219,405,336,1345,144,329,285,213,272,717,47,126,1137,548,32,21,755,219,595,187,143,636,476,397,185,70,345,89,319,80,867,26,1166,509,24,16,151,605,1415,893,814,473,289,377,407,44,184,290,447,1669,116,319,455,294,145,513,58,247,186,1565,31,297,1,226,1051,1561,1233,254,1274,422,547,1638,354,1855,419,71,1003,626,519,109,96,996,117,32,226,424,184,181,720,1311,1162,11,86,438,408,1269,887,612,327,133,1117,1390,345,10,370,175,37,1154,659,707,193,665,65,359,758,1253,498,219,601,59,919,1371,289,9,437,392,626,981,2,51,733,780,101,541,770,464,28,616,81,1708,1515,719,780,1214,673,268,246,25,252,301,205,27,160,0,298,69,285,58,809,1369,812,628,353,47,632,123,168,135,277,303,614,365,330,1385,1117,1346,737,744,1403,385,215,437,276,726,673,668,494,164,1,763,696,487,252,375,1253,42,1111,963,58,63,11,1648,1080,964,526,454,1349,1098,95,59,78,36,42,654,1441,1129,464,740,355,370,44,4,154,986,439,828,287,969,765,565,836,196,387,556,34,586,438,1205,760,798,6,61,260,25,418,1628,566,3,530,753,758,16,92,30,1388,109,240,513,1048,1056,588,1634,418,297,195,447,1145,198,466,0,607,180,57,58,72,319,221,869,744,339,195,1295,268,1336,1310,38,714,326,393,445,422,102,389,188,147,21,805,381,520,561,282,438,115,431,156,482,50,890,470,22,60,46,1588,971,1219,82,380,1061,948,455,99,255,400,1832,91,225,280,520,279,91,172,92,946,434,182,164,142,83,91,281,538,962,77,1104,1522,310,4,961,62,9,1257,596,464,733,338,1166,334,380,509,773,90,498,480,1523,1632,530,543,413,589,748,4,861,11,233,192,699,33,615,1853,205,270,624,1132,1100,227,1402,349,183,179,645,4,1120,962,317,326,128,422,281,302,701,53,179,34,802,272,1254,375,764,418,16,160,943,479,416,717,644,1029,372,140,114,449,351,159,305,1299,749,488,502,180,210,17,533,258,120,333,1097,185,1911,451,360,66,1329,1260,209,1611,454,809,336,783,1438,20,26,609,720,155,578,367,231,1715,64,610,465,752,81,108,389,995,244,1291,1144,159,161,1630,561,813,261,67,1604,124,231,833,14,15,1245,1309,1165,103,1270,228,1,133,644,581,218,481,716,237,155,360,110,1408,931,99,216,5,21,67,348,927,325,759,1127,557,584,696,428,653,548,247,1519,1682,132,3,1648,230,229,136,253,543,1153,204,669,58,81,357,85,82,749,503,139,32,1170,1352,151,653,1441,51,392,474,2,114,64,418,125,514,838,473,794,331,13,327,1476,836,37,3,0,115,18,1784,300,190,99,997,1164,31,1255,96,64,1101,354,698,372,852,1508,100,289,32,704,292,504,191,1342,231,692,12,369,1182,62,809,566,688,218,2,539,234,996,444,228,456,369,115,23,29,226,940,95,404,349,1254,171,69,711,2,1405,1181,34,8,92,173,533,20,181,921,201,1236,185,457,526,2,106,12,601,58,339,457,590,15,1583,473,451,1124,1569,401,72,154,9,1331,471,165,516,463,543,298,197,43,1294,101,1058,1025,1099,4,634,90,104,870,480,412,290,11,924,338,30,281,83,268,20,848,1722,1060,987,9,196,266,28,402,267,199,814,986,440,906,796,1403,1394,62,136,442,412,1729,571,459,91,730,269,172,202,772,305

@ -0,0 +1,20 @@
be cfbegad cbdgef fgaecd cgeb fdcge agebfd fecdb fabcd edb |
fdgacbe cefdb cefbgd gcbe
edbfga begcd cbg gc gcadebf fbgde acbgfd abcde gfcbed gfec |
fcgedb cgb dgebacf gc
fgaebd cg bdaec gdafb agbcfd gdcbef bgcad gfac gcb cdgabef |
cg cg fdcagb cbg
fbegcd cbd adcefb dageb afcb bc aefdc ecdab fgdeca fcdbega |
efabcd cedba gadfec cb
aecbfdg fbg gf bafeg dbefa fcge gcbea fcaegb dgceab fcbdga |
gecf egdcabf bgf bfgea
fgeab ca afcebg bdacfeg cfaedg gcfdb baec bfadeg bafgc acf |
gebdcfa ecba ca fadegcb
dbcfg fgd bdegcaf fgec aegbdf ecdfab fbedc dacgb gdcebf gf |
cefg dcbef fcge gbcadfe
bdfegc cbegaf gecbf dfcage bdacg ed bedf ced adcbefg gebcd |
ed bcgafe cdgba cbgef
egadfb cdbfeg cegd fecab cgb gbdefca cg fgcdab egfdb bfceg |
gbdfcae bgc cg cgb
gcafb gcf dcaebfg ecagb gf abcdeg gaef cafbge fdbac fegbdc |
fgae cfgab fg bagce
Loading…
Cancel
Save