Compare commits
10 Commits
418102c1ab
...
85c6077313
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
85c6077313 | ||
|
|
23207cd0b7 | ||
|
|
6b1339c0f3 | ||
|
|
14c3375905 | ||
|
|
aaecd0a396 | ||
|
|
c078e19d57 | ||
|
|
7a7065b04e | ||
|
|
af244ce50b | ||
|
|
7efacbda5b | ||
|
|
d636db3ca2 |
2
day01/part1.min.py
Normal file
2
day01/part1.min.py
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
import re;print(sum(int(re.search("\d",l)[0]+re.search("\d",l[::-1])[0])for l in open("input.txt")))
|
||||||
@@ -3,12 +3,11 @@ import re
|
|||||||
|
|
||||||
lines = (x.strip() for x in open("input.txt"))
|
lines = (x.strip() for x in open("input.txt"))
|
||||||
total = 0
|
total = 0
|
||||||
regexFirst = re.compile(f"^.*?(\\d)")
|
regex = re.compile("\d")
|
||||||
regexLast = re.compile(f"^.*(\\d)")
|
|
||||||
|
|
||||||
for line in lines:
|
for line in lines:
|
||||||
first = regexFirst.match(line).group(1)
|
first = regex.search(line)[0]
|
||||||
last = regexLast.match(line).group(1)
|
last = regex.search(line[::-1])[0]
|
||||||
total += int(first + last)
|
total += int(first + last)
|
||||||
|
|
||||||
print(total)
|
print(total)
|
||||||
|
|||||||
@@ -5,7 +5,6 @@ STRINGS = ["one", "two", "three", "four", "five", "six", "seven", "eight", "nine
|
|||||||
|
|
||||||
lines = (x.strip() for x in open("input.txt"))
|
lines = (x.strip() for x in open("input.txt"))
|
||||||
total = 0
|
total = 0
|
||||||
digitRegex = f"(\\d|{'|'.join(STRINGS)})"
|
|
||||||
regexFirst = re.compile(f"^.*?(\\d|{'|'.join(STRINGS)})")
|
regexFirst = re.compile(f"^.*?(\\d|{'|'.join(STRINGS)})")
|
||||||
regexLast = re.compile(f"^.*(\\d|{'|'.join(STRINGS)})")
|
regexLast = re.compile(f"^.*(\\d|{'|'.join(STRINGS)})")
|
||||||
|
|
||||||
|
|||||||
183
day05/input.txt
Normal file
183
day05/input.txt
Normal file
@@ -0,0 +1,183 @@
|
|||||||
|
seeds: 629551616 310303897 265998072 58091853 3217788227 563748665 2286940694 820803307 1966060902 108698829 190045874 3206262 4045963015 223661537 1544688274 293696584 1038807941 31756878 1224711373 133647424
|
||||||
|
|
||||||
|
seed-to-soil map:
|
||||||
|
3809825462 2725979505 339457863
|
||||||
|
3359244708 2085610478 450580754
|
||||||
|
652041572 2536191232 189788273
|
||||||
|
841829845 3346349446 343599367
|
||||||
|
1408035723 73701258 732851393
|
||||||
|
2140887116 3689948813 88205018
|
||||||
|
0 3778153831 371129494
|
||||||
|
2953980724 0 73701258
|
||||||
|
3027681982 1754047752 331562726
|
||||||
|
2229092134 1029159162 724888590
|
||||||
|
1185429212 806552651 222606511
|
||||||
|
371129494 3065437368 280912078
|
||||||
|
|
||||||
|
soil-to-fertilizer map:
|
||||||
|
201390752 0 263005475
|
||||||
|
772560454 263005475 186665885
|
||||||
|
3597849741 3228095269 216867970
|
||||||
|
959226339 951560560 85171934
|
||||||
|
2882237029 3813801625 34286208
|
||||||
|
0 586356609 16090261
|
||||||
|
1460387186 1189054013 136970257
|
||||||
|
2511361703 2581174071 147006778
|
||||||
|
201110502 1477157137 280250
|
||||||
|
3582774663 3444963239 15075078
|
||||||
|
2073881675 2245158204 30510333
|
||||||
|
3127914126 3163440286 64654983
|
||||||
|
1724767985 602446870 349113690
|
||||||
|
1597357443 1036732494 127410542
|
||||||
|
1044398273 1164143036 24910977
|
||||||
|
635875205 449671360 136685249
|
||||||
|
2916523237 2728180849 211390889
|
||||||
|
1069309250 1854080268 391077936
|
||||||
|
167223128 1820192894 33887374
|
||||||
|
4168481019 2454687794 126486277
|
||||||
|
3496254979 4048626015 86519684
|
||||||
|
2454687794 4238293387 56673909
|
||||||
|
2104392008 1648916365 171276529
|
||||||
|
3814717711 3460038317 353763308
|
||||||
|
464396227 1477437387 171478978
|
||||||
|
2658368481 2939571738 223868548
|
||||||
|
16090261 1326024270 151132867
|
||||||
|
3393107291 4135145699 103147688
|
||||||
|
3192569109 3848087833 200538182
|
||||||
|
|
||||||
|
fertilizer-to-water map:
|
||||||
|
357701033 441924316 54941059
|
||||||
|
2047098412 1574732688 106451110
|
||||||
|
2414997091 2961420861 217583761
|
||||||
|
3647103220 3202843177 147888878
|
||||||
|
1781607871 3397471081 265490541
|
||||||
|
433955285 629676938 29320532
|
||||||
|
3280739425 2494455782 366363795
|
||||||
|
2818710889 1426835569 147897119
|
||||||
|
1120892574 3179004622 23838555
|
||||||
|
1539573533 3662961622 195295312
|
||||||
|
3794992098 1820059317 63264836
|
||||||
|
0 84223283 357701033
|
||||||
|
1144731129 1702496991 117562326
|
||||||
|
2153549522 2046878176 261447569
|
||||||
|
593734757 726830618 239035306
|
||||||
|
987137385 83279657 943626
|
||||||
|
2966608008 0 83279657
|
||||||
|
1734868845 3350732055 46739026
|
||||||
|
1438972249 2860819577 100601284
|
||||||
|
2632580852 2308325745 186130037
|
||||||
|
1262293455 965865924 108845646
|
||||||
|
412642092 1681183798 21313193
|
||||||
|
472462518 1305563330 121272239
|
||||||
|
988081011 496865375 132811563
|
||||||
|
463275817 2037691475 9186701
|
||||||
|
3049887665 1074711570 230851760
|
||||||
|
832770063 1883324153 154367322
|
||||||
|
1371139101 658997470 67833148
|
||||||
|
|
||||||
|
water-to-light map:
|
||||||
|
4062286509 3839153068 91029970
|
||||||
|
1610728246 3827168971 11474903
|
||||||
|
2753947407 2725849236 1101319735
|
||||||
|
2525484879 1829977386 228462528
|
||||||
|
657837215 1095779595 241604827
|
||||||
|
1895347620 1337384422 492592964
|
||||||
|
1425623249 4009599599 185104997
|
||||||
|
2446068318 3930183038 79416561
|
||||||
|
1894838426 3838643874 509194
|
||||||
|
2389619503 896001044 56448815
|
||||||
|
3855267142 2058439914 207019367
|
||||||
|
1187459420 657837215 238163829
|
||||||
|
1622203149 2467395620 172372577
|
||||||
|
2387940584 952449859 1678919
|
||||||
|
985523081 2265459281 201936339
|
||||||
|
4153316479 954128778 141650817
|
||||||
|
1794575726 4194704596 100262700
|
||||||
|
899442042 2688664470 37184766
|
||||||
|
936626808 2639768197 48896273
|
||||||
|
|
||||||
|
light-to-temperature map:
|
||||||
|
0 2682471120 43545350
|
||||||
|
2829609407 2423668531 227914183
|
||||||
|
3685065657 3821208881 65673550
|
||||||
|
1319277847 0 33132672
|
||||||
|
818263707 3091863377 5216721
|
||||||
|
3144636417 670795080 1340457
|
||||||
|
1352410519 895535914 570572224
|
||||||
|
2709351136 1662268878 120258271
|
||||||
|
115643652 2726016470 93054822
|
||||||
|
455333494 1538206440 124062438
|
||||||
|
3839611769 4030334543 30664857
|
||||||
|
3750739207 4258515305 36451991
|
||||||
|
2070721515 33132672 155555065
|
||||||
|
3132740473 2067641423 5192544
|
||||||
|
4147162986 3685065657 58311172
|
||||||
|
4278703737 3743376829 16263559
|
||||||
|
1070098598 2174489282 249179249
|
||||||
|
716608392 2072833967 101655315
|
||||||
|
43545350 1466108138 72098302
|
||||||
|
3057523590 3016646494 75216883
|
||||||
|
2700979566 887164344 8371570
|
||||||
|
4205474158 4060999400 73229579
|
||||||
|
2226276580 188687737 474702986
|
||||||
|
1971879519 1968799427 98841996
|
||||||
|
3931845119 4134228979 124286326
|
||||||
|
579395932 2819071292 137212460
|
||||||
|
3137933017 672135537 6703400
|
||||||
|
1062694241 663390723 7404357
|
||||||
|
3787191198 3886882431 52420571
|
||||||
|
269061216 1782527149 186272278
|
||||||
|
1031805835 2651582714 30888406
|
||||||
|
823480428 678838937 208325407
|
||||||
|
3870276626 3759640388 61568493
|
||||||
|
4056131445 3939303002 91031541
|
||||||
|
1922982743 3097080098 48896776
|
||||||
|
208698474 2956283752 60362742
|
||||||
|
|
||||||
|
temperature-to-humidity map:
|
||||||
|
219529182 731674447 232727899
|
||||||
|
2748076784 2771987989 46463882
|
||||||
|
2514344851 4061235363 233731933
|
||||||
|
0 1369964423 219529182
|
||||||
|
452257081 362359049 21789881
|
||||||
|
4243457964 2720478657 51509332
|
||||||
|
3085663754 3109574959 64704581
|
||||||
|
1639319644 384148930 347525517
|
||||||
|
3150368335 3626166922 251414834
|
||||||
|
1986845161 0 139120377
|
||||||
|
1382707786 1339581093 30383330
|
||||||
|
1413091116 1113352565 226228528
|
||||||
|
2794540666 2818451871 291123088
|
||||||
|
2125965538 338187591 24171458
|
||||||
|
474046962 139120377 157229612
|
||||||
|
2361125570 1100881680 12470885
|
||||||
|
631276574 296349989 41837602
|
||||||
|
3401783169 3428035243 198131679
|
||||||
|
3989702261 3174279540 253755703
|
||||||
|
2224646236 964402346 136479334
|
||||||
|
2150136996 2299087215 74509240
|
||||||
|
3806048654 3877581756 183653607
|
||||||
|
3599914848 2514344851 206133806
|
||||||
|
673114176 1589493605 709593610
|
||||||
|
|
||||||
|
humidity-to-location map:
|
||||||
|
4029426902 1202474782 191291587
|
||||||
|
2764446301 708692227 493782555
|
||||||
|
2188304413 3350514524 33021460
|
||||||
|
3318755823 4213528230 67155117
|
||||||
|
2000392671 620732246 87959981
|
||||||
|
3754724301 3075811923 274702601
|
||||||
|
3258228856 1393766369 60526967
|
||||||
|
2088352652 4113576469 99951761
|
||||||
|
363515622 1849258760 614077493
|
||||||
|
1213242541 342257124 11129119
|
||||||
|
1733046668 353386243 267346003
|
||||||
|
1224371660 4280683347 14283949
|
||||||
|
2577070088 2888435710 187376213
|
||||||
|
4220718489 2832149614 56286096
|
||||||
|
324294413 1810037551 39221209
|
||||||
|
3385910940 2463336253 368813361
|
||||||
|
977593115 3383535984 235649426
|
||||||
|
1238655609 3619185410 494391059
|
||||||
|
4277004585 324294413 17962711
|
||||||
|
2221325873 1454293336 355744215
|
||||||
61
day05/part1.py
Normal file
61
day05/part1.py
Normal file
@@ -0,0 +1,61 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
from typing import List, Tuple
|
||||||
|
|
||||||
|
lines = (x.strip() for x in open("input.txt"))
|
||||||
|
seeds = ()
|
||||||
|
current_map = "undef"
|
||||||
|
maps = {}
|
||||||
|
map_names = []
|
||||||
|
|
||||||
|
for line in lines:
|
||||||
|
match line:
|
||||||
|
case "" | "\n":
|
||||||
|
continue
|
||||||
|
case x if x.startswith("seeds: "):
|
||||||
|
rest = x[len("seeds: "):]
|
||||||
|
seeds = tuple(int(y) for y in rest.split(" "))
|
||||||
|
case x if x.endswith(" map:"):
|
||||||
|
rest = x[:-len(" map:")]
|
||||||
|
current_map = rest
|
||||||
|
maps[current_map] = []
|
||||||
|
map_names.append(current_map)
|
||||||
|
case x if len(x) and x[0].isdigit():
|
||||||
|
maps[current_map].append(tuple(int(y) for y in x.split(" ")))
|
||||||
|
case _:
|
||||||
|
pass
|
||||||
|
|
||||||
|
def parse_map(value: List[Tuple[int, int, int]]):
|
||||||
|
curr = 0
|
||||||
|
out = []
|
||||||
|
for dest, src, size in sorted(value, key=lambda x: x[1]):
|
||||||
|
if src > curr:
|
||||||
|
out.append((curr, 0))
|
||||||
|
if size > 0:
|
||||||
|
out.append((src, dest-src))
|
||||||
|
curr = src + size
|
||||||
|
out.append((curr, 0))
|
||||||
|
return out
|
||||||
|
|
||||||
|
print(maps)
|
||||||
|
maps = {name: parse_map(value) for name, value in maps.items()}
|
||||||
|
print(maps)
|
||||||
|
|
||||||
|
def find_largest_smaller_value(sorted_list, x):
|
||||||
|
low, high = 0, len(sorted_list)
|
||||||
|
|
||||||
|
while low < high - 1:
|
||||||
|
mid = (low + high) // 2
|
||||||
|
if sorted_list[mid][0] <= x:
|
||||||
|
low = mid
|
||||||
|
else:
|
||||||
|
high = mid
|
||||||
|
|
||||||
|
return sorted_list[low]
|
||||||
|
|
||||||
|
result = float("inf")
|
||||||
|
for seed in seeds:
|
||||||
|
for name in map_names:
|
||||||
|
seed += find_largest_smaller_value(maps[name], seed)[1]
|
||||||
|
result = min(seed, result)
|
||||||
|
|
||||||
|
print(result)
|
||||||
69
day05/part2.py
Normal file
69
day05/part2.py
Normal file
@@ -0,0 +1,69 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
from typing import List, Tuple
|
||||||
|
from tqdm import tqdm
|
||||||
|
|
||||||
|
lines = (x.strip() for x in open("input.txt"))
|
||||||
|
seeds = list(int(y) for y in next(lines)[7:].split(" "))
|
||||||
|
curr_map = None
|
||||||
|
|
||||||
|
def items_to_map(value: List[Tuple[int, int, int]]):
|
||||||
|
curr = 0
|
||||||
|
out = []
|
||||||
|
for dest, src, size in sorted(value, key=lambda x: x[1]):
|
||||||
|
if src > curr:
|
||||||
|
out.append((curr, 0))
|
||||||
|
if size > 0:
|
||||||
|
out.append((src, dest-src))
|
||||||
|
curr = src + size
|
||||||
|
out.append((curr, 0))
|
||||||
|
return out
|
||||||
|
|
||||||
|
def iter_maps(lines):
|
||||||
|
next_items = []
|
||||||
|
for line in lines:
|
||||||
|
if len(line) and line[0].isdigit():
|
||||||
|
next_items.append(tuple(int(y) for y in line.split(" ")))
|
||||||
|
elif len(next_items):
|
||||||
|
yield items_to_map(next_items)
|
||||||
|
next_items = []
|
||||||
|
if len(next_items):
|
||||||
|
yield items_to_map(next_items)
|
||||||
|
|
||||||
|
|
||||||
|
def find_largest_smaller_value(sorted_list, x):
|
||||||
|
low, high = 0, len(sorted_list)
|
||||||
|
while low < high - 1:
|
||||||
|
mid = (low + high) // 2
|
||||||
|
if sorted_list[mid][0] <= x:
|
||||||
|
low = mid
|
||||||
|
else:
|
||||||
|
high = mid
|
||||||
|
return sorted_list[low], low
|
||||||
|
|
||||||
|
|
||||||
|
def merge_maps(curr_map, next_map):
|
||||||
|
merged_map = []
|
||||||
|
for i in range(0, len(curr_map)):
|
||||||
|
dest_start = curr_map[i][0] + curr_map[i][1]
|
||||||
|
dest_start_idx = find_largest_smaller_value(next_map, dest_start)[1]
|
||||||
|
dest_end = curr_map[i + 1][0] + curr_map[i][1] - 1 if i + 1 < len(curr_map) else None
|
||||||
|
dest_end_idx = find_largest_smaller_value(next_map, dest_end)[1] if dest_end is not None else len(next_map) - 1
|
||||||
|
for next_start, next_offset in next_map[dest_start_idx:dest_end_idx + 1]:
|
||||||
|
merged_map.append((max(curr_map[i][0], next_start - curr_map[i][1]), curr_map[i][1] + next_offset))
|
||||||
|
return merged_map
|
||||||
|
|
||||||
|
|
||||||
|
for next_map in iter_maps(lines):
|
||||||
|
curr_map = next_map if curr_map is None else merge_maps(curr_map, next_map)
|
||||||
|
|
||||||
|
|
||||||
|
result = float("inf")
|
||||||
|
for i in range(0, len(seeds), 2):
|
||||||
|
dest_start = seeds[i]
|
||||||
|
dest_start_idx = find_largest_smaller_value(curr_map, dest_start)[1]
|
||||||
|
dest_end = seeds[i] + seeds[i+1] - 1
|
||||||
|
dest_end_idx = find_largest_smaller_value(curr_map, dest_end)[1]
|
||||||
|
for next_start, next_offset in curr_map[dest_start_idx:dest_end_idx + 1]:
|
||||||
|
result = min(result, next_start + next_offset)
|
||||||
|
|
||||||
|
print(result)
|
||||||
2
day06/input.txt
Normal file
2
day06/input.txt
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
Time: 42 68 69 85
|
||||||
|
Distance: 284 1005 1122 1341
|
||||||
21
day06/part1.py
Normal file
21
day06/part1.py
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
import math
|
||||||
|
import re
|
||||||
|
|
||||||
|
lines = (x.strip() for x in open("input.txt"))
|
||||||
|
times = []
|
||||||
|
records = []
|
||||||
|
|
||||||
|
for line in lines:
|
||||||
|
if line.startswith("Time"):
|
||||||
|
times = tuple(map(int, re.findall("\d+", line)))
|
||||||
|
else:
|
||||||
|
records = tuple(map(int, re.findall("\d+", line)))
|
||||||
|
|
||||||
|
result = 1
|
||||||
|
for t, r in zip(times, records):
|
||||||
|
pmin = (t-(t**2-4*r)**0.5)/2
|
||||||
|
pmax = (t+(t**2-4*r)**0.5)/2
|
||||||
|
result *= math.floor(pmax) - math.ceil(pmin) + 1
|
||||||
|
|
||||||
|
print(result)
|
||||||
17
day06/part2.py
Normal file
17
day06/part2.py
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
import math
|
||||||
|
import re
|
||||||
|
|
||||||
|
lines = (x.strip() for x in open("input.txt"))
|
||||||
|
t = 0
|
||||||
|
r = 0
|
||||||
|
|
||||||
|
for line in lines:
|
||||||
|
if line.startswith("Time"):
|
||||||
|
t = int(re.sub("[^\d]", "", line))
|
||||||
|
else:
|
||||||
|
r = int(re.sub("[^\d]", "", line))
|
||||||
|
|
||||||
|
pmin = (t-(t**2-4*r)**0.5)/2
|
||||||
|
pmax = (t+(t**2-4*r)**0.5)/2
|
||||||
|
print(math.floor(pmax) - math.ceil(pmin) + 1)
|
||||||
1000
day07/input.txt
Normal file
1000
day07/input.txt
Normal file
File diff suppressed because it is too large
Load Diff
28
day07/part1.py
Normal file
28
day07/part1.py
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
from collections import Counter
|
||||||
|
|
||||||
|
lines = (x.strip() for x in open("input.txt"))
|
||||||
|
|
||||||
|
hands = []
|
||||||
|
|
||||||
|
for line in lines:
|
||||||
|
hand, bid = line.split(" ")
|
||||||
|
hand = tuple("23456789TJQKA".index(char) for char in hand)
|
||||||
|
count = Counter(hand).values()
|
||||||
|
if 5 in count:
|
||||||
|
hands.append((6, hand, int(bid)))
|
||||||
|
elif 4 in count:
|
||||||
|
hands.append((5, hand, int(bid)))
|
||||||
|
elif 3 in count and 2 in count:
|
||||||
|
hands.append((4, hand, int(bid)))
|
||||||
|
elif 3 in count:
|
||||||
|
hands.append((3, hand, int(bid)))
|
||||||
|
elif list(count).count(2) == 2:
|
||||||
|
hands.append((2, hand, int(bid)))
|
||||||
|
elif 2 in count:
|
||||||
|
hands.append((1, hand, int(bid)))
|
||||||
|
else:
|
||||||
|
hands.append((0, hand, int(bid)))
|
||||||
|
|
||||||
|
hands.sort()
|
||||||
|
print(sum(bid * rank for rank, (_, _, bid) in enumerate(hands, 1)))
|
||||||
29
day07/part2.py
Normal file
29
day07/part2.py
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
from collections import Counter
|
||||||
|
|
||||||
|
lines = (x.strip() for x in open("input.txt"))
|
||||||
|
|
||||||
|
hands = []
|
||||||
|
|
||||||
|
for line in lines:
|
||||||
|
hand, bid = line.split(" ")
|
||||||
|
hand = tuple("J23456789TQKA".index(char) for char in hand)
|
||||||
|
count = list(Counter(h for h in hand if h != 0).values())
|
||||||
|
num_j = sum(1 for h in hand if h == 0)
|
||||||
|
if len(count) <= 1:
|
||||||
|
hands.append((6, hand, int(bid)))
|
||||||
|
elif (4-num_j) in count:
|
||||||
|
hands.append((5, hand, int(bid)))
|
||||||
|
elif len(count) == 2 and 2 in count:
|
||||||
|
hands.append((4, hand, int(bid)))
|
||||||
|
elif (3-num_j) in count:
|
||||||
|
hands.append((3, hand, int(bid)))
|
||||||
|
elif len(count) == 3:
|
||||||
|
hands.append((2, hand, int(bid)))
|
||||||
|
elif len(count) == 4:
|
||||||
|
hands.append((1, hand, int(bid)))
|
||||||
|
else:
|
||||||
|
hands.append((0, hand, int(bid)))
|
||||||
|
|
||||||
|
hands.sort()
|
||||||
|
print(sum(bid * rank for rank, (_, _, bid) in enumerate(hands, 1)))
|
||||||
800
day08/input.txt
Normal file
800
day08/input.txt
Normal file
@@ -0,0 +1,800 @@
|
|||||||
|
LLRLRLLRRLRLRLLRRLRRRLRRRLRRLRRLRLRLRRRLLRLRRLRLRRRLRLLRRLRLRLLRRRLLRLRRRLRLRRLRRLRLLRRLRRLRLRLRLLRLLRRLRRLRRLRRLRRLRLLRLRLRRRLRRRLRRLRLRLRRLRRRLRLRRRLRLRLRLRRRLRRLRRLRRRLLLLRRLRRLRLRRRLRLRRRLRRLLLLRLRLRRRLRRRLRLRRLLRLRLRRRLRLRLRRRLRLLRRRLRRLRLRLRRRLRLLRRLLRRRLRRRLRRRLRRLRLRLRRRLRRRLRRRLLRRRR
|
||||||
|
|
||||||
|
NNN = (TNT, XDJ)
|
||||||
|
GKJ = (TQD, PDP)
|
||||||
|
VPC = (TST, FDJ)
|
||||||
|
MNG = (GQS, RVK)
|
||||||
|
JQF = (LLK, BQH)
|
||||||
|
HPS = (XDJ, TNT)
|
||||||
|
VSD = (GNK, HJS)
|
||||||
|
VGT = (KXR, FMP)
|
||||||
|
GQB = (GTX, HLC)
|
||||||
|
PLJ = (QCS, TVN)
|
||||||
|
BXM = (GMB, LBC)
|
||||||
|
XJQ = (NHG, NQD)
|
||||||
|
NKX = (KBJ, GTS)
|
||||||
|
PKT = (XFK, SKR)
|
||||||
|
HJB = (LRX, KQG)
|
||||||
|
SNM = (PLN, CJT)
|
||||||
|
LQD = (MTK, KMS)
|
||||||
|
KTN = (SSC, KPL)
|
||||||
|
LVJ = (CQJ, GPP)
|
||||||
|
GSV = (SNM, JKK)
|
||||||
|
CPH = (DCQ, FCP)
|
||||||
|
TDV = (JFD, HKH)
|
||||||
|
SBS = (NFC, CGC)
|
||||||
|
DBG = (GST, LGH)
|
||||||
|
LHS = (GHG, TRD)
|
||||||
|
BPP = (DLF, NJT)
|
||||||
|
TNT = (VNX, PTR)
|
||||||
|
VTN = (XHM, NMQ)
|
||||||
|
BRD = (KLF, HXJ)
|
||||||
|
TJT = (BVD, PFN)
|
||||||
|
GNK = (NMT, LLX)
|
||||||
|
DVH = (GQS, RVK)
|
||||||
|
KRJ = (QSP, TTQ)
|
||||||
|
KQC = (TNX, MDC)
|
||||||
|
XVS = (LRC, DLC)
|
||||||
|
XLP = (XCH, BJQ)
|
||||||
|
KQG = (LKK, TVP)
|
||||||
|
QHB = (JPL, JPL)
|
||||||
|
RGV = (SXB, FKH)
|
||||||
|
GSK = (JQN, THB)
|
||||||
|
XDT = (GLG, XKD)
|
||||||
|
XCT = (MMN, XDM)
|
||||||
|
KLF = (NPB, RRB)
|
||||||
|
XLT = (QRB, VHB)
|
||||||
|
HKS = (NNN, HPS)
|
||||||
|
NMT = (MSL, VXC)
|
||||||
|
PML = (NHN, FQH)
|
||||||
|
FMQ = (HGC, FBH)
|
||||||
|
JGG = (XTB, XTB)
|
||||||
|
KMC = (PPS, SVT)
|
||||||
|
GLG = (SPG, KFK)
|
||||||
|
QJN = (HJB, QCP)
|
||||||
|
SGH = (FDV, QPX)
|
||||||
|
DFM = (BFX, PNS)
|
||||||
|
CSK = (MDQ, GFX)
|
||||||
|
MXG = (MXC, BJV)
|
||||||
|
JTX = (SQN, JBK)
|
||||||
|
KFN = (VQM, PFH)
|
||||||
|
SFJ = (KDF, NKB)
|
||||||
|
JNK = (DLK, LHV)
|
||||||
|
DTG = (XHQ, DSR)
|
||||||
|
SHC = (FQV, HKK)
|
||||||
|
DBM = (VDP, PGK)
|
||||||
|
PNC = (LMH, RXH)
|
||||||
|
HXJ = (RRB, NPB)
|
||||||
|
MKS = (KMX, FKS)
|
||||||
|
NPA = (TPC, SNK)
|
||||||
|
LJK = (FPF, SHP)
|
||||||
|
LBH = (HQB, TTC)
|
||||||
|
JML = (LTN, SFS)
|
||||||
|
MXS = (FDL, SXH)
|
||||||
|
HHV = (VRL, JVC)
|
||||||
|
NQD = (KVJ, DXM)
|
||||||
|
HMA = (TVC, RBX)
|
||||||
|
BCP = (SQD, RGD)
|
||||||
|
SLP = (CQF, HXG)
|
||||||
|
KGF = (RPN, PKQ)
|
||||||
|
TGG = (VQM, PFH)
|
||||||
|
HQD = (MDV, GND)
|
||||||
|
BJX = (LCN, QMG)
|
||||||
|
NBQ = (NSV, VJR)
|
||||||
|
BBX = (KHG, FDC)
|
||||||
|
SSQ = (BNQ, MXX)
|
||||||
|
TST = (MJB, TDV)
|
||||||
|
JQL = (SDG, DLJ)
|
||||||
|
TVN = (SJM, KMC)
|
||||||
|
XHD = (DDG, RSG)
|
||||||
|
GQA = (NQS, CNH)
|
||||||
|
QFL = (QSQ, VVN)
|
||||||
|
THG = (FBM, VQX)
|
||||||
|
QLZ = (RBX, TVC)
|
||||||
|
TPM = (DQN, MGG)
|
||||||
|
QXV = (MTK, KMS)
|
||||||
|
VNX = (PTP, VSD)
|
||||||
|
STQ = (XDC, JFR)
|
||||||
|
XVQ = (PJM, MRN)
|
||||||
|
XTT = (BHF, RBR)
|
||||||
|
LQS = (DBB, HNR)
|
||||||
|
KXG = (FKS, KMX)
|
||||||
|
XCP = (MXK, DBX)
|
||||||
|
QRV = (JSK, STC)
|
||||||
|
VVG = (DRF, QNR)
|
||||||
|
FTC = (CSK, FPC)
|
||||||
|
GFV = (VSK, GFQ)
|
||||||
|
JSM = (LNC, XTF)
|
||||||
|
LJC = (JFG, XBK)
|
||||||
|
TQD = (XJQ, MFM)
|
||||||
|
HJS = (LLX, NMT)
|
||||||
|
CBP = (PTX, LGD)
|
||||||
|
LGT = (CTD, CTD)
|
||||||
|
HMP = (FQJ, KGC)
|
||||||
|
MSL = (MSD, BFL)
|
||||||
|
QPX = (QFH, JMK)
|
||||||
|
KBH = (MGF, TMH)
|
||||||
|
XMT = (MXC, BJV)
|
||||||
|
XGR = (KPF, DLH)
|
||||||
|
RGH = (MBM, KNT)
|
||||||
|
CDP = (BLG, NVN)
|
||||||
|
BLG = (TQC, DTD)
|
||||||
|
MSD = (RVP, RQP)
|
||||||
|
KXT = (CVM, JQL)
|
||||||
|
MRN = (MNX, PNC)
|
||||||
|
RLG = (BNP, VNR)
|
||||||
|
PSH = (XQG, SLP)
|
||||||
|
XTF = (NTT, VGT)
|
||||||
|
KVJ = (JVX, HPJ)
|
||||||
|
PGF = (KRJ, CRS)
|
||||||
|
VSV = (NKQ, PJG)
|
||||||
|
TLV = (QHJ, GFG)
|
||||||
|
BNP = (NFR, PGR)
|
||||||
|
XQG = (CQF, HXG)
|
||||||
|
KGC = (FKF, KCS)
|
||||||
|
HQF = (QPX, FDV)
|
||||||
|
PFN = (JGX, FMQ)
|
||||||
|
HFD = (DBG, CBD)
|
||||||
|
KQZ = (HXJ, KLF)
|
||||||
|
HPM = (VSV, LTR)
|
||||||
|
FGX = (SVR, GQB)
|
||||||
|
SGJ = (THB, JQN)
|
||||||
|
NKK = (QHB, QHB)
|
||||||
|
FLF = (RLC, MXP)
|
||||||
|
SRV = (QHM, LQS)
|
||||||
|
NPB = (BPG, CVQ)
|
||||||
|
VNR = (NFR, PGR)
|
||||||
|
FNF = (TXL, CXT)
|
||||||
|
PTB = (QXQ, BDK)
|
||||||
|
BXN = (HQF, SGH)
|
||||||
|
RGT = (MGN, GFN)
|
||||||
|
FSP = (VRK, QNN)
|
||||||
|
GHT = (PML, HTJ)
|
||||||
|
CBD = (LGH, GST)
|
||||||
|
LMH = (TJC, DNN)
|
||||||
|
PTP = (GNK, HJS)
|
||||||
|
XDC = (GHT, JTR)
|
||||||
|
HTJ = (NHN, FQH)
|
||||||
|
XFK = (NKX, HTV)
|
||||||
|
PBP = (CJJ, GKS)
|
||||||
|
KMX = (XSJ, PMK)
|
||||||
|
CVQ = (FKX, GXP)
|
||||||
|
SFV = (MXS, FLR)
|
||||||
|
BQH = (VMH, PKT)
|
||||||
|
NFR = (RTX, SBJ)
|
||||||
|
KCS = (XGR, JXT)
|
||||||
|
GND = (SFJ, DGL)
|
||||||
|
DTF = (JCC, LVC)
|
||||||
|
KLM = (XLP, QRQ)
|
||||||
|
VQV = (DNC, SST)
|
||||||
|
NKF = (KFN, TGG)
|
||||||
|
CJT = (LDP, QKM)
|
||||||
|
NPF = (TNC, LXF)
|
||||||
|
MHK = (MLX, NHX)
|
||||||
|
LGD = (DLP, CNJ)
|
||||||
|
MLF = (QKK, QRK)
|
||||||
|
LQB = (NKJ, SHN)
|
||||||
|
SNS = (KMV, HCG)
|
||||||
|
VPN = (HFV, LNX)
|
||||||
|
XTB = (XLT, VRF)
|
||||||
|
LNX = (HFB, QVF)
|
||||||
|
XGF = (NRN, KCF)
|
||||||
|
PNS = (JNQ, MCT)
|
||||||
|
BJG = (DNC, SST)
|
||||||
|
PQN = (SCL, VPX)
|
||||||
|
NGQ = (DGT, RLF)
|
||||||
|
GGX = (LQS, QHM)
|
||||||
|
VVT = (MHK, LTJ)
|
||||||
|
QJH = (XTF, LNC)
|
||||||
|
BBP = (FNX, RTK)
|
||||||
|
DDP = (JBR, KLD)
|
||||||
|
GDV = (KXT, BJT)
|
||||||
|
GDT = (CFB, PSH)
|
||||||
|
LGH = (CRK, SCF)
|
||||||
|
JNB = (DXQ, FBK)
|
||||||
|
DLH = (XJD, GDT)
|
||||||
|
NCQ = (MXP, RLC)
|
||||||
|
LXP = (SPR, RTF)
|
||||||
|
GRQ = (FNX, RTK)
|
||||||
|
KBJ = (DNB, TDP)
|
||||||
|
LXK = (CTD, JML)
|
||||||
|
DBB = (TJD, FNF)
|
||||||
|
RBR = (JTX, XKN)
|
||||||
|
GPD = (LXN, PLD)
|
||||||
|
JNM = (QRM, MSV)
|
||||||
|
LNC = (VGT, NTT)
|
||||||
|
GVT = (VVN, QSQ)
|
||||||
|
KCD = (GFB, MFL)
|
||||||
|
HDG = (VFQ, DTF)
|
||||||
|
RGD = (GGX, SRV)
|
||||||
|
KJK = (SRJ, QGV)
|
||||||
|
DSL = (MNG, DVH)
|
||||||
|
DSR = (VQV, BJG)
|
||||||
|
NHB = (HPS, NNN)
|
||||||
|
JVX = (JRT, GDQ)
|
||||||
|
TGB = (DCG, VXK)
|
||||||
|
MXN = (PST, GBF)
|
||||||
|
CTP = (XGM, SFV)
|
||||||
|
BPG = (GXP, FKX)
|
||||||
|
HRT = (LXF, TNC)
|
||||||
|
SST = (HDG, VJS)
|
||||||
|
PDP = (XJQ, MFM)
|
||||||
|
BDK = (TFM, GRM)
|
||||||
|
PPS = (RQV, BXN)
|
||||||
|
SSS = (TJQ, GNQ)
|
||||||
|
TXL = (QRV, PPH)
|
||||||
|
RRQ = (RXF, PGF)
|
||||||
|
PSX = (LLM, FXM)
|
||||||
|
FBK = (JDQ, DSX)
|
||||||
|
JLR = (LSM, NXT)
|
||||||
|
SPR = (DTG, RKQ)
|
||||||
|
PGC = (TJT, HXC)
|
||||||
|
LLD = (LHS, RLV)
|
||||||
|
NRH = (XBB, FGX)
|
||||||
|
SXH = (HMP, LSK)
|
||||||
|
JVC = (MLN, XKM)
|
||||||
|
MGF = (GGT, XMS)
|
||||||
|
TTS = (TNX, TNX)
|
||||||
|
FCP = (PLJ, KND)
|
||||||
|
LRX = (TVP, LKK)
|
||||||
|
VKJ = (PGN, XPX)
|
||||||
|
VRL = (XKM, MLN)
|
||||||
|
RQV = (SGH, HQF)
|
||||||
|
CRS = (QSP, TTQ)
|
||||||
|
BJC = (FCJ, TSC)
|
||||||
|
CSP = (BNM, FLN)
|
||||||
|
XHQ = (BJG, VQV)
|
||||||
|
CRK = (DKC, QQQ)
|
||||||
|
HFB = (BVM, VMP)
|
||||||
|
SQN = (QJN, KKV)
|
||||||
|
DGK = (FVX, RGT)
|
||||||
|
HTP = (HCF, HFR)
|
||||||
|
RFT = (NMF, DRL)
|
||||||
|
TRJ = (SHN, NKJ)
|
||||||
|
XJD = (PSH, CFB)
|
||||||
|
FQJ = (FKF, KCS)
|
||||||
|
VHB = (KDM, DSB)
|
||||||
|
SKR = (NKX, HTV)
|
||||||
|
LCN = (TLV, FMC)
|
||||||
|
MTC = (PST, GBF)
|
||||||
|
QRK = (XNR, SPD)
|
||||||
|
TCK = (MDK, BCP)
|
||||||
|
DNN = (HHV, MVS)
|
||||||
|
JNQ = (PBP, VDG)
|
||||||
|
NKQ = (MKX, HVD)
|
||||||
|
FTV = (MNG, DVH)
|
||||||
|
SJM = (SVT, PPS)
|
||||||
|
KCB = (NKK, CNF)
|
||||||
|
KJN = (PRV, BVK)
|
||||||
|
PRV = (SVP, FTM)
|
||||||
|
HFV = (HFB, QVF)
|
||||||
|
NFC = (FVC, TBN)
|
||||||
|
LMC = (QRK, QKK)
|
||||||
|
KNF = (CHN, GFV)
|
||||||
|
XNP = (SGJ, GSK)
|
||||||
|
QQB = (MLF, LMC)
|
||||||
|
CVM = (DLJ, SDG)
|
||||||
|
RSG = (LBH, TLD)
|
||||||
|
PGR = (RTX, SBJ)
|
||||||
|
VTD = (QGV, SRJ)
|
||||||
|
LBC = (PRH, CSP)
|
||||||
|
RKX = (NHL, XMM)
|
||||||
|
MXK = (XJN, PTB)
|
||||||
|
MJD = (DLC, LRC)
|
||||||
|
GDR = (FCX, KNF)
|
||||||
|
VXK = (THG, BPN)
|
||||||
|
GPP = (NRC, DHQ)
|
||||||
|
SDN = (FKH, SXB)
|
||||||
|
KJH = (BJX, VHX)
|
||||||
|
RNQ = (DNX, GPL)
|
||||||
|
VQX = (RXP, SSS)
|
||||||
|
PPH = (JSK, STC)
|
||||||
|
KKV = (HJB, QCP)
|
||||||
|
ZZZ = (FGX, XBB)
|
||||||
|
PTN = (KCD, HPQ)
|
||||||
|
GMP = (KHG, FDC)
|
||||||
|
NTT = (KXR, FMP)
|
||||||
|
GBF = (KXG, MKS)
|
||||||
|
VPX = (JFB, HSN)
|
||||||
|
SVG = (BPP, RPK)
|
||||||
|
PJG = (MKX, HVD)
|
||||||
|
HNR = (TJD, FNF)
|
||||||
|
XBB = (SVR, GQB)
|
||||||
|
FBM = (SSS, RXP)
|
||||||
|
RTX = (QJQ, KJN)
|
||||||
|
MSV = (KQH, LRF)
|
||||||
|
MGN = (LGT, LXK)
|
||||||
|
QDH = (CFV, DHZ)
|
||||||
|
NPR = (GDR, DCF)
|
||||||
|
HSN = (VLG, QNC)
|
||||||
|
PTM = (VGG, CQX)
|
||||||
|
VCP = (BCL, XDT)
|
||||||
|
LBP = (MPD, MPD)
|
||||||
|
NRK = (NNL, XKC)
|
||||||
|
QCT = (BBL, SVH)
|
||||||
|
RPL = (MMH, CDP)
|
||||||
|
RXH = (TJC, DNN)
|
||||||
|
DGL = (KDF, NKB)
|
||||||
|
GTQ = (PGF, RXF)
|
||||||
|
FXG = (BGH, MTH)
|
||||||
|
FQH = (VCJ, HPM)
|
||||||
|
LTN = (SCP, SCP)
|
||||||
|
JMK = (LPX, JNM)
|
||||||
|
SCL = (JFB, HSN)
|
||||||
|
TKV = (XHC, HQD)
|
||||||
|
BDT = (TTS, KQC)
|
||||||
|
MXX = (SKB, LPC)
|
||||||
|
RPN = (QJK, BXM)
|
||||||
|
MFL = (NDC, TPM)
|
||||||
|
DXM = (HPJ, JVX)
|
||||||
|
QXM = (LHS, RLV)
|
||||||
|
QHM = (HNR, DBB)
|
||||||
|
QRB = (KDM, DSB)
|
||||||
|
JMG = (PLD, LXN)
|
||||||
|
QSQ = (BNS, XNC)
|
||||||
|
CXA = (XLT, VRF)
|
||||||
|
MXC = (LQD, QXV)
|
||||||
|
CNJ = (QQP, PXV)
|
||||||
|
BPM = (BRD, BRD)
|
||||||
|
BFV = (FCJ, TSC)
|
||||||
|
KPL = (RPL, HBT)
|
||||||
|
JJR = (QNN, VRK)
|
||||||
|
KHG = (VDS, LKJ)
|
||||||
|
DRC = (HFR, HCF)
|
||||||
|
DLF = (RFT, STN)
|
||||||
|
GKS = (QQB, RLT)
|
||||||
|
TBD = (LFP, PQN)
|
||||||
|
XNC = (QBD, DDP)
|
||||||
|
TGC = (JNB, JXF)
|
||||||
|
KCF = (LBP, JHT)
|
||||||
|
NKB = (CCJ, RGH)
|
||||||
|
NPH = (JQF, QJC)
|
||||||
|
BJQ = (LJC, QMT)
|
||||||
|
GTS = (TDP, DNB)
|
||||||
|
XSJ = (KTN, VXJ)
|
||||||
|
QXQ = (GRM, TFM)
|
||||||
|
FCJ = (FKJ, DSK)
|
||||||
|
FPF = (CQH, HML)
|
||||||
|
VCJ = (LTR, VSV)
|
||||||
|
QJK = (LBC, GMB)
|
||||||
|
PMK = (VXJ, KTN)
|
||||||
|
FXM = (BNT, VVG)
|
||||||
|
DDG = (TLD, LBH)
|
||||||
|
MDB = (FDJ, TST)
|
||||||
|
BSF = (VXK, DCG)
|
||||||
|
BVK = (FTM, SVP)
|
||||||
|
RTG = (JSH, LKD)
|
||||||
|
BPN = (VQX, FBM)
|
||||||
|
BJT = (CVM, JQL)
|
||||||
|
DFS = (BCP, MDK)
|
||||||
|
GRM = (MDB, VPC)
|
||||||
|
TRD = (NRK, HPF)
|
||||||
|
FKH = (XHD, SNT)
|
||||||
|
LXF = (BDX, TKV)
|
||||||
|
JBK = (KKV, QJN)
|
||||||
|
JBP = (BNP, VNR)
|
||||||
|
PKF = (BJX, VHX)
|
||||||
|
DLK = (DGK, XST)
|
||||||
|
TFM = (MDB, VPC)
|
||||||
|
VDP = (VVR, MHR)
|
||||||
|
RDP = (VJR, NSV)
|
||||||
|
PTX = (CNJ, DLP)
|
||||||
|
DCG = (THG, BPN)
|
||||||
|
BCV = (LTJ, MHK)
|
||||||
|
FKJ = (NBQ, RDP)
|
||||||
|
PHK = (KGF, SBX)
|
||||||
|
JDQ = (PTN, RFF)
|
||||||
|
TNC = (BDX, TKV)
|
||||||
|
KCJ = (RPK, BPP)
|
||||||
|
DLJ = (FTC, TGF)
|
||||||
|
FQG = (GVT, QFL)
|
||||||
|
LFP = (SCL, VPX)
|
||||||
|
PBG = (KNC, PFX)
|
||||||
|
QCP = (LRX, KQG)
|
||||||
|
NRC = (GPD, JMG)
|
||||||
|
PHH = (DGT, RLF)
|
||||||
|
XCH = (LJC, QMT)
|
||||||
|
VXJ = (KPL, SSC)
|
||||||
|
TNX = (BPM, BPM)
|
||||||
|
PTR = (VSD, PTP)
|
||||||
|
NDC = (DQN, DQN)
|
||||||
|
SVT = (RQV, BXN)
|
||||||
|
NTJ = (SHC, QCM)
|
||||||
|
SHM = (SNM, JKK)
|
||||||
|
TLD = (TTC, HQB)
|
||||||
|
MMN = (JNK, RRS)
|
||||||
|
NPC = (MTC, MXN)
|
||||||
|
NMF = (QBM, CTP)
|
||||||
|
CQX = (NRH, ZZZ)
|
||||||
|
BNT = (DRF, QNR)
|
||||||
|
BJZ = (CNH, NQS)
|
||||||
|
KFK = (XCT, PPG)
|
||||||
|
SDG = (TGF, FTC)
|
||||||
|
CBB = (HFV, LNX)
|
||||||
|
VFQ = (LVC, JCC)
|
||||||
|
LRF = (KLM, JGL)
|
||||||
|
TTC = (JLR, GFT)
|
||||||
|
PFH = (SHG, XTT)
|
||||||
|
RLT = (MLF, LMC)
|
||||||
|
XPJ = (JPL, BJZ)
|
||||||
|
PKQ = (BXM, QJK)
|
||||||
|
TNS = (GDR, DCF)
|
||||||
|
FKX = (PKG, QQL)
|
||||||
|
MJB = (HKH, JFD)
|
||||||
|
JTN = (JSM, QJH)
|
||||||
|
QTG = (NRN, KCF)
|
||||||
|
MPX = (CHR, TGC)
|
||||||
|
JKK = (CJT, PLN)
|
||||||
|
LKK = (DRC, HTP)
|
||||||
|
RXF = (KRJ, CRS)
|
||||||
|
QNC = (LFB, FQG)
|
||||||
|
RKQ = (DSR, XHQ)
|
||||||
|
LCX = (PGK, VDP)
|
||||||
|
KSG = (LLD, QXM)
|
||||||
|
RPK = (NJT, DLF)
|
||||||
|
KDM = (KSG, PLL)
|
||||||
|
TVP = (HTP, DRC)
|
||||||
|
DCB = (NKK, NKK)
|
||||||
|
DQN = (STJ, STJ)
|
||||||
|
JSH = (TRS, GKJ)
|
||||||
|
LDP = (XGS, LJK)
|
||||||
|
QRM = (LRF, KQH)
|
||||||
|
VGG = (NRH, NRH)
|
||||||
|
LLK = (VMH, PKT)
|
||||||
|
VSK = (PHH, NGQ)
|
||||||
|
JFB = (VLG, QNC)
|
||||||
|
BCL = (XKD, GLG)
|
||||||
|
RTF = (RKQ, DTG)
|
||||||
|
KPF = (GDT, XJD)
|
||||||
|
DHZ = (SNK, TPC)
|
||||||
|
LPC = (DCB, KCB)
|
||||||
|
KDF = (RGH, CCJ)
|
||||||
|
PLL = (QXM, LLD)
|
||||||
|
XHS = (FXM, LLM)
|
||||||
|
BHF = (JTX, XKN)
|
||||||
|
RRS = (DLK, LHV)
|
||||||
|
FFL = (HKS, NHB)
|
||||||
|
VRF = (QRB, VHB)
|
||||||
|
LSQ = (MRN, PJM)
|
||||||
|
SCD = (MXK, DBX)
|
||||||
|
SPD = (FXG, RDX)
|
||||||
|
CFM = (PQN, LFP)
|
||||||
|
QKK = (SPD, XNR)
|
||||||
|
LVC = (JJR, FSP)
|
||||||
|
RLV = (TRD, GHG)
|
||||||
|
HKK = (SSP, XNP)
|
||||||
|
JCC = (FSP, JJR)
|
||||||
|
JHT = (MPD, SCN)
|
||||||
|
RVP = (XVQ, LSQ)
|
||||||
|
HPQ = (GFB, MFL)
|
||||||
|
JRT = (VTN, SKP)
|
||||||
|
DTD = (TGB, BSF)
|
||||||
|
PKG = (SKX, DGB)
|
||||||
|
VMP = (RLG, JBP)
|
||||||
|
DSX = (RFF, PTN)
|
||||||
|
QRQ = (BJQ, XCH)
|
||||||
|
LLX = (VXC, MSL)
|
||||||
|
SVH = (DFS, TCK)
|
||||||
|
XNR = (RDX, FXG)
|
||||||
|
QKM = (LJK, XGS)
|
||||||
|
MMH = (BLG, NVN)
|
||||||
|
SKB = (DCB, KCB)
|
||||||
|
JXT = (KPF, DLH)
|
||||||
|
SVV = (BCV, VVT)
|
||||||
|
KLD = (MHM, PVJ)
|
||||||
|
QNN = (SVV, NQK)
|
||||||
|
FCX = (GFV, CHN)
|
||||||
|
BNS = (QBD, DDP)
|
||||||
|
SHP = (HML, CQH)
|
||||||
|
TJD = (TXL, CXT)
|
||||||
|
BQF = (FCP, DCQ)
|
||||||
|
MKX = (SNS, CCN)
|
||||||
|
JKF = (NPH, KGL)
|
||||||
|
LFB = (QFL, GVT)
|
||||||
|
DCQ = (PLJ, KND)
|
||||||
|
SVP = (VGX, JCR)
|
||||||
|
PGN = (XMT, MXG)
|
||||||
|
NVZ = (VRF, XLT)
|
||||||
|
VBR = (BDM, LXP)
|
||||||
|
GTX = (PHK, DSN)
|
||||||
|
BDX = (XHC, HQD)
|
||||||
|
JGX = (HGC, FBH)
|
||||||
|
BBL = (DFS, TCK)
|
||||||
|
KNT = (BBX, GMP)
|
||||||
|
TLP = (LXH, TKF)
|
||||||
|
TDS = (CBB, VPN)
|
||||||
|
CTD = (LTN, LTN)
|
||||||
|
HCG = (RRQ, GTQ)
|
||||||
|
VRG = (TTS, KQC)
|
||||||
|
RLC = (TLP, FQX)
|
||||||
|
FBH = (DBM, LCX)
|
||||||
|
SCP = (TVC, RBX)
|
||||||
|
CGC = (TBN, FVC)
|
||||||
|
JFG = (NQP, GDV)
|
||||||
|
BVM = (RLG, JBP)
|
||||||
|
DCF = (KNF, FCX)
|
||||||
|
BJV = (QXV, LQD)
|
||||||
|
QBD = (JBR, KLD)
|
||||||
|
QFG = (BBL, SVH)
|
||||||
|
RFF = (HPQ, KCD)
|
||||||
|
QJQ = (PRV, BVK)
|
||||||
|
FMC = (QHJ, GFG)
|
||||||
|
PXV = (STQ, VHK)
|
||||||
|
VVN = (XNC, BNS)
|
||||||
|
NHG = (DXM, KVJ)
|
||||||
|
SSP = (SGJ, GSK)
|
||||||
|
QMT = (JFG, XBK)
|
||||||
|
VRK = (NQK, SVV)
|
||||||
|
SNT = (DDG, RSG)
|
||||||
|
RRB = (BPG, CVQ)
|
||||||
|
DXQ = (JDQ, DSX)
|
||||||
|
FMP = (SHM, GSV)
|
||||||
|
VMF = (FJX, VBR)
|
||||||
|
NKJ = (GKP, SBS)
|
||||||
|
XGM = (FLR, MXS)
|
||||||
|
SKX = (NLH, RTG)
|
||||||
|
XMS = (FDP, PRK)
|
||||||
|
SPG = (PPG, XCT)
|
||||||
|
QNR = (MPX, SXC)
|
||||||
|
MDC = (BPM, CTR)
|
||||||
|
SMR = (TJT, HXC)
|
||||||
|
TBN = (FJS, TDS)
|
||||||
|
BGH = (NPF, HRT)
|
||||||
|
VDS = (XHS, PSX)
|
||||||
|
RBX = (CDJ, PBG)
|
||||||
|
VLC = (CQJ, GPP)
|
||||||
|
SVR = (GTX, HLC)
|
||||||
|
MDV = (DGL, SFJ)
|
||||||
|
GMB = (CSP, PRH)
|
||||||
|
QSP = (TBD, CFM)
|
||||||
|
GFQ = (PHH, NGQ)
|
||||||
|
HXG = (BDT, VRG)
|
||||||
|
PPG = (XDM, MMN)
|
||||||
|
MSH = (SHC, QCM)
|
||||||
|
CHR = (JXF, JNB)
|
||||||
|
RDX = (MTH, BGH)
|
||||||
|
VXC = (MSD, BFL)
|
||||||
|
DLP = (PXV, QQP)
|
||||||
|
MXP = (FQX, TLP)
|
||||||
|
TTQ = (TBD, CFM)
|
||||||
|
GHG = (HPF, NRK)
|
||||||
|
SNK = (BQF, CPH)
|
||||||
|
MGG = (STJ, QDH)
|
||||||
|
CCJ = (MBM, KNT)
|
||||||
|
NNL = (KBH, LKC)
|
||||||
|
LKD = (GKJ, TRS)
|
||||||
|
GFN = (LGT, LXK)
|
||||||
|
QBM = (XGM, SFV)
|
||||||
|
STJ = (CFV, CFV)
|
||||||
|
DSK = (RDP, NBQ)
|
||||||
|
TSC = (FKJ, DSK)
|
||||||
|
NSV = (LQB, TRJ)
|
||||||
|
FKF = (XGR, JXT)
|
||||||
|
DNX = (NTJ, MSH)
|
||||||
|
NLH = (JSH, LKD)
|
||||||
|
CFV = (TPC, SNK)
|
||||||
|
DRP = (VBR, FJX)
|
||||||
|
BDM = (SPR, RTF)
|
||||||
|
TGF = (FPC, CSK)
|
||||||
|
CNH = (VXD, LFX)
|
||||||
|
BFL = (RQP, RVP)
|
||||||
|
XHC = (GND, MDV)
|
||||||
|
CJJ = (RLT, QQB)
|
||||||
|
HPH = (XMM, NHL)
|
||||||
|
PRH = (FLN, BNM)
|
||||||
|
JCR = (THT, VCP)
|
||||||
|
VHK = (XDC, JFR)
|
||||||
|
NQP = (KXT, BJT)
|
||||||
|
CDJ = (KNC, PFX)
|
||||||
|
SCF = (DKC, QQQ)
|
||||||
|
JBR = (MHM, PVJ)
|
||||||
|
TPC = (BQF, CPH)
|
||||||
|
FDC = (LKJ, VDS)
|
||||||
|
KNC = (XCQ, VKJ)
|
||||||
|
VQM = (SHG, XTT)
|
||||||
|
KND = (QCS, TVN)
|
||||||
|
MDM = (GPL, DNX)
|
||||||
|
FJX = (LXP, BDM)
|
||||||
|
BDV = (XTB, NVZ)
|
||||||
|
LBM = (KFN, TGG)
|
||||||
|
XKC = (KBH, LKC)
|
||||||
|
QVF = (VMP, BVM)
|
||||||
|
SHG = (RBR, BHF)
|
||||||
|
DNB = (SVC, SSQ)
|
||||||
|
SCN = (JGG, BDV)
|
||||||
|
SXC = (TGC, CHR)
|
||||||
|
XSL = (KCJ, SVG)
|
||||||
|
TKF = (VLC, LVJ)
|
||||||
|
LKJ = (XHS, PSX)
|
||||||
|
VHX = (QMG, LCN)
|
||||||
|
HGC = (LCX, DBM)
|
||||||
|
MLN = (HFD, KVM)
|
||||||
|
XDM = (JNK, RRS)
|
||||||
|
RTK = (PKD, NPC)
|
||||||
|
QQQ = (DSL, FTV)
|
||||||
|
VJS = (DTF, VFQ)
|
||||||
|
LLM = (VVG, BNT)
|
||||||
|
MFM = (NHG, NQD)
|
||||||
|
NQK = (VVT, BCV)
|
||||||
|
NHN = (HPM, VCJ)
|
||||||
|
SKP = (NMQ, XHM)
|
||||||
|
HXC = (BVD, PFN)
|
||||||
|
LSK = (FQJ, KGC)
|
||||||
|
FPC = (GFX, MDQ)
|
||||||
|
STC = (RBF, PTM)
|
||||||
|
CTR = (BRD, KQZ)
|
||||||
|
BNQ = (SKB, LPC)
|
||||||
|
QQL = (SKX, DGB)
|
||||||
|
NHX = (RKX, HPH)
|
||||||
|
QHJ = (GRQ, BBP)
|
||||||
|
XCQ = (XPX, PGN)
|
||||||
|
HTV = (GTS, KBJ)
|
||||||
|
JXF = (DXQ, FBK)
|
||||||
|
JTR = (HTJ, PML)
|
||||||
|
JHB = (JSM, QJH)
|
||||||
|
CQF = (BDT, VRG)
|
||||||
|
GNQ = (QCT, QFG)
|
||||||
|
TQC = (TGB, BSF)
|
||||||
|
SFS = (SCP, QLZ)
|
||||||
|
MDQ = (MJD, XVS)
|
||||||
|
DLC = (TMM, DFM)
|
||||||
|
FLN = (RGV, SDN)
|
||||||
|
PVJ = (QTG, XGF)
|
||||||
|
JFR = (JTR, GHT)
|
||||||
|
PGK = (VVR, MHR)
|
||||||
|
TDP = (SSQ, SVC)
|
||||||
|
RLF = (RKP, SKK)
|
||||||
|
HJN = (NHB, HKS)
|
||||||
|
VJR = (TRJ, LQB)
|
||||||
|
VGX = (VCP, THT)
|
||||||
|
DSB = (PLL, KSG)
|
||||||
|
FTM = (VGX, JCR)
|
||||||
|
MHR = (LBM, NKF)
|
||||||
|
JFD = (CBP, HLJ)
|
||||||
|
HKH = (CBP, HLJ)
|
||||||
|
FDV = (QFH, JMK)
|
||||||
|
NHL = (RQG, JKF)
|
||||||
|
CQJ = (DHQ, NRC)
|
||||||
|
HVD = (SNS, CCN)
|
||||||
|
PLN = (QKM, LDP)
|
||||||
|
THT = (BCL, XDT)
|
||||||
|
FDP = (SCD, XCP)
|
||||||
|
TJC = (HHV, MVS)
|
||||||
|
QCM = (HKK, FQV)
|
||||||
|
TJQ = (QCT, QFG)
|
||||||
|
HFR = (KJH, PKF)
|
||||||
|
RQG = (NPH, KGL)
|
||||||
|
SRJ = (TNS, NPR)
|
||||||
|
LTR = (NKQ, PJG)
|
||||||
|
XST = (FVX, RGT)
|
||||||
|
MBM = (GMP, BBX)
|
||||||
|
KVM = (CBD, DBG)
|
||||||
|
MVS = (VRL, JVC)
|
||||||
|
SSC = (RPL, HBT)
|
||||||
|
QQP = (VHK, STQ)
|
||||||
|
CHQ = (SVG, KCJ)
|
||||||
|
BVD = (FMQ, JGX)
|
||||||
|
FNX = (NPC, PKD)
|
||||||
|
FJS = (CBB, VPN)
|
||||||
|
PLD = (FFL, HJN)
|
||||||
|
TVC = (CDJ, PBG)
|
||||||
|
DBX = (XJN, PTB)
|
||||||
|
MDK = (SQD, RGD)
|
||||||
|
JPL = (NQS, CNH)
|
||||||
|
VDG = (GKS, CJJ)
|
||||||
|
HQB = (GFT, JLR)
|
||||||
|
GQS = (VMF, DRP)
|
||||||
|
PST = (MKS, KXG)
|
||||||
|
XGS = (SHP, FPF)
|
||||||
|
XDJ = (VNX, PTR)
|
||||||
|
MHM = (QTG, XGF)
|
||||||
|
SHN = (SBS, GKP)
|
||||||
|
LFX = (FLF, NCQ)
|
||||||
|
BFX = (JNQ, MCT)
|
||||||
|
XHM = (RNQ, MDM)
|
||||||
|
LXN = (HJN, FFL)
|
||||||
|
HPJ = (JRT, GDQ)
|
||||||
|
NVN = (DTD, TQC)
|
||||||
|
KGL = (QJC, JQF)
|
||||||
|
MCT = (PBP, VDG)
|
||||||
|
QFH = (LPX, JNM)
|
||||||
|
FVC = (FJS, TDS)
|
||||||
|
DRL = (QBM, CTP)
|
||||||
|
LTJ = (MLX, NHX)
|
||||||
|
THB = (JTN, JHB)
|
||||||
|
SBX = (RPN, PKQ)
|
||||||
|
KMV = (RRQ, GTQ)
|
||||||
|
MNX = (LMH, RXH)
|
||||||
|
LKC = (TMH, MGF)
|
||||||
|
TMM = (BFX, PNS)
|
||||||
|
TMH = (XMS, GGT)
|
||||||
|
LPX = (QRM, MSV)
|
||||||
|
STN = (DRL, NMF)
|
||||||
|
RKP = (CHQ, XSL)
|
||||||
|
DNC = (HDG, VJS)
|
||||||
|
XMM = (JKF, RQG)
|
||||||
|
GFT = (LSM, NXT)
|
||||||
|
LSM = (SMR, PGC)
|
||||||
|
FKS = (XSJ, PMK)
|
||||||
|
MPD = (JGG, JGG)
|
||||||
|
DKC = (DSL, FTV)
|
||||||
|
HLC = (DSN, PHK)
|
||||||
|
KMS = (BJC, BFV)
|
||||||
|
NJT = (RFT, STN)
|
||||||
|
JSK = (RBF, RBF)
|
||||||
|
HLJ = (LGD, PTX)
|
||||||
|
QMG = (TLV, FMC)
|
||||||
|
GPL = (NTJ, MSH)
|
||||||
|
RQP = (XVQ, LSQ)
|
||||||
|
GGT = (FDP, PRK)
|
||||||
|
XKN = (JBK, SQN)
|
||||||
|
FVX = (MGN, GFN)
|
||||||
|
GST = (CRK, SCF)
|
||||||
|
MTK = (BFV, BJC)
|
||||||
|
CCN = (KMV, HCG)
|
||||||
|
TRS = (PDP, TQD)
|
||||||
|
NRN = (LBP, JHT)
|
||||||
|
GFG = (GRQ, BBP)
|
||||||
|
XBK = (NQP, GDV)
|
||||||
|
CXT = (QRV, PPH)
|
||||||
|
FQV = (SSP, XNP)
|
||||||
|
GFB = (NDC, TPM)
|
||||||
|
VXD = (NCQ, FLF)
|
||||||
|
XPX = (MXG, XMT)
|
||||||
|
SQD = (SRV, GGX)
|
||||||
|
GKP = (NFC, CGC)
|
||||||
|
AAA = (XBB, FGX)
|
||||||
|
KXR = (SHM, GSV)
|
||||||
|
DGB = (RTG, NLH)
|
||||||
|
PJM = (PNC, MNX)
|
||||||
|
QGV = (NPR, TNS)
|
||||||
|
CFB = (SLP, XQG)
|
||||||
|
FDJ = (TDV, MJB)
|
||||||
|
DSN = (KGF, SBX)
|
||||||
|
FLR = (FDL, SXH)
|
||||||
|
JGL = (QRQ, XLP)
|
||||||
|
JQN = (JTN, JHB)
|
||||||
|
MTH = (NPF, HRT)
|
||||||
|
PRK = (SCD, XCP)
|
||||||
|
VHA = (KLF, HXJ)
|
||||||
|
VVR = (NKF, LBM)
|
||||||
|
CQH = (VTD, KJK)
|
||||||
|
DRF = (MPX, SXC)
|
||||||
|
FDL = (LSK, HMP)
|
||||||
|
PFX = (XCQ, VKJ)
|
||||||
|
HPF = (XKC, NNL)
|
||||||
|
LXH = (LVJ, VLC)
|
||||||
|
SVC = (MXX, BNQ)
|
||||||
|
GFX = (XVS, MJD)
|
||||||
|
DGT = (SKK, RKP)
|
||||||
|
XKD = (KFK, SPG)
|
||||||
|
XJN = (BDK, QXQ)
|
||||||
|
KQH = (KLM, JGL)
|
||||||
|
VMH = (SKR, XFK)
|
||||||
|
CHN = (VSK, GFQ)
|
||||||
|
LHV = (DGK, XST)
|
||||||
|
HCF = (PKF, KJH)
|
||||||
|
CNF = (QHB, XPJ)
|
||||||
|
QCS = (SJM, KMC)
|
||||||
|
GXP = (QQL, PKG)
|
||||||
|
SBJ = (QJQ, KJN)
|
||||||
|
DHQ = (GPD, JMG)
|
||||||
|
VLG = (FQG, LFB)
|
||||||
|
GDQ = (VTN, SKP)
|
||||||
|
NMQ = (MDM, RNQ)
|
||||||
|
XKM = (KVM, HFD)
|
||||||
|
BNM = (SDN, RGV)
|
||||||
|
MLX = (RKX, HPH)
|
||||||
|
QJC = (LLK, BQH)
|
||||||
|
HML = (KJK, VTD)
|
||||||
|
SKK = (CHQ, XSL)
|
||||||
|
FQX = (TKF, LXH)
|
||||||
|
PKD = (MXN, MTC)
|
||||||
|
NQS = (LFX, VXD)
|
||||||
|
HBT = (CDP, MMH)
|
||||||
|
LRC = (DFM, TMM)
|
||||||
|
NXT = (SMR, PGC)
|
||||||
|
SXB = (XHD, SNT)
|
||||||
|
RBF = (VGG, VGG)
|
||||||
|
RXP = (GNQ, TJQ)
|
||||||
|
RVK = (DRP, VMF)
|
||||||
18
day08/part1.py
Normal file
18
day08/part1.py
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
|
||||||
|
lines = (x.strip() for x in open("input.txt"))
|
||||||
|
|
||||||
|
instructions = tuple(int(char == "R") for char in next(lines))
|
||||||
|
next(lines)
|
||||||
|
nodes = {line[:3]: (line[7:10], line[12:15]) for line in lines}
|
||||||
|
|
||||||
|
node = "AAA"
|
||||||
|
cnt = 0
|
||||||
|
|
||||||
|
while True:
|
||||||
|
for char in instructions:
|
||||||
|
node = nodes[node][char]
|
||||||
|
cnt += 1
|
||||||
|
if node == "ZZZ":
|
||||||
|
print(cnt)
|
||||||
|
exit(0)
|
||||||
28
day08/part2.py
Normal file
28
day08/part2.py
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
import functools
|
||||||
|
|
||||||
|
lines = (x.strip() for x in open("input.txt"))
|
||||||
|
|
||||||
|
instructions = tuple(int(char == "R") for char in next(lines))
|
||||||
|
next(lines)
|
||||||
|
nodes = {line[:3]: (line[7:10], line[12:15]) for line in lines}
|
||||||
|
|
||||||
|
|
||||||
|
def get_loop(node: str):
|
||||||
|
cnt = 0
|
||||||
|
while True:
|
||||||
|
for char in instructions:
|
||||||
|
node = nodes[node][char]
|
||||||
|
cnt += 1
|
||||||
|
if node[2] == "Z":
|
||||||
|
return cnt
|
||||||
|
|
||||||
|
def lcm(a, b):
|
||||||
|
mul = abs(a * b)
|
||||||
|
while b:
|
||||||
|
a, b = b, a % b
|
||||||
|
return mul // a
|
||||||
|
|
||||||
|
curr_nodes = tuple(key for key in nodes.keys() if key[2] == "A")
|
||||||
|
loops = map(get_loop, curr_nodes)
|
||||||
|
print(functools.reduce(lcm, loops, 1))
|
||||||
200
day09/input.txt
Normal file
200
day09/input.txt
Normal file
@@ -0,0 +1,200 @@
|
|||||||
|
10 20 37 71 136 258 493 972 2001 4255 9116 19216 39257 77191 145854 265159 464964 788742 1298191 2078933 3247462
|
||||||
|
28 53 92 163 312 639 1336 2734 5353 9946 17525 29354 46891 71658 105015 147811 199882 259363 321778 378869 417122
|
||||||
|
10 18 38 85 184 373 706 1256 2118 3412 5286 7919 11524 16351 22690 30874 41282 54342 70534 90393 114512
|
||||||
|
13 28 45 59 57 23 -46 -115 -83 238 1123 2895 5825 9945 14744 18713 18701 9040 -19607 -81725 -198807
|
||||||
|
9 5 1 -3 -7 -11 -15 -19 -23 -27 -31 -35 -39 -43 -47 -51 -55 -59 -63 -67 -71
|
||||||
|
26 53 100 185 338 598 1021 1712 2894 5027 8990 16339 29654 52988 92431 156802 258482 414401 647192 986525 1470634
|
||||||
|
-4 -3 6 21 48 113 274 633 1348 2645 4830 8301 13560 21225 32042 46897 66828 93037 126902 169989 224064
|
||||||
|
-1 6 26 68 147 297 599 1238 2613 5546 11682 24255 49539 99573 197307 386506 751211 1454366 2814050 5451042 10566571
|
||||||
|
2 9 29 70 152 319 651 1276 2382 4229 7161 11618 18148 27419 40231 57528 80410 110145 148181 196158 255920
|
||||||
|
15 31 62 122 234 426 729 1198 1998 3624 7357 16097 35759 77469 160854 318783 603985 1098045 1923360 3258724 5359304
|
||||||
|
3 4 -4 -16 -18 27 213 757 2116 5181 11581 24137 47513 89118 160320 278040 466801 761314 1209690 1877374 2851904
|
||||||
|
15 27 41 61 100 186 371 743 1441 2673 4737 8045 13150 20776 31851 47543 69299 98887 138441 190509 258104
|
||||||
|
21 29 33 34 38 64 171 522 1518 4057 10016 23160 50945 108288 225665 466447 963131 1990517 4108079 8426882 17092752
|
||||||
|
-7 -5 2 14 31 53 80 112 149 191 238 290 347 409 476 548 625 707 794 886 983
|
||||||
|
10 17 27 56 134 313 694 1483 3095 6345 12801 25432 49772 95968 182400 342397 637759 1188072 2236418 4295587 8463149
|
||||||
|
16 26 36 46 56 66 76 86 96 106 116 126 136 146 156 166 176 186 196 206 216
|
||||||
|
22 32 38 47 92 253 688 1684 3744 7738 15173 28689 52972 96396 173887 311842 556735 991041 1764922 3162971 5748235
|
||||||
|
10 20 37 70 137 283 611 1333 2870 6079 12774 26866 56747 120143 253858 533128 1109490 2283314 4639099 9290554 18311365
|
||||||
|
13 15 18 37 104 283 699 1588 3387 6912 13742 27077 53633 107690 219414 451350 930029 1904693 3853286 7668565 14976442
|
||||||
|
11 32 72 156 326 653 1254 2309 4071 6863 11062 17095 25560 37842 58254 100287 202979 470554 1162628 2889018 7011602
|
||||||
|
13 22 47 109 238 475 888 1618 2992 5779 11726 24597 52051 108836 221945 438576 837959 1548356 2770801 4811421 8124460
|
||||||
|
25 46 86 154 255 397 609 970 1649 2956 5404 9782 17239 29379 48367 77046 119065 179018 262594 376738 529823
|
||||||
|
18 27 36 45 54 63 72 81 90 99 108 117 126 135 144 153 162 171 180 189 198
|
||||||
|
-5 -6 0 20 66 157 314 553 892 1400 2324 4324 8811 18299 36524 67821 114849 173174 220416 196588 -29152
|
||||||
|
4 3 2 1 0 -1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16
|
||||||
|
7 22 56 133 292 603 1198 2319 4389 8129 14795 26724 48601 90277 172780 340808 688379 1411160 2912394 6014571 12374722
|
||||||
|
11 15 21 27 46 129 409 1190 3131 7622 17519 38503 81470 166580 329955 634616 1188227 2171761 3885569 6822835 11785430
|
||||||
|
12 14 25 56 118 222 379 600 896 1278 1757 2344 3050 3886 4863 5992 7284 8750 10401 12248 14302
|
||||||
|
-4 3 24 64 128 221 348 514 724 983 1296 1668 2104 2609 3188 3846 4588 5419 6344 7368 8496
|
||||||
|
12 20 21 22 45 128 336 807 1868 4276 9692 21622 47322 101659 214780 446844 915248 1843016 3641675 7048442 13346399
|
||||||
|
-5 10 50 128 271 527 974 1750 3140 5775 11022 21689 43277 86280 170677 335205 657045 1293576 2569118 5149622 10382351
|
||||||
|
7 17 56 145 325 674 1334 2562 4822 8938 16348 29563 53093 95469 173831 324424 626309 1253519 2585836 5435109 11489697
|
||||||
|
3 15 55 133 252 421 679 1127 1970 3591 6720 12824 24925 49143 97346 191350 369125 693399 1262877 2225967 3796386
|
||||||
|
9 19 42 86 170 328 625 1195 2311 4497 8692 16476 30368 54206 93619 156601 254197 401311 617646 928786 1367430
|
||||||
|
11 8 15 39 82 147 265 563 1406 3673 9274 22088 49607 105714 215210 420942 794677 1453222 2581713 4466493 7540576
|
||||||
|
13 25 60 142 312 634 1201 2141 3623 5863 9130 13752 20122 28704 40039 54751 73553 97253 126760 163090 207372
|
||||||
|
1 21 57 109 187 319 553 951 1573 2457 3621 5159 7620 13150 28536 72642 193269 502929 1250405 2956629 6661117
|
||||||
|
8 18 41 89 189 388 758 1401 2454 4094 6543 10073 15011 21744 30724 42473 57588 76746 100709 130329 166553
|
||||||
|
5 11 20 30 38 47 94 314 1059 3095 7904 18122 38148 74963 139202 246526 419345 688947 1098092 1704134 2582738
|
||||||
|
-1 3 22 66 155 331 675 1326 2510 4617 8422 15649 30253 61086 127078 266782 555205 1132403 2250514 4348928 8171371
|
||||||
|
-4 -2 22 82 187 346 595 1054 2020 4106 8451 17059 33400 63594 118963 221791 418320 807190 1598984 3235088 6614221
|
||||||
|
9 22 33 37 44 99 313 926 2436 5853 13200 28533 60068 124593 256341 524077 1062567 2128324 4195503 8117873 15400320
|
||||||
|
3 18 55 125 238 405 638 947 1349 1939 3136 6317 15199 38537 95011 221698 488630 1024559 2065280 4049948 7820703
|
||||||
|
8 19 48 98 180 324 600 1170 2414 5212 11523 25479 55303 116480 236856 465039 885489 1648974 3039687 5628017 10614711
|
||||||
|
11 11 20 52 134 316 697 1475 3027 6023 11576 21428 38170 65492 108457 173791 270179 408555 602372 867836 1224086
|
||||||
|
22 42 67 102 173 352 807 1899 4367 9671 20601 42320 84138 162616 307259 571364 1052956 1934724 3558159 6556542 12085011
|
||||||
|
-4 -10 -17 -23 -19 32 226 754 1950 4391 9151 18410 36763 73771 148554 297553 586992 1132060 2125415 3878295 6878313
|
||||||
|
6 22 55 123 258 511 969 1803 3369 6386 12216 23268 43543 79353 140352 241358 406296 677422 1136557 1951553 3472424
|
||||||
|
7 16 25 34 43 52 61 70 79 88 97 106 115 124 133 142 151 160 169 178 187
|
||||||
|
-2 9 30 61 102 153 214 285 366 457 558 669 790 921 1062 1213 1374 1545 1726 1917 2118
|
||||||
|
9 22 53 115 233 444 802 1412 2547 4947 10459 23252 51931 112979 236076 471979 903797 1662660 2948961 5060545 8429429
|
||||||
|
-2 5 13 32 102 304 771 1700 3358 6058 10048 15209 20419 22461 14525 -15185 -83286 -206365 -385589 -570762 -587760
|
||||||
|
4 22 49 93 172 319 591 1085 1975 3616 6831 13631 28857 63639 142229 314805 680422 1426610 2895445 5690561 10845906
|
||||||
|
26 44 64 87 118 165 252 470 1101 2877 7490 18561 43416 96222 203359 412496 808058 1538356 2864986 5255597 9560768
|
||||||
|
15 19 20 17 9 -5 -26 -55 -93 -141 -200 -271 -355 -453 -566 -695 -841 -1005 -1188 -1391 -1615
|
||||||
|
6 8 15 27 44 66 93 125 162 204 251 303 360 422 489 561 638 720 807 899 996
|
||||||
|
-7 0 33 109 246 465 796 1288 2023 3134 4827 7407 11308 17127 25662 37954 55333 79468 112421 156705 215346
|
||||||
|
5 8 12 9 -9 -48 -102 -126 15 626 2294 6033 13461 27006 50136 87606 145713 232548 358232 535121 777963
|
||||||
|
15 33 70 143 279 516 904 1506 2399 3675 5442 7825 10967 15030 20196 26668 34671 44453 56286 70467 87319
|
||||||
|
16 30 61 122 232 418 710 1132 1700 2459 3638 6093 12383 29173 72363 177741 422644 969084 2147691 4617244 9660542
|
||||||
|
7 32 68 127 237 444 814 1435 2419 3904 6056 9071 13177 18636 25746 34843 46303 60544 78028 99263 124805
|
||||||
|
3 7 18 40 67 92 136 311 947 2838 7697 18956 43105 91835 185335 357193 661467 1182625 2049204 3452208 5669455
|
||||||
|
25 44 65 99 177 365 789 1670 3369 6442 11705 20309 33825 54339 84557 127920 188729 272280 385009 534647 730385
|
||||||
|
19 26 31 46 102 256 602 1285 2509 4524 7573 11775 16914 22110 25414 23633 13518 -2249 5102 148485 777449
|
||||||
|
15 16 13 14 42 143 399 954 2069 4233 8369 16197 30897 58483 111035 214682 428973 891784 1918347 4209978 9277526
|
||||||
|
13 20 20 21 47 157 480 1283 3104 6997 14951 30560 60036 113672 207877 367920 631535 1053554 1711750 2714087 4207589
|
||||||
|
15 29 58 105 176 297 542 1073 2208 4560 9342 19048 38969 80502 168149 353813 745089 1559867 3229842 6594307 13259578
|
||||||
|
22 48 101 193 341 580 985 1718 3129 5953 11658 23012 44950 85835 159220 286231 498704 843222 1386211 2220267 3471899
|
||||||
|
17 43 84 150 266 493 964 1937 3876 7604 14642 27966 53588 103601 201621 391904 753799 1423597 2626220 4719522 8254194
|
||||||
|
3 8 15 25 42 73 128 220 365 582 893 1323 1900 2655 3622 4838 6343 8180 10395 13037 16158
|
||||||
|
0 4 13 36 107 306 786 1820 3910 8047 16280 32843 66199 132483 260953 502177 939780 1706630 3006335 5140830 8544627
|
||||||
|
17 31 52 89 164 317 613 1155 2114 3805 6884 12838 25117 51549 109127 232908 491671 1014203 2031684 3943695 7417954
|
||||||
|
0 12 47 126 277 535 942 1547 2406 3582 5145 7172 9747 12961 16912 21705 27452 34272 42291 51642 62465
|
||||||
|
24 28 36 69 160 357 738 1451 2795 5371 10378 20257 40197 81697 170733 365567 793490 1722634 3695420 7765381 15900254
|
||||||
|
15 29 46 65 85 116 195 406 914 2047 4502 9816 21336 46048 97789 202573 407017 791161 1487342 2707211 4779479
|
||||||
|
-8 -8 11 63 162 322 557 881 1308 1852 2527 3347 4326 5478 6817 8357 10112 12096 14323 16807 19562
|
||||||
|
2 15 44 97 202 427 917 1969 4181 8742 17987 36448 72841 143834 281192 545212 1049548 2005985 3802966 7139347 13245732
|
||||||
|
20 40 70 115 180 270 390 545 740 980 1270 1615 2020 2490 3030 3645 4340 5120 5990 6955 8020
|
||||||
|
17 34 63 115 211 381 662 1102 1796 3008 5476 11072 24124 53941 119465 257567 537379 1084294 2118965 4018897 7413169
|
||||||
|
21 27 33 39 45 51 57 63 69 75 81 87 93 99 105 111 117 123 129 135 141
|
||||||
|
24 51 101 179 288 430 608 833 1151 1727 3056 6413 14699 33885 75332 159512 322466 628597 1198855 2275141 4364978
|
||||||
|
-4 -5 -8 -16 -25 -22 23 181 625 1782 4704 11929 29352 70027 161429 358584 766698 1578565 3134200 6012926 11171653
|
||||||
|
23 52 96 166 280 474 835 1562 3062 6107 12130 23838 46483 90373 175539 339916 652961 1237334 2302124 4192126 7458882
|
||||||
|
9 34 74 145 277 521 975 1849 3602 7201 14572 29335 57938 111328 207319 373837 653239 1107916 1827398 2937181 4609491
|
||||||
|
3 12 32 72 163 375 843 1805 3666 7121 13388 24604 44408 78687 136500 231653 387061 648502 1124596 2090896 4236081
|
||||||
|
9 18 28 44 80 159 313 583 1019 1680 2634 3958 5738 8069 11055 14809 19453 25118 31944 40080 49684
|
||||||
|
11 7 -4 -26 -63 -119 -198 -304 -441 -613 -824 -1078 -1379 -1731 -2138 -2604 -3133 -3729 -4396 -5138 -5959
|
||||||
|
4 -1 5 47 169 441 977 1989 3928 7803 15823 32575 67033 135789 268007 512725 949268 1701687 2958305 4997631 8222097
|
||||||
|
23 40 81 164 307 524 817 1162 1488 1660 1511 1035 964 4118 18149 60609 167669 408312 906429 1873974 3659193
|
||||||
|
6 21 41 66 96 131 171 216 266 321 381 446 516 591 671 756 846 941 1041 1146 1256
|
||||||
|
6 12 31 73 149 281 522 989 1914 3722 7156 13492 24927 45285 81275 144656 255822 449520 783661 1352483 2305681
|
||||||
|
24 50 98 177 293 443 619 852 1355 2873 7429 19789 50192 119274 266804 567130 1156623 2282814 4392942 8294246 15445454
|
||||||
|
16 33 50 60 67 115 334 1019 2771 6753 15172 32234 66103 132923 264851 525427 1037598 2032417 3929906 7467776 13898495
|
||||||
|
16 42 79 127 186 256 337 429 532 646 771 907 1054 1212 1381 1561 1752 1954 2167 2391 2626
|
||||||
|
1 19 47 92 174 329 612 1100 1895 3127 4957 7580 11228 16173 22730 31260 42173 55931 73051 94108 119738
|
||||||
|
19 47 99 179 283 403 541 749 1221 2466 5598 12825 28378 60532 126285 262133 548051 1158840 2470367 5273260 11192757
|
||||||
|
8 27 65 145 302 583 1047 1765 2820 4307 6333 9017 12490 16895 22387 29133 37312 47115 58745 72417 88358
|
||||||
|
5 12 20 23 7 -39 -89 -18 489 2054 5742 13205 26819 49795 86241 141148 220269 329856 476216 665043 900479
|
||||||
|
5 0 -5 -10 -15 -20 -25 -30 -35 -40 -45 -50 -55 -60 -65 -70 -75 -80 -85 -90 -95
|
||||||
|
11 21 33 64 139 295 591 1124 2051 3617 6189 10296 16675 26323 40555 61068 90011 130061 184505 257328 353307
|
||||||
|
13 38 84 164 296 503 813 1259 1879 2716 3818 5238 7034 9269 12011 15333 19313 24034 29584 36056 43548
|
||||||
|
22 34 46 58 70 82 94 106 118 130 142 154 166 178 190 202 214 226 238 250 262
|
||||||
|
-7 -15 -14 22 139 406 918 1803 3246 5560 9359 15921 27870 50355 92961 172652 318119 575987 1019424 1759792 2962085
|
||||||
|
2 13 30 53 82 117 158 205 258 317 382 453 530 613 702 797 898 1005 1118 1237 1362
|
||||||
|
6 6 1 0 26 115 324 767 1719 3872 8903 20631 47207 105007 225192 464270 920452 1758146 3243589 5795386 10054616
|
||||||
|
13 34 67 112 169 238 319 412 517 634 763 904 1057 1222 1399 1588 1789 2002 2227 2464 2713
|
||||||
|
7 17 32 56 110 241 546 1240 2827 6492 14946 34166 76844 169001 362308 756457 1538847 3053479 5918108 11219488 20832434
|
||||||
|
18 40 84 171 344 680 1314 2490 4654 8604 15712 28233 49716 85532 143534 234864 374922 584512 891180 1330759 1949136
|
||||||
|
4 13 26 54 124 283 606 1212 2302 4257 7882 14972 29534 60259 125242 260546 535056 1075237 2104970 4007674 7420520
|
||||||
|
0 12 35 77 163 350 760 1659 3624 7855 16705 34518 68883 132431 245322 438590 758536 1272382 2075423 3299939 5126155
|
||||||
|
9 4 11 45 124 269 504 856 1355 2034 2929 4079 5526 7315 9494 12114 15229 18896 23175 28129 33824
|
||||||
|
15 24 39 67 126 267 602 1352 2953 6292 13185 27255 55430 110392 214551 406675 753543 1371592 2468747 4426635 7961898
|
||||||
|
4 2 0 -2 -4 -6 -8 -10 -12 -14 -16 -18 -20 -22 -24 -26 -28 -30 -32 -34 -36
|
||||||
|
26 47 84 156 301 596 1196 2405 4805 9500 18596 36156 70078 135716 262733 507871 978412 1874633 3565304 6719300 12530091
|
||||||
|
12 24 54 110 200 332 514 754 1060 1440 1902 2454 3104 3860 4730 5722 6844 8104 9510 11070 12792
|
||||||
|
12 28 56 101 169 267 403 586 826 1134 1522 2003 2591 3301 4149 5152 6328 7696 9276 11089 13157
|
||||||
|
26 52 85 120 152 176 187 180 150 92 1 -128 -300 -520 -793 -1124 -1518 -1980 -2515 -3128 -3824
|
||||||
|
10 11 8 0 -6 25 199 766 2230 5506 12142 24639 46926 85082 148445 251311 415506 674213 1077556 1700586 2654482
|
||||||
|
13 34 70 139 269 498 874 1455 2309 3514 5158 7339 10165 13754 18234 23743 30429 38450 47974 59179 72253
|
||||||
|
-1 9 35 79 133 188 257 412 835 1883 4167 8645 16729 30406 52373 86186 136423 208861 310667 450603 639245
|
||||||
|
17 41 74 122 199 327 536 864 1357 2069 3062 4406 6179 8467 11364 14972 19401 24769 31202 38834 47807
|
||||||
|
9 21 48 101 216 477 1048 2227 4562 9109 17963 35253 68859 133181 253365 471467 855111 1509269 2591858 4333909 7065114
|
||||||
|
12 23 35 43 42 27 -7 -65 -152 -273 -433 -637 -890 -1197 -1563 -1993 -2492 -3065 -3717 -4453 -5278
|
||||||
|
4 27 78 174 340 626 1138 2085 3844 7045 12678 22224 37812 62404 100010 155935 237060 352159 512254 731010 1025172
|
||||||
|
4 13 33 84 210 495 1090 2263 4498 8699 16620 31771 61284 119630 235790 466776 922862 1814771 3542949 6869036 13249340
|
||||||
|
8 26 59 113 190 287 395 498 572 584 491 239 -238 -1019 -2197 -3880 -6192 -9274 -13285 -18403 -24826
|
||||||
|
-4 -4 -6 -7 8 74 268 757 1878 4240 8802 16809 29338 45989 61923 62014 10540 -164690 -591588 -1463327 -2996076
|
||||||
|
17 35 75 159 330 661 1269 2347 4236 7573 13583 24661 45568 85944 165612 325670 651297 1317646 2679888 5444771 10986614
|
||||||
|
8 -2 -14 -16 13 102 287 607 1096 1773 2643 3768 5613 10260 24999 71777 209912 586780 1543972 3827672 8985725
|
||||||
|
7 20 44 95 205 420 797 1413 2418 4193 7728 15447 32933 72430 159738 347326 738365 1529174 3081576 6042235 11533609
|
||||||
|
26 39 57 85 129 200 336 656 1465 3434 7888 17274 36026 72463 143365 285005 578508 1204697 2555819 5451107 11533191
|
||||||
|
13 23 46 100 220 466 952 1924 3923 8072 16530 33168 64554 121421 221041 391634 681829 1182870 2081976 3788119 7217192
|
||||||
|
8 11 23 55 118 223 381 603 900 1283 1763 2351 3058 3895 4873 6003 7296 8763 10415 12263 14318
|
||||||
|
11 10 8 11 38 144 467 1318 3345 7830 17249 36378 74510 149815 297604 585376 1139263 2189254 4145086 7722105 14148550
|
||||||
|
14 31 65 122 215 371 647 1163 2167 4173 8268 16793 34833 73459 156777 337172 727776 1569946 3369277 7160753 15008435
|
||||||
|
3 -1 -3 7 44 140 368 882 1988 4274 8838 17656 34129 63877 116032 205914 361679 641582 1177435 2278540 4667900
|
||||||
|
22 36 50 64 78 92 106 120 134 148 162 176 190 204 218 232 246 260 274 288 302
|
||||||
|
21 41 69 102 149 248 496 1113 2570 5824 12727 26725 54076 106085 203462 385178 726643 1376443 2628377 5057688 9769271
|
||||||
|
5 6 22 82 242 602 1340 2789 5609 11145 22109 43772 85890 165603 311535 569326 1009005 1735416 2905408 4761994 7710738
|
||||||
|
-4 -1 11 43 116 278 635 1401 2989 6204 12670 25736 52271 105985 213212 422472 819602 1550821 2856781 5121465 8940734
|
||||||
|
1 17 53 124 251 466 819 1396 2371 4129 7511 14246 27649 53678 102457 190386 342973 598537 1012945 1665560 2666591
|
||||||
|
5 3 7 34 110 265 529 928 1485 2248 3394 5503 10195 21572 49525 117419 279897 663345 1555197 3594368 8162992
|
||||||
|
-3 0 9 44 154 430 1025 2202 4457 8817 17521 35497 73406 153605 321269 664205 1346701 2665206 5136873 9636170 17600042
|
||||||
|
26 36 40 34 26 45 141 382 865 1779 3612 7712 17628 42003 100292 233247 520944 1112098 2269468 4437210 8336970
|
||||||
|
11 22 48 104 213 415 797 1559 3131 6356 12754 24882 46805 84693 147559 248153 404027 638786 983540 1478572 2175237
|
||||||
|
3 -2 2 27 85 187 342 556 831 1164 1546 1961 2385 2785 3118 3330 3355 3114 2514 1447 -211
|
||||||
|
7 25 46 76 146 338 823 1924 4245 8950 18334 36901 73252 143189 274559 514495 939859 1671855 2895958 4888498 8051446
|
||||||
|
11 23 43 88 196 447 998 2154 4523 9340 19093 38643 77100 150798 287804 534499 964883 1693381 2892063 4813338 7819340
|
||||||
|
28 43 55 67 91 152 298 618 1281 2635 5444 11390 24026 50442 104017 208809 406434 766779 1404685 2505957 4367877
|
||||||
|
16 20 32 73 188 451 975 1947 3724 7055 13547 26593 53172 107293 216507 434016 860656 1683594 3242022 6134261 11384820
|
||||||
|
0 9 27 51 91 193 474 1179 2781 6159 12904 25827 49806 93284 171184 311119 567389 1053195 2014554 3997163 8214564
|
||||||
|
9 4 -4 -15 -28 -43 -55 -35 106 576 1795 4541 10179 21017 40850 75773 135367 234388 395118 650569 1048766
|
||||||
|
12 16 12 -1 -12 20 195 716 1960 4606 9889 20130 39850 78077 153037 301569 597876 1190624 2375630 4736161 9408360
|
||||||
|
17 32 55 86 125 172 227 290 361 440 527 622 725 836 955 1082 1217 1360 1511 1670 1837
|
||||||
|
11 32 76 159 308 575 1062 1968 3678 6923 13049 24442 45165 81872 145073 250833 422997 696042 1118666 1758233 2706202
|
||||||
|
24 29 36 62 142 335 742 1545 3076 5935 11208 20908 38898 72785 137634 262883 504592 966185 1832204 3421354 6267350
|
||||||
|
24 40 70 124 206 308 399 407 207 -337 -1167 -1462 1623 15403 55992 155459 373042 811978 1643872 3142928 5732796
|
||||||
|
7 19 38 66 100 127 119 28 -219 -725 -1628 -3106 -5382 -8729 -13475 -20008 -28781 -40317 -55214 -74150 -97888
|
||||||
|
11 16 21 41 118 330 795 1665 3115 5354 8722 13992 23069 40361 75173 145540 284055 546816 1028571 1892639 3437572
|
||||||
|
3 3 -2 -12 -27 -47 -72 -102 -137 -177 -222 -272 -327 -387 -452 -522 -597 -677 -762 -852 -947
|
||||||
|
4 -3 -11 -4 45 183 495 1134 2380 4781 9514 19292 40529 88215 196295 438677 969908 2100949 4435671 9109592 18196677
|
||||||
|
16 23 43 83 144 225 340 564 1146 2762 7029 17462 41130 91354 191890 383153 731164 1340041 2369007 4055053 6742572
|
||||||
|
9 37 82 143 223 349 600 1135 2224 4314 8207 15490 29468 57117 113263 229863 476947 1009231 2166432 4680165 10082197
|
||||||
|
23 28 24 8 -13 -7 99 437 1237 2931 6400 13489 27984 57361 115840 229729 446943 854290 1609180 2997634 5538965
|
||||||
|
18 30 46 76 135 243 425 711 1136 1740 2568 3670 5101 6921 9195 11993 15390 19466 24306 30000 36643
|
||||||
|
-6 -3 6 20 44 109 307 843 2116 4861 10416 21237 41910 81180 156069 300223 580630 1130545 2213210 4343166 8513688
|
||||||
|
-2 10 33 60 92 154 317 735 1719 3884 8419 17551 35329 69021 131897 249438 474097 920744 1849917 3856561 8281901
|
||||||
|
9 34 84 174 323 554 894 1374 2029 2898 4024 5454 7239 9434 12098 15294 19089 23554 28764 34798 41739
|
||||||
|
14 32 61 103 160 234 327 441 578 740 929 1147 1396 1678 1995 2349 2742 3176 3653 4175 4744
|
||||||
|
1 12 37 94 219 471 941 1779 3279 6110 11868 24276 51611 111333 238484 500277 1020477 2018768 3872391 7210026 13051283
|
||||||
|
-7 -12 -14 -8 20 105 331 900 2294 5618 13252 29979 64789 133581 262991 495559 896407 1561528 2627678 4283714 6783026
|
||||||
|
11 9 21 68 173 357 638 1040 1619 2508 3970 6421 10335 15858 21823 23655 9363 -47589 -200285 -547702 -1264783
|
||||||
|
17 37 80 150 242 344 442 535 687 1172 2806 7616 20106 49634 114991 253483 539149 1118923 2282576 4593514 9124730
|
||||||
|
15 31 44 57 81 135 246 449 787 1311 2080 3161 4629 6567 9066 12225 16151 20959 26772 33721 41945
|
||||||
|
2 9 31 93 230 487 919 1591 2578 3965 5847 8329 11526 15563 20575 26707 34114 42961 53423 65685 79942
|
||||||
|
11 27 70 153 298 547 990 1825 3465 6707 12978 24673 45600 81547 140986 235929 382951 604395 929774 1397385 2056150
|
||||||
|
13 15 24 45 96 229 574 1420 3353 7486 15856 32157 63182 121779 233032 447242 866998 1702750 3384409 6779726 13609905
|
||||||
|
16 33 62 112 196 346 646 1291 2686 5616 11552 23221 45683 88364 168851 319849 601648 1123903 2082686 3821866 6932202
|
||||||
|
2 12 35 83 176 349 671 1291 2536 5091 10290 20539 39876 74648 134250 231825 384766 614790 947269 1409403 2026704
|
||||||
|
18 36 63 104 176 311 572 1103 2243 4745 10154 21413 43783 86182 163069 297022 522184 888778 1468921 2363998 3713890
|
||||||
|
10 13 11 4 6 60 256 752 1798 3763 7165 12704 21298 34122 52650 78700 114482 162649 226351 309292 415790
|
||||||
|
2 5 13 46 139 350 779 1613 3219 6320 12325 23978 46703 91450 180668 360614 726382 1472666 2997362 6114810 12496419
|
||||||
|
5 3 -7 -16 -4 62 236 614 1396 3052 6707 14932 33227 72632 154177 316480 629191 1218157 2315097 4358776 8202246
|
||||||
|
17 27 34 35 23 -9 -47 4 448 2037 6408 16914 40280 89988 193197 404630 833640 1695246 3403399 6737208 13132694
|
||||||
|
19 26 41 72 124 210 370 696 1360 2641 4946 8819 14931 24043 36933 54277 76473 103396 134071 166250 195878
|
||||||
|
20 40 80 161 326 665 1364 2797 5693 11429 22534 43559 82610 154115 283904 518588 942764 1710019 3097257 5596451 10062858
|
||||||
|
9 3 -9 -32 -60 -50 125 769 2548 6845 16420 36621 77610 158483 314918 613299 1176493 2230289 4186508 7792707 14407912
|
||||||
|
21 27 27 18 0 -17 -3 105 419 1119 2475 4872 8838 15075 24493 38247 57777 84851 121611 170622 234924
|
||||||
|
-1 14 56 151 337 672 1249 2217 3807 6362 10370 16499 25633 38908 57747 83893 119439 166854 229004 309167 411041
|
||||||
|
-4 8 34 72 119 171 223 269 302 314 296 238 129 -43 -291 -629 -1072 -1636 -2338 -3196 -4229
|
||||||
|
3 14 39 86 168 306 546 999 1920 3868 8040 16959 35853 75373 156928 323138 658121 1326054 2642273 5199676 10084758
|
||||||
|
17 29 40 59 116 282 693 1585 3355 6669 12642 23117 41070 71166 120487 199447 322901 511445 792892 1203895 1791672
|
||||||
|
-4 -5 -6 -1 37 176 562 1488 3524 7755 16191 32431 62700 117479 214198 382001 670632 1167335 2028724 3539411 6216491
|
||||||
|
-4 -7 -10 -13 -16 -19 -22 -25 -28 -31 -34 -37 -40 -43 -46 -49 -52 -55 -58 -61 -64
|
||||||
|
7 34 90 185 334 580 1028 1886 3516 6512 11838 21069 36776 63087 106474 176971 290626 475802 790737 1371275 2553159
|
||||||
|
3 10 24 47 81 128 190 269 367 486 628 795 989 1212 1466 1753 2075 2434 2832 3271 3753
|
||||||
|
-4 -4 2 23 83 237 596 1361 2866 5630 10418 18311 30785 49799 77892 118289 175016 253024 358322 498119 680975
|
||||||
|
1 15 40 90 198 421 845 1590 2815 4723 7566 11650 17340 25065 35323 48686 65805 87415 114340 147498 187906
|
||||||
|
1 7 20 34 47 84 234 705 1910 4608 10140 20830 40680 76597 140576 253559 452135 799885 1406060 2455466 4254981
|
||||||
|
8 31 64 116 217 422 807 1458 2462 3920 6016 9193 14507 24253 42983 79065 146964 270461 487064 853906 1455469
|
||||||
11
day09/part1.py
Normal file
11
day09/part1.py
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
from math import comb
|
||||||
|
|
||||||
|
lines = (x.strip() for x in open("input.txt"))
|
||||||
|
result = 0
|
||||||
|
|
||||||
|
for line in lines:
|
||||||
|
numbers = [int(x) for x in line.split(" ")]
|
||||||
|
result += sum(((idx+len(numbers))%2*2-1) * comb(len(numbers), idx) * val for idx, val in enumerate(numbers))
|
||||||
|
|
||||||
|
print(result)
|
||||||
11
day09/part2.py
Normal file
11
day09/part2.py
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
from math import comb
|
||||||
|
|
||||||
|
lines = (x.strip() for x in open("input.txt"))
|
||||||
|
result = 0
|
||||||
|
|
||||||
|
for line in lines:
|
||||||
|
numbers = [int(x) for x in line.split(" ")]
|
||||||
|
result += sum((idx%2*-2+1) * comb(len(numbers), idx+1) * val for idx, val in enumerate(numbers))
|
||||||
|
|
||||||
|
print(result)
|
||||||
18
day09/part3.py
Normal file
18
day09/part3.py
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
from math import comb
|
||||||
|
from tqdm import tqdm
|
||||||
|
|
||||||
|
lines = (x.strip() for x in open("input.txt"))
|
||||||
|
result = 0
|
||||||
|
|
||||||
|
for line in tqdm(lines, total=200):
|
||||||
|
numbers = [int(x) for x in line.split(" ")]
|
||||||
|
combinations = [((idx+len(numbers))%2*2-1) * comb(len(numbers), idx) for idx in range(len(numbers))]
|
||||||
|
for _ in range(365*5):
|
||||||
|
numbers.append(sum(factor*val for factor, val in zip(combinations, numbers)))
|
||||||
|
combinations.append(-1)
|
||||||
|
combinations = [(combinations[i-1] if i > 0 else 0)-combinations[i] for i in range(len(combinations))]
|
||||||
|
result += numbers[-1]
|
||||||
|
|
||||||
|
print(result)
|
||||||
|
print(result == 209183938389133193643668550962121882909751535)
|
||||||
Reference in New Issue
Block a user