aoc
This commit is contained in:
parent
934917a7b3
commit
8f265f4169
33 changed files with 10314 additions and 0 deletions
1
aoc2020/.gitignore
vendored
Normal file
1
aoc2020/.gitignore
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
/p15
|
16
aoc2020/1.py
Normal file
16
aoc2020/1.py
Normal file
|
@ -0,0 +1,16 @@
|
|||
#!/bin/bash
|
||||
data = []
|
||||
with open("1.txt") as f:
|
||||
for line in f:
|
||||
data.append(int(line))
|
||||
|
||||
for i in data:
|
||||
for j in data:
|
||||
if i != j and i + j == 2020:
|
||||
print(i * j)
|
||||
|
||||
for i in range(len(data)):
|
||||
for j in range(i, len(data)):
|
||||
for k in range(j, len(data)):
|
||||
if data[i] + data[j] + data[k] == 2020:
|
||||
print(data[i] * data[j] * data[k])
|
200
aoc2020/1.txt
Normal file
200
aoc2020/1.txt
Normal file
|
@ -0,0 +1,200 @@
|
|||
1934
|
||||
1702
|
||||
1571
|
||||
1737
|
||||
1977
|
||||
1531
|
||||
1428
|
||||
1695
|
||||
1794
|
||||
1101
|
||||
13
|
||||
1164
|
||||
1235
|
||||
1289
|
||||
1736
|
||||
1814
|
||||
1363
|
||||
1147
|
||||
1111
|
||||
1431
|
||||
1765
|
||||
1515
|
||||
1184
|
||||
1036
|
||||
1803
|
||||
1791
|
||||
1638
|
||||
1809
|
||||
1283
|
||||
1980
|
||||
1854
|
||||
1878
|
||||
1574
|
||||
1352
|
||||
1151
|
||||
730
|
||||
1581
|
||||
1990
|
||||
1919
|
||||
2003
|
||||
1538
|
||||
1663
|
||||
1735
|
||||
1772
|
||||
1830
|
||||
1152
|
||||
1022
|
||||
1774
|
||||
1544
|
||||
1551
|
||||
1835
|
||||
1383
|
||||
1614
|
||||
1396
|
||||
1715
|
||||
1530
|
||||
295
|
||||
1208
|
||||
1978
|
||||
1104
|
||||
1691
|
||||
1176
|
||||
1183
|
||||
1909
|
||||
1192
|
||||
1535
|
||||
1924
|
||||
1268
|
||||
1969
|
||||
1954
|
||||
1760
|
||||
1077
|
||||
1734
|
||||
1371
|
||||
1676
|
||||
1933
|
||||
1400
|
||||
1928
|
||||
1982
|
||||
1541
|
||||
1106
|
||||
1248
|
||||
1346
|
||||
1782
|
||||
1142
|
||||
1849
|
||||
1798
|
||||
1362
|
||||
1379
|
||||
1886
|
||||
1265
|
||||
1226
|
||||
1751
|
||||
1575
|
||||
1027
|
||||
1710
|
||||
1601
|
||||
1205
|
||||
1922
|
||||
1452
|
||||
1206
|
||||
1263
|
||||
2000
|
||||
1957
|
||||
1951
|
||||
1834
|
||||
1533
|
||||
1149
|
||||
1245
|
||||
1564
|
||||
1182
|
||||
1237
|
||||
1013
|
||||
1254
|
||||
1895
|
||||
1504
|
||||
1480
|
||||
1556
|
||||
1821
|
||||
1589
|
||||
1864
|
||||
1573
|
||||
1698
|
||||
1927
|
||||
1434
|
||||
516
|
||||
1722
|
||||
1360
|
||||
1940
|
||||
1212
|
||||
1329
|
||||
1675
|
||||
1812
|
||||
1917
|
||||
1302
|
||||
1604
|
||||
1336
|
||||
1233
|
||||
1405
|
||||
1179
|
||||
1169
|
||||
1081
|
||||
1941
|
||||
1553
|
||||
1236
|
||||
1824
|
||||
1923
|
||||
1938
|
||||
1475
|
||||
1446
|
||||
1545
|
||||
1853
|
||||
1664
|
||||
317
|
||||
1489
|
||||
1884
|
||||
1743
|
||||
1621
|
||||
1128
|
||||
1474
|
||||
1505
|
||||
394
|
||||
1387
|
||||
1509
|
||||
1627
|
||||
1914
|
||||
1913
|
||||
1949
|
||||
1843
|
||||
1847
|
||||
1882
|
||||
1486
|
||||
1082
|
||||
1802
|
||||
1645
|
||||
1690
|
||||
1629
|
||||
1377
|
||||
2004
|
||||
1044
|
||||
1191
|
||||
1014
|
||||
1857
|
||||
1813
|
||||
1572
|
||||
1055
|
||||
1002
|
||||
1721
|
||||
1273
|
||||
1417
|
||||
1968
|
||||
1888
|
||||
1863
|
||||
1278
|
||||
1141
|
||||
1964
|
||||
1259
|
||||
1823
|
||||
1181
|
||||
1779
|
46
aoc2020/14.hs
Normal file
46
aoc2020/14.hs
Normal file
|
@ -0,0 +1,46 @@
|
|||
import Data.Bits
|
||||
import Data.Int
|
||||
import Data.List
|
||||
import Debug.Trace
|
||||
import Data.List.Split
|
||||
import Data.Maybe
|
||||
import qualified Data.Map.Strict as Map
|
||||
|
||||
type State = (Int64, [Int], Map.Map Int64 Int64)
|
||||
|
||||
parseMask :: (Int64, [Int]) -> (Int, Char) -> (Int64, [Int])
|
||||
parseMask (oMask, flucBits) (nth, ch) =
|
||||
let oMask2 = if ch == '1' then oMask .|. (shift 1 nth) else oMask
|
||||
flucBits2 = if ch == 'X' then nth : flucBits else flucBits in
|
||||
(oMask2, flucBits2)
|
||||
|
||||
applyMask :: Bits a => a -> (Int, Int) -> a
|
||||
applyMask n (i, c) = if c == 0 then clearBit n i else setBit n i
|
||||
|
||||
nextState :: State -> String -> State
|
||||
nextState (oMask, flucBits, intMap) origLine =
|
||||
if isPrefixOf "mask" origLine then
|
||||
let line = fromJust $ stripPrefix "mask = " origLine in
|
||||
let len = length line - 1 in
|
||||
let enumLine = zip [len, len-1..0] line in
|
||||
let (oMask, flucBits) = foldl parseMask (0, []) $ enumLine in
|
||||
(oMask, flucBits, intMap)
|
||||
else
|
||||
let line = fromJust $ stripPrefix "mem[" origLine in
|
||||
let [addr, value] = map read $ splitOn "] = " line in
|
||||
let flucIter = sequence $ take (length flucBits) $ repeat [0, 1] in
|
||||
let enumBits lines = zip flucBits lines in
|
||||
let f = foldl applyMask (addr .|. oMask) . enumBits in
|
||||
let addrs = map f flucIter in
|
||||
let intMap2 = foldl (\acc el -> Map.insert el value acc) intMap addrs in
|
||||
(oMask, flucBits, intMap2)
|
||||
|
||||
|
||||
solve2 :: [String] -> Int64
|
||||
solve2 = sumElements . foldl nextState (0, [], Map.empty)
|
||||
where sumElements (_, _, map) = Map.foldl (+) 0 map
|
||||
|
||||
main :: IO ()
|
||||
main = do
|
||||
l <- lines <$> readFile "14.txt"
|
||||
print $ solve2 l
|
592
aoc2020/14.txt
Normal file
592
aoc2020/14.txt
Normal file
|
@ -0,0 +1,592 @@
|
|||
mask = 100X100X101011111X100000100X11010011
|
||||
mem[33323] = 349380
|
||||
mem[52742] = 116688965
|
||||
mem[4113] = 11499
|
||||
mem[15819] = 313303
|
||||
mem[23239] = 755579063
|
||||
mask = X00X10X1X010110110111X00010X100X000X
|
||||
mem[49207] = 466621685
|
||||
mem[34069] = 6874604
|
||||
mask = 1001100XX00011110110100XX0110000001X
|
||||
mem[61278] = 56361674
|
||||
mem[51360] = 61871432
|
||||
mem[31903] = 45067
|
||||
mask = 100X100XX0101X11X1X00X00001001X101X0
|
||||
mem[22981] = 144008
|
||||
mem[12013] = 49165315
|
||||
mem[54643] = 50677
|
||||
mem[59166] = 678129
|
||||
mem[64022] = 27522
|
||||
mask = 100110X0001X11011000101X1000001X00X0
|
||||
mem[32693] = 425145
|
||||
mem[11437] = 236593490
|
||||
mem[16078] = 227582
|
||||
mem[35266] = 197465438
|
||||
mem[39279] = 127942
|
||||
mask = 10101000X0X00001X1001000010100111X00
|
||||
mem[49794] = 2082
|
||||
mem[60407] = 2129
|
||||
mem[33300] = 921
|
||||
mem[18582] = 62106545
|
||||
mem[32160] = 843912
|
||||
mem[36917] = 7740
|
||||
mem[1836] = 54721591
|
||||
mask = 100010X1X0X011X1101XX00001X01000X10X
|
||||
mem[8385] = 1381
|
||||
mem[38022] = 2501412
|
||||
mem[34713] = 3648024
|
||||
mem[33245] = 1178087
|
||||
mem[22176] = 263
|
||||
mem[20535] = 1289
|
||||
mem[2092] = 88590569
|
||||
mask = X001100X00X0X01X0X100X100010110XX101
|
||||
mem[65061] = 2768
|
||||
mem[56375] = 6734
|
||||
mem[18070] = 20571066
|
||||
mem[61511] = 403157281
|
||||
mem[4164] = 179682
|
||||
mem[11801] = 5501
|
||||
mem[22339] = 14414879
|
||||
mask = X0011000001X1001X0100111110X00110111
|
||||
mem[3844] = 1046
|
||||
mem[33741] = 109390
|
||||
mem[54311] = 94183595
|
||||
mem[48744] = 112575
|
||||
mem[29663] = 2042
|
||||
mask = X00X100000101001101001001X00001000X1
|
||||
mem[25325] = 177269
|
||||
mem[919] = 50779835
|
||||
mem[52113] = 2386630
|
||||
mem[60154] = 29645195
|
||||
mem[24761] = 8101
|
||||
mask = X101X000X01011011010X100001101110X01
|
||||
mem[5169] = 2865
|
||||
mem[55126] = 50829
|
||||
mem[60154] = 124556261
|
||||
mem[48753] = 377574
|
||||
mem[48662] = 9144531
|
||||
mask = 10011X00001010011010000101110XX0X00X
|
||||
mem[41623] = 632353121
|
||||
mem[10365] = 70888870
|
||||
mem[59458] = 849
|
||||
mem[18992] = 486294339
|
||||
mask = X00X100X011011111100X00001001010100X
|
||||
mem[42046] = 518245944
|
||||
mem[4654] = 39071
|
||||
mem[46109] = 1540
|
||||
mem[3245] = 822
|
||||
mem[25937] = 257692
|
||||
mem[19118] = 6601278
|
||||
mask = 1001001XXX100XXX101XX0001010001000X0
|
||||
mem[34356] = 55967
|
||||
mem[52601] = 522574
|
||||
mem[31903] = 7669828
|
||||
mem[36165] = 10552
|
||||
mask = 110X101X00X0111111XX001X0001000XX10X
|
||||
mem[42649] = 1534730
|
||||
mem[8324] = 467628
|
||||
mem[9447] = 3054
|
||||
mem[41788] = 28205
|
||||
mem[9353] = 14315559
|
||||
mask = 1X01X01100111111X101000000X100100000
|
||||
mem[270] = 3208
|
||||
mem[20373] = 186089492
|
||||
mem[43940] = 449607191
|
||||
mem[63389] = 674
|
||||
mem[437] = 6933780
|
||||
mask = 1001X00001X01X0X101101X0010X00110110
|
||||
mem[22829] = 3301
|
||||
mem[59260] = 6763
|
||||
mem[22305] = 203360
|
||||
mask = 10011110101010X010XX011X0010001XX000
|
||||
mem[55041] = 6199
|
||||
mem[55452] = 151
|
||||
mem[2746] = 464657
|
||||
mask = 1001000000X0X10110X01101X00100111000
|
||||
mem[54354] = 666913
|
||||
mem[44827] = 214920
|
||||
mem[44621] = 13259544
|
||||
mem[29462] = 14725
|
||||
mem[27633] = 284739975
|
||||
mem[63195] = 11668372
|
||||
mask = 10X010X10100X111001X101010101X11100X
|
||||
mem[21667] = 426958
|
||||
mem[55530] = 91533
|
||||
mem[10365] = 493
|
||||
mem[51246] = 513589450
|
||||
mem[44622] = 1773
|
||||
mem[4113] = 401
|
||||
mask = 100X1000001011XXX0100XXX100010X10X00
|
||||
mem[60407] = 869913
|
||||
mem[10365] = 59083
|
||||
mem[18321] = 3019
|
||||
mem[65061] = 10794134
|
||||
mem[62827] = 2777572
|
||||
mem[20373] = 23798334
|
||||
mask = 1000X10011X010011X10X0000101X0100001
|
||||
mem[17936] = 4347
|
||||
mem[38270] = 611
|
||||
mem[7408] = 2854792
|
||||
mem[2612] = 604172
|
||||
mem[24287] = 418220
|
||||
mem[27110] = 31440
|
||||
mem[64742] = 1872667
|
||||
mask = 10X110000010100110X001X01X1000000111
|
||||
mem[30518] = 13431
|
||||
mem[64496] = 204238
|
||||
mem[62259] = 1191
|
||||
mem[17457] = 3652
|
||||
mask = 100X1X0XX1101XX11010X000X01010010011
|
||||
mem[25325] = 67829
|
||||
mem[4021] = 8039
|
||||
mask = 1XXXXX0X0010110X11100111001111101110
|
||||
mem[34600] = 4128134
|
||||
mem[47565] = 28022073
|
||||
mask = X0X110000XX010X10010X0X111X111010101
|
||||
mem[64746] = 17532220
|
||||
mem[55786] = 109034
|
||||
mem[12715] = 185475
|
||||
mask = 1001110X011010111010X1010010100XX100
|
||||
mem[28923] = 1444
|
||||
mem[7508] = 41968
|
||||
mem[39856] = 447
|
||||
mem[19698] = 4420683
|
||||
mem[60924] = 7222
|
||||
mem[8056] = 225410214
|
||||
mask = 100X10X1X0X011X10110X01X011000X10X00
|
||||
mem[58206] = 585282
|
||||
mem[10984] = 105158307
|
||||
mem[31562] = 526874
|
||||
mem[60154] = 107013
|
||||
mem[4409] = 4126230
|
||||
mask = 1010100010X0XX0111X00X00011X000X0XX0
|
||||
mem[7122] = 428629
|
||||
mem[29394] = 262029322
|
||||
mem[33832] = 6067254
|
||||
mask = 0001100XXX0010X001100010X000110001X1
|
||||
mem[1975] = 32392
|
||||
mem[14891] = 9350
|
||||
mem[19905] = 28213400
|
||||
mem[11981] = 132973999
|
||||
mem[49582] = 4347
|
||||
mem[64106] = 235564
|
||||
mem[9648] = 1440
|
||||
mask = 000110010011XXXX0X1001010001X00X0100
|
||||
mem[18992] = 628
|
||||
mem[37263] = 1031
|
||||
mem[4387] = 1442306
|
||||
mem[2471] = 1123350
|
||||
mem[1493] = 88891215
|
||||
mem[22500] = 3553
|
||||
mem[6845] = 26007
|
||||
mask = 10011X00011011X1101X00X001X1X001X111
|
||||
mem[49101] = 13289
|
||||
mem[32] = 391365
|
||||
mem[31906] = 79
|
||||
mem[48744] = 71043
|
||||
mask = 1001X0X00010100110X001011001101X01X0
|
||||
mem[25999] = 2473051
|
||||
mem[36408] = 56819077
|
||||
mem[46656] = 2074748
|
||||
mem[10871] = 8606
|
||||
mem[7122] = 2053
|
||||
mem[59403] = 5442
|
||||
mask = 1XX0X01X100X11111010X000X00X000101X0
|
||||
mem[1160] = 280063168
|
||||
mem[20571] = 19030
|
||||
mem[23225] = 51089295
|
||||
mem[40992] = 17475
|
||||
mem[63413] = 1144
|
||||
mem[19458] = 284777610
|
||||
mem[21502] = 10410
|
||||
mask = 100X100X00101X0100X0X0X11100111XX11X
|
||||
mem[33860] = 160
|
||||
mem[37007] = 56420
|
||||
mem[55140] = 490726
|
||||
mem[47752] = 521745
|
||||
mem[55594] = 336661995
|
||||
mem[44008] = 265991679
|
||||
mask = 1001100001X010011100100X01X0X011111X
|
||||
mem[1289] = 55191
|
||||
mem[53058] = 23079796
|
||||
mem[25362] = 57315626
|
||||
mem[8895] = 35287816
|
||||
mask = 0001100100XX00100X1X0X00XX00XX000110
|
||||
mem[12568] = 136661
|
||||
mem[9931] = 303487
|
||||
mem[38781] = 91532
|
||||
mem[25506] = 950257996
|
||||
mem[3694] = 6225663
|
||||
mem[6631] = 62710499
|
||||
mem[3205] = 7586715
|
||||
mask = X0001000001X111110100000X0110001000X
|
||||
mem[61696] = 34763
|
||||
mem[42583] = 2987088
|
||||
mem[8416] = 2293694
|
||||
mem[21503] = 8071
|
||||
mem[41788] = 950960
|
||||
mem[9648] = 23284946
|
||||
mask = 100010000010XX0XX01000000X011100X1X0
|
||||
mem[30270] = 421
|
||||
mem[52379] = 86815089
|
||||
mem[16627] = 3647190
|
||||
mem[36794] = 132421727
|
||||
mem[54580] = 248096
|
||||
mask = 10X1101000X01001X00111110101110001X0
|
||||
mem[48399] = 9196559
|
||||
mem[6869] = 32793911
|
||||
mem[20422] = 1560
|
||||
mem[12101] = 15618
|
||||
mem[25154] = 390003034
|
||||
mem[23791] = 229770864
|
||||
mem[49558] = 12206144
|
||||
mask = 100X10010X101XX1XXX000001X00101X1100
|
||||
mem[3205] = 110968351
|
||||
mem[65515] = 7362194
|
||||
mem[2197] = 52580964
|
||||
mem[13004] = 3723834
|
||||
mem[46931] = 24935229
|
||||
mem[919] = 6284
|
||||
mask = 10001X11100X1X1X10X111X100X0000010X1
|
||||
mem[30162] = 1665
|
||||
mem[35687] = 3554
|
||||
mem[3735] = 8003
|
||||
mem[18258] = 44276232
|
||||
mem[48625] = 401841687
|
||||
mem[62781] = 2814958
|
||||
mem[5302] = 175144514
|
||||
mask = 1001X0XX001X101110101000X11X00010X00
|
||||
mem[38152] = 42369373
|
||||
mem[36392] = 13302
|
||||
mem[13867] = 940605082
|
||||
mask = 10001100X11010X1101000X0X11100110011
|
||||
mem[63412] = 5289
|
||||
mem[788] = 6600
|
||||
mem[27915] = 254034
|
||||
mem[24347] = 16264001
|
||||
mem[52437] = 651358
|
||||
mask = 10011X0X0110X0X11X101100101100X11100
|
||||
mem[56524] = 1244173
|
||||
mem[64911] = 2124386
|
||||
mem[3815] = 107466
|
||||
mem[14375] = 6798
|
||||
mem[16285] = 66968238
|
||||
mem[7968] = 835823180
|
||||
mask = 10X110100X101XX110X11110XX0111001010
|
||||
mem[58730] = 132998954
|
||||
mem[8056] = 754181
|
||||
mem[39247] = 126
|
||||
mask = 1001X000001XX10110101X1110110X10101X
|
||||
mem[59028] = 10817
|
||||
mem[17977] = 61299509
|
||||
mask = 1X001100X1X0100110100000X111XXX001X0
|
||||
mem[2056] = 32701076
|
||||
mem[2071] = 2401082
|
||||
mem[9887] = 998417
|
||||
mask = 100110X11X101X1110X00100X0101111X0X1
|
||||
mem[33860] = 388064
|
||||
mem[59050] = 16623098
|
||||
mem[5188] = 319
|
||||
mem[37207] = 2470432
|
||||
mem[27333] = 2026
|
||||
mask = 1000X000001X1X0X00XXX00X100011X11010
|
||||
mem[24029] = 9105
|
||||
mem[14364] = 243545984
|
||||
mem[4113] = 3279
|
||||
mask = 1X0X1001X0101011110XX1000100X000X101
|
||||
mem[17781] = 509963835
|
||||
mem[37716] = 62611707
|
||||
mem[23997] = 1023138975
|
||||
mem[5927] = 32777
|
||||
mem[55304] = 264062857
|
||||
mask = 100110X001X01X01100011100X100110X11X
|
||||
mem[58338] = 741
|
||||
mem[34693] = 991498
|
||||
mem[32339] = 30979944
|
||||
mem[50216] = 66393532
|
||||
mem[29090] = 11574321
|
||||
mem[30824] = 15729
|
||||
mem[16868] = 23942
|
||||
mask = 1X0XX0010X0011110X101010111011111010
|
||||
mem[48969] = 3327849
|
||||
mem[52521] = 460105388
|
||||
mem[33860] = 422661865
|
||||
mem[44621] = 6715
|
||||
mem[27762] = 11952
|
||||
mem[34536] = 4064
|
||||
mask = 1001X001001X0011001000100110010001XX
|
||||
mem[195] = 487302
|
||||
mem[17992] = 889
|
||||
mem[11858] = 958195
|
||||
mem[11013] = 202443463
|
||||
mask = 1000101X100X1111011000X100110000X001
|
||||
mem[13097] = 3534
|
||||
mem[41292] = 85120
|
||||
mem[9497] = 154119
|
||||
mem[19610] = 5709354
|
||||
mem[34972] = 48311
|
||||
mem[50753] = 180578
|
||||
mem[35921] = 667946365
|
||||
mask = XX1010X00110X00111000XX00001000110X0
|
||||
mem[3712] = 2843518
|
||||
mem[34604] = 2965
|
||||
mem[54311] = 162583
|
||||
mask = 0001X0X00100100X001000001X1X10X01X10
|
||||
mem[49406] = 965493
|
||||
mem[59050] = 392048
|
||||
mem[3574] = 922708604
|
||||
mem[7419] = 33525859
|
||||
mem[1933] = 8
|
||||
mem[4367] = 11521
|
||||
mask = 1001X0X00X10X00X101X00001110X0100X00
|
||||
mem[29215] = 417522
|
||||
mem[56468] = 34229032
|
||||
mem[26868] = 552971
|
||||
mem[36368] = 420213
|
||||
mask = 100110X0X1101011101X01X01101101X001X
|
||||
mem[4913] = 455
|
||||
mem[3815] = 11211510
|
||||
mem[21545] = 1469
|
||||
mem[35762] = 1806
|
||||
mem[58825] = 3743
|
||||
mem[23225] = 474872535
|
||||
mem[53173] = 46538
|
||||
mask = 1XX0X00X0X101001001010100X0X01X00010
|
||||
mem[64106] = 98247289
|
||||
mem[13686] = 54961348
|
||||
mem[38944] = 462290318
|
||||
mem[53185] = 7075
|
||||
mem[30162] = 39454
|
||||
mem[14983] = 1010603
|
||||
mem[38339] = 970
|
||||
mask = X001100X010X111110001000001X01100110
|
||||
mem[12827] = 22328
|
||||
mem[18628] = 7082210
|
||||
mem[31013] = 20804915
|
||||
mem[13966] = 86
|
||||
mem[518] = 1757
|
||||
mask = X001100XX001001001110000000000XX1110
|
||||
mem[14375] = 8414661
|
||||
mem[1568] = 225486
|
||||
mem[25775] = 336197
|
||||
mask = 100110000X00100X100001100X111X100X01
|
||||
mem[2071] = 51386682
|
||||
mem[32897] = 162194
|
||||
mem[11308] = 1799417
|
||||
mem[20829] = 299249
|
||||
mask = 1X0010XXX0001111XX1100X001X1X0000101
|
||||
mem[29189] = 36530
|
||||
mem[657] = 114543286
|
||||
mem[9356] = 451
|
||||
mask = X000100000101X0110X0011XX10000110001
|
||||
mem[30577] = 117881
|
||||
mem[60874] = 19567558
|
||||
mem[10363] = 13493
|
||||
mem[5690] = 382
|
||||
mem[61059] = 4757304
|
||||
mem[36165] = 95983791
|
||||
mask = 100X00X00010100X1010000X101000X10000
|
||||
mem[33324] = 39476477
|
||||
mem[34713] = 7398
|
||||
mem[46214] = 98709
|
||||
mem[35856] = 1020446010
|
||||
mask = 10X01X000010000X11100101011X001X0100
|
||||
mem[65061] = 61054
|
||||
mem[54052] = 92826
|
||||
mem[35603] = 58759
|
||||
mem[58037] = 40910
|
||||
mem[62217] = 45701380
|
||||
mask = 1X011000001011011010XX00X10X0X010001
|
||||
mem[15920] = 5645
|
||||
mem[28828] = 265910022
|
||||
mem[29437] = 5544
|
||||
mem[56112] = 637
|
||||
mem[45033] = 36063036
|
||||
mem[12783] = 13776458
|
||||
mask = 10011011X010100110XX100100XX11011X00
|
||||
mem[518] = 25998191
|
||||
mem[13053] = 7866406
|
||||
mem[38152] = 3208
|
||||
mem[18730] = 711
|
||||
mask = 10X11000001XX1X000100X11101XX1X10111
|
||||
mem[47121] = 11272115
|
||||
mem[43618] = 27683
|
||||
mask = 100X1101X0101001100X010000X11001X100
|
||||
mem[21702] = 34688805
|
||||
mem[43624] = 3956780
|
||||
mem[24476] = 17239393
|
||||
mem[23321] = 25573609
|
||||
mem[15163] = 1713
|
||||
mem[65338] = 27386792
|
||||
mask = 10011010010X10011X0011110XX100001111
|
||||
mem[53501] = 16700270
|
||||
mem[28069] = 20683243
|
||||
mem[33593] = 114830
|
||||
mem[9962] = 403282549
|
||||
mem[54061] = 2336
|
||||
mem[46656] = 7039
|
||||
mem[58616] = 181
|
||||
mask = 10001X11001011XX101X0100010010101100
|
||||
mem[8738] = 234383093
|
||||
mem[11512] = 1792627
|
||||
mem[54326] = 1574223
|
||||
mask = 10011X101X10100XX000X10010X01X01100X
|
||||
mem[51382] = 17879
|
||||
mem[44905] = 783
|
||||
mem[57514] = 1018128542
|
||||
mem[18628] = 240492
|
||||
mem[2108] = 3429
|
||||
mem[2304] = 3748
|
||||
mask = 0X011001X0X000X000110100101000000000
|
||||
mem[4452] = 19437119
|
||||
mem[64742] = 179090
|
||||
mem[16430] = 486207
|
||||
mask = 1001X000111X1X1110110X011111100X0011
|
||||
mem[52004] = 41486
|
||||
mem[48779] = 83675
|
||||
mem[17861] = 48577395
|
||||
mem[39247] = 16952
|
||||
mem[8738] = 3981
|
||||
mem[32923] = 1168904
|
||||
mask = 10011001XX0011X11X0010X1010X10101000
|
||||
mem[33319] = 44401
|
||||
mem[4142] = 517003945
|
||||
mem[29189] = 415157
|
||||
mem[33358] = 1395165
|
||||
mask = 1001100X010010011XX00XXX1100101X0101
|
||||
mem[13618] = 246280673
|
||||
mem[58338] = 17884
|
||||
mem[10885] = 816
|
||||
mem[11277] = 24331199
|
||||
mem[17936] = 1616051
|
||||
mask = 1001100X01X01001X00011000110X0X001XX
|
||||
mem[58338] = 302363844
|
||||
mem[53596] = 175604903
|
||||
mem[56468] = 419729
|
||||
mem[27915] = 581
|
||||
mem[41501] = 69718
|
||||
mask = 100110000X1010110100X1X001X00X01001X
|
||||
mem[18333] = 15544
|
||||
mem[3929] = 2622169
|
||||
mem[37718] = 176413
|
||||
mem[27333] = 848
|
||||
mem[17456] = 1097
|
||||
mask = 100110101010X001X000X0001X00001011X0
|
||||
mem[53045] = 2356198
|
||||
mem[49908] = 1086
|
||||
mem[17019] = 7107107
|
||||
mem[12013] = 70971
|
||||
mem[7048] = 1585
|
||||
mem[3666] = 4937143
|
||||
mask = 10011XXXX01010011000010X1X11100XXX00
|
||||
mem[65524] = 4129175
|
||||
mem[5636] = 315661
|
||||
mem[39270] = 455882795
|
||||
mask = X1001100110010011010000001110X0X00XX
|
||||
mem[50481] = 26734
|
||||
mem[57708] = 199726127
|
||||
mem[20422] = 130991
|
||||
mem[13651] = 1094687
|
||||
mem[1292] = 60536
|
||||
mask = 110X1011001XX111110100X0000010X1X101
|
||||
mem[39644] = 14574
|
||||
mem[8596] = 30400
|
||||
mask = 1000101XX0X0X1110110111X110011X00110
|
||||
mem[919] = 32148
|
||||
mem[41] = 453324
|
||||
mem[36794] = 179133
|
||||
mem[2780] = 958033590
|
||||
mask = 100010X1X11011110010X01101101110X100
|
||||
mem[20035] = 1674335
|
||||
mem[18909] = 33271
|
||||
mem[21491] = 4013451
|
||||
mem[21792] = 78760
|
||||
mem[42156] = 980
|
||||
mem[3276] = 3971405
|
||||
mask = 10XX10000X10X00111X0XX00X0010011X100
|
||||
mem[36368] = 5097527
|
||||
mem[3099] = 104365
|
||||
mem[57092] = 74461253
|
||||
mem[46314] = 30483860
|
||||
mask = X000101X101011X10110XXX001X00X11X010
|
||||
mem[9948] = 43011947
|
||||
mem[53185] = 41588
|
||||
mem[25699] = 101124
|
||||
mem[60046] = 123243
|
||||
mem[23975] = 125991
|
||||
mask = 1X00100000X01X00101011100X1010000101
|
||||
mem[65101] = 504575
|
||||
mem[55313] = 14953613
|
||||
mem[42156] = 526
|
||||
mem[55573] = 1303957
|
||||
mem[53260] = 16252
|
||||
mem[48073] = 8667
|
||||
mask = 1001100100101X11110X0X0X0111X00001X0
|
||||
mem[10402] = 793546
|
||||
mem[45910] = 18
|
||||
mem[23627] = 72728
|
||||
mem[7408] = 16579752
|
||||
mem[22105] = 10576
|
||||
mem[61054] = 1160961
|
||||
mem[2989] = 149675383
|
||||
mask = 0001X001000000XX0111X110010001010110
|
||||
mem[15867] = 14
|
||||
mem[23379] = 10511918
|
||||
mem[4217] = 4840435
|
||||
mem[29978] = 11828937
|
||||
mem[28303] = 2358671
|
||||
mask = 10010010011X0XX11010X000110000110X00
|
||||
mem[11923] = 149358903
|
||||
mem[46246] = 3148
|
||||
mem[17596] = 9370
|
||||
mem[1540] = 12848
|
||||
mem[25775] = 29444
|
||||
mem[32564] = 64008
|
||||
mem[16097] = 641
|
||||
mask = 0X011001X010X010X0100X1X0X0X000111X1
|
||||
mem[45770] = 1008133
|
||||
mem[15551] = 3912928
|
||||
mem[53058] = 188856
|
||||
mem[44827] = 9036496
|
||||
mem[59530] = 20033543
|
||||
mask = 1001100X0XX01X0110X000XX010010XX1101
|
||||
mem[2056] = 737
|
||||
mem[34972] = 30655
|
||||
mem[50728] = 927954
|
||||
mask = 10001X0000X0X0010010101010X001100110
|
||||
mem[39247] = 425181
|
||||
mem[64200] = 13111811
|
||||
mem[8169] = 1250162
|
||||
mask = 100110000X10XXX11010X0001110X011XX00
|
||||
mem[62259] = 4350710
|
||||
mem[56112] = 42327
|
||||
mem[53173] = 2221557
|
||||
mem[36759] = 242686307
|
||||
mem[29077] = 1179326
|
||||
mem[2056] = 356
|
||||
mask = 10000000001XX000101000X0X11000X10110
|
||||
mem[18542] = 454113
|
||||
mem[44192] = 501708
|
||||
mem[54994] = 149470837
|
||||
mem[54260] = 582959
|
||||
mem[65424] = 295679271
|
||||
mem[36368] = 2002
|
||||
mem[16392] = 99
|
||||
mask = 10100001XX101001X0101100101101000XX0
|
||||
mem[17861] = 3340321
|
||||
mem[24705] = 4143350
|
||||
mem[38940] = 201585
|
||||
mem[35632] = 19204465
|
||||
mem[9443] = 5273035
|
||||
mask = 10X110010010100101000X00001010X0111X
|
||||
mem[2991] = 51624
|
||||
mem[56468] = 1603
|
||||
mem[35633] = 4068
|
||||
mask = 10011X01001010X10000X011000111101X11
|
||||
mem[58842] = 69158
|
||||
mem[43765] = 1624
|
||||
mem[24913] = 133864698
|
||||
mem[15015] = 247
|
||||
mem[10155] = 1064
|
||||
mem[33787] = 142284522
|
||||
mem[17457] = 15488682
|
38
aoc2020/15.hs
Normal file
38
aoc2020/15.hs
Normal file
|
@ -0,0 +1,38 @@
|
|||
import qualified Data.Map.Strict as Map
|
||||
import Data.Map.Strict (Map)
|
||||
import Debug.Trace
|
||||
import Control.Monad.State
|
||||
|
||||
-- 1st is turn number
|
||||
-- 2nd is map of spoken
|
||||
-- 3rd is next number to speak
|
||||
type S = (Int, Map Int Int, Int)
|
||||
|
||||
produceInitial lst =
|
||||
let len = length lst
|
||||
f acc (idx, el) = Map.insert el idx acc
|
||||
initMap = foldl f Map.empty $ zip [0..] lst
|
||||
in (len, initMap, 0)
|
||||
|
||||
speak :: Int -> State S Int
|
||||
speak n = do
|
||||
(turn, spoken, nextSpeak) <- get
|
||||
let lastSpoke = Map.lookup nextSpeak spoken
|
||||
let spoken2 = Map.insert nextSpeak turn spoken
|
||||
let nextSpeak2 = case lastSpoke of
|
||||
Nothing -> 0
|
||||
Just n -> turn - n
|
||||
let result = (turn + 1, spoken2, nextSpeak2)
|
||||
-- modify (\_ -> traceShow result result)
|
||||
modify (\_ -> result)
|
||||
return nextSpeak
|
||||
|
||||
speakStream lst = (++) lst $ flip evalState initial $ mapM speak [0..]
|
||||
where initial = produceInitial lst
|
||||
|
||||
actualInput = [5,1,9,18,13,8,0]
|
||||
exInput = [0,3,6]
|
||||
n = 30000000
|
||||
-- n = 2020
|
||||
|
||||
main = do print (speakStream actualInput !! (n-1))
|
35
aoc2020/15.py
Normal file
35
aoc2020/15.py
Normal file
|
@ -0,0 +1,35 @@
|
|||
ex=[0,3,6]
|
||||
|
||||
def iter(start):
|
||||
spoke=dict()
|
||||
lastSpokeD=dict()
|
||||
turn=0
|
||||
nextSpeak=None
|
||||
for i in start:
|
||||
turn+=1
|
||||
spoke[i]=turn
|
||||
yield i
|
||||
nextSpeak=0
|
||||
|
||||
while True:
|
||||
turn+=1
|
||||
yield nextSpeak
|
||||
lastSpoke=spoke.get(nextSpeak)
|
||||
spoke[nextSpeak]=turn
|
||||
|
||||
if lastSpoke is None:
|
||||
nextSpeak=0
|
||||
else:
|
||||
nextSpeak=turn-lastSpoke
|
||||
|
||||
if turn%3000000==0:
|
||||
print(f"turn {turn} of 30000000 ({100*turn/30000000.0}%)")
|
||||
|
||||
import itertools
|
||||
print(list(itertools.islice(iter(ex), 10)))
|
||||
|
||||
def nth(start, n):
|
||||
return next(x for i,x in enumerate(start) if i==n-1)
|
||||
|
||||
# print(nth(iter([0,3,6]), 30000000))
|
||||
print(nth(iter([5,1,9,18,13,8,0]), 30000000))
|
388
aoc2020/16.py
Normal file
388
aoc2020/16.py
Normal file
|
@ -0,0 +1,388 @@
|
|||
ex="""
|
||||
class: 1-3 or 5-7
|
||||
row: 6-11 or 33-44
|
||||
seat: 13-40 or 45-50
|
||||
|
||||
your ticket:
|
||||
7,1,14
|
||||
|
||||
nearby tickets:
|
||||
7,3,47
|
||||
40,4,50
|
||||
55,2,20
|
||||
38,6,12
|
||||
""".strip()
|
||||
|
||||
actual="""departure location: 26-404 or 427-951
|
||||
departure station: 43-307 or 325-967
|
||||
departure platform: 39-383 or 399-950
|
||||
departure track: 31-157 or 178-969
|
||||
departure date: 28-109 or 135-950
|
||||
departure time: 38-622 or 631-958
|
||||
arrival location: 35-61 or 69-957
|
||||
arrival station: 36-216 or 241-951
|
||||
arrival platform: 41-586 or 606-967
|
||||
arrival track: 47-573 or 586-951
|
||||
class: 31-439 or 445-957
|
||||
duration: 35-925 or 939-965
|
||||
price: 41-473 or 494-952
|
||||
route: 45-742 or 754-963
|
||||
row: 41-338 or 357-952
|
||||
seat: 45-848 or 873-968
|
||||
train: 37-183 or 197-952
|
||||
type: 46-509 or 522-974
|
||||
wagon: 32-69 or 81-967
|
||||
zone: 37-759 or 780-967
|
||||
|
||||
your ticket:
|
||||
103,197,83,101,109,181,61,157,199,137,97,179,151,89,211,59,139,149,53,107
|
||||
|
||||
nearby tickets:
|
||||
209,822,916,528,93,531,551,797,387,835,278,464,546,945,732,88,678,145,559,287
|
||||
361,364,272,676,683,606,911,903,890,600,784,669,894,428,741,92,735,276,142,836
|
||||
781,526,892,684,272,536,918,9,402,546,925,824,201,502,688,432,613,809,713,374
|
||||
524,557,363,240,554,371,58,801,96,156,449,454,573,903,365,833,632,258,785,941
|
||||
924,802,727,547,447,674,251,212,359,180,620,4,257,525,403,94,181,844,547,569
|
||||
107,673,817,281,543,800,59,557,739,570,891,216,149,105,728,649,86,336,464,933
|
||||
148,264,782,50,901,752,706,287,61,617,300,100,538,540,563,145,816,180,686,461
|
||||
781,256,535,203,24,213,804,817,145,304,924,895,890,794,199,739,734,200,400,899
|
||||
84,501,93,782,494,226,88,902,843,795,674,732,509,890,182,716,358,298,367,925
|
||||
331,82,617,102,684,545,296,878,409,887,820,181,182,875,242,907,294,428,787,714
|
||||
899,780,543,561,523,633,284,457,695,528,301,676,799,921,105,865,465,798,759,813
|
||||
203,614,843,657,791,669,453,541,854,845,209,841,806,292,105,338,694,259,698,248
|
||||
289,946,635,736,890,494,656,665,813,736,884,341,253,758,437,281,153,104,915,817
|
||||
662,897,901,104,283,731,56,655,730,204,345,542,381,641,201,297,375,806,524,565
|
||||
462,380,736,528,90,471,401,676,203,88,766,61,372,264,50,253,428,823,547,793
|
||||
381,108,787,569,711,737,879,569,803,483,277,684,463,908,526,820,368,282,366,92
|
||||
899,502,307,906,876,845,205,241,839,686,438,624,616,633,427,738,651,531,295,908
|
||||
690,638,275,216,94,5,608,141,611,615,808,247,470,292,634,829,503,833,278,505
|
||||
207,147,608,459,570,698,813,473,290,741,216,716,641,948,759,85,860,401,679,797
|
||||
241,666,345,243,51,670,83,680,842,152,251,571,279,527,635,833,549,140,906,542
|
||||
205,809,716,704,556,638,306,56,473,893,631,886,437,649,90,712,710,894,453,627
|
||||
566,61,545,208,523,550,822,700,204,57,744,947,82,555,91,613,252,377,365,820
|
||||
296,653,873,433,830,922,288,805,786,714,656,530,364,284,691,978,242,881,404,326
|
||||
553,643,614,815,448,533,902,507,324,380,879,255,898,682,876,738,713,642,665,447
|
||||
213,880,934,434,818,522,55,740,210,543,145,427,783,96,454,289,382,245,141,821
|
||||
810,910,647,935,468,52,721,330,457,509,103,890,293,280,612,642,683,669,787,281
|
||||
842,793,338,716,59,794,638,512,360,402,802,573,96,740,148,659,372,615,471,708
|
||||
334,608,522,553,137,138,277,870,305,529,85,383,149,657,95,637,270,431,179,681
|
||||
838,546,797,535,801,375,697,732,469,370,249,662,509,351,263,366,327,641,890,793
|
||||
571,651,661,456,697,706,831,464,639,731,363,533,702,498,296,635,379,924,328,110
|
||||
648,792,765,251,252,572,656,563,873,89,736,731,256,947,885,104,140,755,876,734
|
||||
546,642,781,697,923,394,711,358,255,246,793,532,566,268,526,783,708,830,819,568
|
||||
462,781,495,82,473,453,730,388,806,660,258,796,335,780,247,283,653,57,620,890
|
||||
652,245,136,795,281,464,662,250,730,101,684,2,273,379,96,783,738,543,255,811
|
||||
434,151,794,468,399,98,284,254,302,909,561,886,135,386,206,431,719,336,833,281
|
||||
567,276,378,731,726,342,612,908,650,432,501,689,641,274,140,58,470,212,815,250
|
||||
137,711,337,540,837,647,912,818,371,23,427,946,648,569,250,814,460,146,333,434
|
||||
727,654,328,148,337,648,659,848,284,378,103,851,568,473,633,784,298,758,819,941
|
||||
150,810,456,537,877,839,531,916,643,825,784,908,430,987,708,948,210,571,332,298
|
||||
98,399,106,462,528,554,151,98,439,806,505,874,757,695,333,391,648,700,619,689
|
||||
525,841,432,535,797,497,208,908,539,427,851,446,729,505,895,839,813,210,538,788
|
||||
155,149,716,606,82,903,453,274,299,607,795,292,548,533,227,148,527,99,586,713
|
||||
801,742,879,714,786,464,987,713,360,698,643,53,541,105,260,261,717,728,717,612
|
||||
105,57,90,815,939,908,92,940,620,62,529,831,261,873,694,719,94,470,50,465
|
||||
611,836,83,548,469,938,548,680,207,823,498,205,696,701,572,376,944,830,652,95
|
||||
466,719,335,434,93,883,449,314,739,649,433,290,742,901,735,472,338,337,198,376
|
||||
977,97,447,360,729,538,307,524,557,282,731,836,800,675,885,549,841,903,632,821
|
||||
259,699,94,261,667,586,524,180,808,469,576,672,681,947,697,917,804,468,370,435
|
||||
689,785,180,877,453,150,700,498,249,500,755,845,361,605,274,268,151,200,814,150
|
||||
823,920,736,64,826,157,636,831,496,297,893,689,278,915,899,837,568,465,404,202
|
||||
663,722,210,709,289,526,567,216,101,242,917,18,381,333,566,541,573,143,572,54
|
||||
734,616,621,704,736,583,437,684,501,657,565,643,641,96,200,258,463,561,563,640
|
||||
499,837,260,96,711,880,882,447,457,228,507,677,284,670,733,823,274,289,286,539
|
||||
636,571,905,137,452,718,379,811,249,69,411,823,268,401,874,87,69,921,828,271
|
||||
276,105,285,754,457,635,738,99,439,183,816,253,674,247,944,143,207,54,199,994
|
||||
709,430,371,901,895,486,896,374,724,703,617,328,559,692,899,379,306,296,242,567
|
||||
466,215,471,431,844,54,382,87,93,756,655,259,379,872,615,400,264,366,211,85
|
||||
788,688,148,807,144,374,360,270,460,672,52,391,534,888,437,363,796,197,280,471
|
||||
717,548,525,622,797,303,247,704,328,606,53,810,381,812,462,671,380,797,983,658
|
||||
204,725,99,945,912,831,759,812,757,141,159,816,245,57,827,663,472,430,59,798
|
||||
465,638,264,359,542,93,638,599,151,149,210,732,247,873,891,262,96,431,642,902
|
||||
89,558,716,291,466,242,507,359,884,16,374,358,813,808,371,818,254,922,722,798
|
||||
212,505,372,691,455,683,438,886,200,701,554,372,945,537,821,261,725,740,781,395
|
||||
653,907,672,473,338,362,109,939,254,157,382,365,670,572,706,160,903,656,56,894
|
||||
894,81,908,651,781,521,837,908,378,244,947,154,675,289,708,925,680,618,637,652
|
||||
305,657,439,117,678,287,430,632,199,840,297,920,890,829,609,645,291,286,667,922
|
||||
803,154,52,825,157,945,739,146,921,332,844,109,239,657,821,156,461,669,919,704
|
||||
211,506,826,282,213,278,795,208,363,258,277,109,531,60,590,822,697,646,359,898
|
||||
680,707,13,151,366,651,430,709,274,715,891,254,201,445,917,291,179,259,794,454
|
||||
606,458,104,457,648,281,359,538,136,139,900,369,833,614,272,197,838,567,678,597
|
||||
708,718,823,282,932,157,241,376,914,265,711,380,105,821,795,665,555,642,663,636
|
||||
632,909,307,612,463,740,380,700,782,834,296,202,457,778,93,295,672,615,557,683
|
||||
668,211,664,504,455,533,494,338,943,525,996,670,452,544,701,210,675,298,833,300
|
||||
280,643,824,549,681,241,526,282,627,566,271,469,155,99,466,460,51,305,434,137
|
||||
902,546,530,325,109,796,543,209,894,883,227,673,800,335,621,798,557,215,912,536
|
||||
696,640,712,615,473,412,294,279,268,302,552,635,401,722,55,925,737,84,368,151
|
||||
571,294,197,921,294,843,359,97,62,691,447,639,706,572,706,539,563,946,941,294
|
||||
689,374,785,401,496,360,817,698,218,758,924,831,89,562,755,248,564,302,301,732
|
||||
672,89,502,893,560,183,929,469,553,99,714,305,272,689,701,734,873,502,798,534
|
||||
102,197,528,332,643,468,635,53,690,287,383,682,591,338,258,891,664,798,741,299
|
||||
902,470,667,500,806,464,197,51,694,83,673,267,508,181,788,921,148,882,977,739
|
||||
940,891,818,883,672,855,759,401,828,335,692,651,377,182,828,759,693,215,179,139
|
||||
610,565,289,687,848,939,810,359,338,910,948,318,494,470,667,786,919,329,215,653
|
||||
371,949,271,207,294,289,337,329,365,216,688,180,525,243,684,404,102,403,236,60
|
||||
781,361,649,500,276,672,818,944,553,95,878,803,335,365,250,994,277,883,447,719
|
||||
502,839,382,374,895,377,910,292,876,701,144,929,198,684,463,827,103,542,93,692
|
||||
59,256,83,728,567,529,626,882,759,704,106,209,784,556,874,610,94,815,715,780
|
||||
283,399,359,701,244,735,845,453,557,549,893,758,636,685,657,990,146,842,400,244
|
||||
617,88,825,249,499,885,547,274,434,332,99,153,880,216,508,472,880,565,12,566
|
||||
875,737,610,447,917,91,500,561,619,461,301,256,928,718,659,108,910,892,254,614
|
||||
337,573,942,846,638,530,154,929,833,83,828,526,884,726,825,141,428,837,253,692
|
||||
54,20,363,216,496,325,306,671,921,525,714,304,87,638,277,663,703,180,530,669
|
||||
619,742,180,81,674,877,901,463,737,825,641,695,666,794,881,637,55,849,671,452
|
||||
90,614,277,136,646,375,318,99,145,810,814,817,807,197,802,435,741,679,145,87
|
||||
328,284,948,18,157,610,499,453,646,92,508,833,279,275,542,884,549,498,803,455
|
||||
721,651,253,368,387,182,915,404,818,141,659,821,91,654,293,544,739,685,782,428
|
||||
620,658,51,876,820,698,357,104,796,83,379,775,887,466,285,246,244,879,812,657
|
||||
949,278,157,156,498,377,908,555,494,374,920,797,95,840,502,127,151,838,381,848
|
||||
875,445,541,257,914,873,639,846,292,333,565,523,524,737,216,847,824,467,60,343
|
||||
501,60,616,942,338,783,453,235,242,689,81,91,685,435,918,265,647,757,839,689
|
||||
146,272,902,716,880,718,486,299,664,250,911,877,326,378,366,147,606,915,560,826
|
||||
661,882,285,400,448,683,402,834,678,752,718,632,876,802,259,794,705,326,943,647
|
||||
377,709,550,267,60,553,506,648,469,896,991,670,50,465,551,646,888,829,369,332
|
||||
989,806,884,373,809,656,298,215,156,522,645,468,55,499,816,881,249,833,756,808
|
||||
267,652,371,140,810,646,564,677,637,328,733,258,58,818,732,706,459,758,990,715
|
||||
670,373,880,697,819,74,451,612,837,297,561,887,914,657,844,242,60,541,501,95
|
||||
642,691,684,392,432,546,402,886,464,682,178,566,729,537,204,641,842,505,723,666
|
||||
792,542,218,268,247,898,182,428,944,453,796,450,914,552,909,535,97,922,718,698
|
||||
755,804,908,533,377,531,942,68,465,645,108,303,57,83,247,298,290,661,619,155
|
||||
346,302,383,828,268,365,378,817,289,299,287,922,373,618,372,257,563,946,586,522
|
||||
84,608,390,530,55,266,825,635,545,258,335,53,338,568,534,247,365,502,455,274
|
||||
253,889,246,499,250,459,211,894,683,268,734,526,675,321,257,642,550,692,839,298
|
||||
153,465,90,83,372,737,717,329,700,98,373,686,103,429,357,272,989,700,874,669
|
||||
846,683,673,781,692,823,177,273,660,792,563,672,737,675,146,507,198,507,694,562
|
||||
634,248,890,840,606,714,103,770,655,206,810,668,685,876,656,657,464,639,833,471
|
||||
791,294,693,81,201,758,386,822,757,565,734,457,741,717,264,733,247,264,243,883
|
||||
262,399,792,465,153,182,251,348,699,404,647,733,563,908,271,847,848,891,286,265
|
||||
889,471,500,261,462,659,216,711,347,246,925,913,826,530,608,366,755,651,815,670
|
||||
329,197,56,437,261,553,466,455,723,246,549,800,213,618,874,556,994,692,679,941
|
||||
807,54,285,265,904,757,784,787,610,699,258,460,852,874,97,464,532,797,915,500
|
||||
661,545,887,571,205,212,307,729,104,426,704,544,780,715,359,108,662,243,287,465
|
||||
916,140,692,532,695,891,369,275,551,500,516,198,684,215,832,713,648,502,876,831
|
||||
531,103,563,476,257,789,825,276,782,610,54,526,545,550,784,643,654,201,332,304
|
||||
373,244,333,505,803,456,368,878,98,546,565,2,924,702,278,704,681,916,435,373
|
||||
936,916,663,288,921,364,251,682,694,293,695,830,270,105,154,791,259,620,501,693
|
||||
695,940,93,724,82,178,689,106,732,296,381,281,694,367,699,831,788,700,865,252
|
||||
892,470,246,276,908,64,371,669,284,143,586,907,829,54,907,725,331,209,287,612
|
||||
280,889,977,505,206,782,887,948,699,88,904,875,465,503,149,500,259,399,569,294
|
||||
656,682,277,433,542,452,462,211,359,497,278,889,949,156,286,102,938,59,791,798
|
||||
912,909,294,541,202,335,428,563,55,798,93,197,795,740,636,919,814,364,651,237
|
||||
525,663,179,613,798,102,727,383,300,468,313,544,461,459,205,679,502,99,912,642
|
||||
336,643,283,143,636,203,561,289,670,138,429,839,472,672,351,812,107,399,893,400
|
||||
674,610,539,922,237,572,732,449,924,606,55,759,711,374,438,261,642,473,157,786
|
||||
718,338,496,247,662,757,337,528,168,399,622,609,208,910,675,949,700,914,729,85
|
||||
846,846,800,815,949,507,888,13,833,81,833,101,61,53,730,242,102,631,908,55
|
||||
844,371,81,3,825,844,183,614,742,280,569,848,561,207,535,946,523,399,571,806
|
||||
793,923,685,637,946,302,646,454,937,781,381,214,695,214,660,884,152,83,654,205
|
||||
634,895,738,632,522,648,875,713,946,251,180,299,100,784,296,289,11,899,470,182
|
||||
834,634,692,911,466,15,732,924,522,501,242,451,357,553,944,648,263,889,537,664
|
||||
718,306,941,878,653,294,894,529,94,510,467,728,98,742,942,693,463,732,139,910
|
||||
563,724,901,722,543,949,127,791,917,897,697,253,335,640,297,88,920,428,198,454
|
||||
780,691,458,732,787,684,82,299,564,835,87,407,433,427,468,701,650,792,295,145
|
||||
294,97,646,447,856,702,706,462,216,364,846,502,525,948,569,380,83,212,435,570
|
||||
504,703,363,834,135,402,494,625,892,371,569,723,641,154,673,141,801,298,841,569
|
||||
211,609,790,898,921,436,369,782,898,639,907,733,732,848,860,327,60,437,542,717
|
||||
838,657,303,246,848,680,615,296,466,263,595,50,726,553,570,338,202,818,451,296
|
||||
879,834,291,872,544,676,381,564,215,472,697,834,903,721,690,260,209,608,815,647
|
||||
97,886,496,787,545,666,335,704,457,771,307,845,662,837,723,92,790,560,648,284
|
||||
458,639,828,413,327,726,902,721,199,216,719,635,432,214,149,754,83,445,272,374
|
||||
688,563,106,883,712,535,732,113,894,256,450,494,691,205,890,833,803,723,457,328
|
||||
735,244,255,19,898,376,183,720,434,529,889,607,759,718,156,54,183,796,522,635
|
||||
698,739,367,177,698,58,688,533,809,889,733,815,781,403,527,450,618,889,60,104
|
||||
336,810,467,211,893,885,435,281,705,113,249,370,327,462,266,826,703,809,691,784
|
||||
757,798,216,153,809,149,96,536,450,332,676,261,569,229,501,722,200,634,247,796
|
||||
739,638,660,748,785,793,84,83,527,910,508,555,306,57,150,693,618,59,843,711
|
||||
294,787,656,946,691,325,432,333,452,373,901,604,361,439,59,286,813,840,700,244
|
||||
870,400,208,250,620,466,609,640,713,96,612,690,211,756,380,815,553,453,85,808
|
||||
60,272,608,846,704,728,839,903,83,361,717,673,797,787,778,790,889,504,614,704
|
||||
10,674,455,883,205,653,636,740,834,607,651,333,947,445,498,531,792,616,214,368
|
||||
399,548,157,366,757,731,536,305,199,650,828,303,607,811,4,816,539,940,456,709
|
||||
137,267,804,560,797,200,302,875,619,629,95,886,568,671,874,448,278,463,539,670
|
||||
676,798,812,643,208,775,180,294,921,548,949,86,261,641,888,143,702,788,306,899
|
||||
619,458,900,581,249,334,107,207,681,621,203,380,569,759,652,446,360,297,50,829
|
||||
528,699,289,690,823,676,674,509,466,730,902,608,305,211,737,638,617,681,700,761
|
||||
84,651,447,72,381,874,331,296,502,87,257,288,506,108,783,152,329,252,809,737
|
||||
672,921,155,332,348,533,898,399,616,664,472,293,201,216,61,729,657,722,648,814
|
||||
839,677,796,203,359,470,449,91,689,869,92,60,838,550,255,713,662,141,180,199
|
||||
709,274,439,827,785,294,199,495,260,671,198,15,470,379,671,877,713,756,609,303
|
||||
277,536,312,655,504,634,468,285,734,728,256,899,109,586,433,820,106,782,918,266
|
||||
100,608,947,780,817,721,209,99,652,60,610,297,203,936,790,568,570,799,918,290
|
||||
787,889,652,282,618,456,622,732,287,156,385,733,460,279,889,379,897,693,573,784
|
||||
466,922,683,644,99,121,835,615,97,754,945,494,947,888,156,273,613,909,333,210
|
||||
233,54,631,836,921,536,886,210,873,733,941,51,332,665,568,292,329,363,383,710
|
||||
924,262,381,939,458,148,138,57,143,364,888,997,641,820,942,261,940,820,249,733
|
||||
451,96,613,904,293,554,54,758,692,782,357,560,986,944,946,833,293,706,695,210
|
||||
471,897,434,85,241,107,918,640,606,199,464,786,740,106,942,907,238,205,813,282
|
||||
804,373,607,639,845,506,675,946,828,434,669,553,710,420,739,705,696,754,799,299
|
||||
718,501,259,662,434,107,213,484,546,286,206,617,472,533,470,154,643,921,211,360
|
||||
280,820,897,654,157,890,105,791,214,657,358,720,60,795,873,889,468,786,265,993
|
||||
147,719,730,730,466,530,827,826,788,801,446,219,808,707,360,102,464,552,897,812
|
||||
294,94,241,268,875,266,923,735,379,705,466,687,90,495,879,354,722,692,947,841
|
||||
180,95,690,461,142,561,379,101,283,676,650,247,471,509,846,931,548,700,538,522
|
||||
451,466,674,145,434,296,654,551,503,289,372,381,586,917,89,589,734,886,371,246
|
||||
715,754,758,147,638,299,895,833,833,398,940,54,100,524,546,57,241,373,455,702
|
||||
572,703,529,280,399,818,255,537,403,806,264,298,759,908,142,423,494,639,915,741
|
||||
403,82,814,355,183,823,893,364,881,733,368,815,738,614,505,497,550,146,875,896
|
||||
367,832,911,287,178,573,93,683,924,291,286,558,178,841,333,623,569,670,724,836
|
||||
810,571,87,917,758,994,51,104,534,337,681,572,559,256,879,917,293,304,917,458
|
||||
571,815,871,302,831,822,881,791,724,713,568,638,798,333,278,60,246,606,714,104
|
||||
555,712,567,837,136,553,642,19,208,616,712,893,363,325,303,531,631,789,501,813
|
||||
150,379,138,381,434,785,823,648,357,912,128,435,573,638,888,360,730,284,636,565
|
||||
671,198,93,382,527,915,263,712,253,935,267,816,453,682,527,538,399,663,886,151
|
||||
742,83,329,627,509,631,799,371,893,206,365,455,182,635,534,455,372,465,684,838
|
||||
643,896,898,873,873,796,438,448,402,540,626,685,939,672,435,209,459,495,282,729
|
||||
257,563,832,831,552,607,218,148,279,381,555,667,657,369,942,57,558,149,689,897
|
||||
208,683,569,259,978,674,697,836,215,215,140,361,714,691,940,199,57,445,302,712
|
||||
208,618,563,616,777,359,671,289,300,672,665,917,619,635,528,898,639,213,895,98
|
||||
278,781,547,307,371,787,920,215,631,925,880,565,268,361,616,891,881,643,144,321
|
||||
538,645,728,763,211,677,690,916,373,649,212,436,371,292,268,373,380,438,948,507
|
||||
257,757,917,656,560,782,664,546,925,265,795,494,647,151,531,101,534,1,613,432
|
||||
334,669,818,524,887,329,375,792,669,328,784,813,494,697,447,524,890,360,399,418
|
||||
837,554,677,816,622,534,720,893,883,255,912,712,341,291,687,890,400,921,101,819
|
||||
740,531,292,271,816,727,371,696,590,272,270,562,544,179,817,498,147,946,881,611
|
||||
616,647,847,824,845,535,700,281,153,642,478,281,197,468,447,204,908,877,550,664
|
||||
755,494,271,838,108,591,58,841,245,721,90,463,714,561,875,156,542,541,267,150
|
||||
366,757,681,946,548,533,135,896,507,359,824,282,15,638,305,780,640,827,781,798
|
||||
827,686,639,525,672,921,573,275,883,375,733,910,545,101,996,277,827,900,288,901
|
||||
254,685,548,723,729,507,100,917,763,332,634,89,404,572,690,788,921,559,839,137
|
||||
662,287,204,311,468,947,919,709,664,357,52,637,690,910,894,633,373,459,457,89
|
||||
652,434,365,754,757,626,720,642,277,85,289,664,559,213,148,813,826,504,821,157
|
||||
666,888,545,759,107,883,17,462,58,264,537,877,913,462,887,198,362,58,106,691
|
||||
101,216,650,250,328,559,854,834,622,655,447,54,946,799,727,660,705,137,95,610
|
||||
296,453,724,512,296,536,921,399,884,617,821,506,61,830,280,456,536,203,562,727
|
||||
844,561,634,452,806,607,495,107,813,147,927,848,809,879,247,705,705,707,742,136
|
||||
839,791,504,528,631,607,633,498,305,834,277,382,724,268,787,816,18,361,918,448
|
||||
716,375,438,789,250,725,886,543,275,2,523,370,108,848,897,614,60,757,911,666
|
||||
291,790,472,727,560,313,276,54,93,612,92,915,103,794,676,152,267,915,298,334
|
||||
692,547,107,188,293,83,215,69,461,939,757,244,723,632,84,754,524,451,535,403
|
||||
665,644,5,672,719,561,379,54,645,701,430,621,613,675,703,662,916,907,831,805
|
||||
288,496,724,326,305,460,714,329,839,163,829,728,638,672,450,920,286,783,543,429
|
||||
726,243,522,144,452,158,295,182,359,368,892,689,362,147,783,943,307,914,288,706
|
||||
102,434,292,617,876,57,666,524,299,258,151,462,645,919,109,533,197,4,454,542
|
||||
911,907,564,632,803,211,707,901,708,340,556,255,781,135,404,268,375,671,526,338
|
||||
802,448,451,735,99,669,349,722,609,783,429,298,692,918,642,274,135,284,428,54
|
||||
661,427,600,837,273,572,801,790,945,674,832,277,529,759,539,794,361,790,383,835
|
||||
453,537,875,203,536,246,586,453,484,330,60,642,295,328,207,494,216,668,919,373
|
||||
680,673,923,785,137,648,590,495,100,105,471,109,914,877,500,557,383,523,522,631
|
||||
534,819,694,647,691,367,468,545,689,837,64,810,146,613,909,252,756,736,690,251
|
||||
757,367,662,199,947,109,200,813,428,694,737,692,429,137,689,319,700,844,97,648
|
||||
662,803,618,178,85,295,711,259,652,717,94,893,616,139,438,779,651,885,264,357
|
||||
570,264,105,334,450,841,568,643,845,449,883,949,434,682,820,459,672,844,617,864
|
||||
531,98,150,466,921,812,464,175,260,697,278,643,876,687,914,60,61,439,297,508
|
||||
876,438,837,681,615,327,409,216,703,206,370,362,680,95,804,894,531,716,302,617
|
||||
802,366,211,532,556,791,551,999,876,336,543,281,538,181,836,109,208,556,903,270
|
||||
94,731,528,593,507,919,330,665,543,329,700,705,59,288,654,681,884,59,891,925
|
||||
531,153,759,828,242,331,835,438,612,539,631,455,616,306,985,800,826,102,725,358
|
||||
538,214,780,453,692,844,797,921,814,797,638,666,211,506,359,235,907,642,137,687
|
||||
364,525,458,179,694,568,153,197,181,461,361,293,18,888,942,699,253,290,728,718
|
||||
718,208,730,721,733,90,445,416,361,85,844,787,463,272,713,714,690,336,198,757
|
||||
105,704,302,610,947,608,544,731,264,817,719,873,740,559,927,921,277,436,820,689
|
||||
209,742,656,473,151,430,375,456,731,647,848,673,272,93,824,102,983,504,812,377
|
||||
498,898,94,707,607,826,756,471,129,466,844,915,251,789,566,506,471,873,285,652
|
||||
788,281,57,430,822,90,764,523,294,327,882,181,377,819,611,87,282,361,820,498
|
||||
381,450,892,826,603,710,670,281,399,841,274,284,675,845,805,688,613,263,673,273
|
||||
671,563,276,372,108,946,263,245,688,313,439,203,699,148,360,454,290,755,687,55
|
||||
""".strip()
|
||||
|
||||
ex2="""class: 0-1 or 4-19
|
||||
row: 0-5 or 8-19
|
||||
seat: 0-13 or 16-19
|
||||
|
||||
your ticket:
|
||||
11,12,13
|
||||
|
||||
nearby tickets:
|
||||
3,9,18
|
||||
15,1,5
|
||||
5,14,9""".strip()
|
||||
|
||||
curr="fields"
|
||||
fields=[]
|
||||
your=[]
|
||||
nearby=[]
|
||||
for line in actual.splitlines():
|
||||
line=line.strip()
|
||||
if curr=="fields":
|
||||
if line=="": continue
|
||||
if line.startswith("your ticket:"):
|
||||
curr="your"
|
||||
continue
|
||||
k,v=line.split(": ")
|
||||
conds=[]
|
||||
for cond in v.split(" or "):
|
||||
l,r=list(map(int, cond.split("-")))
|
||||
conds.append((l, r))
|
||||
fields.append((k, conds))
|
||||
elif curr=="your":
|
||||
if line=="": continue
|
||||
if line.startswith("nearby tickets:"):
|
||||
curr="nearby"
|
||||
continue
|
||||
your=list(map(int, line.split(",")))
|
||||
elif curr=="nearby":
|
||||
nearby.append(list(map(int, line.split(","))))
|
||||
|
||||
# print(fields)
|
||||
# print(your)
|
||||
# print(nearby)
|
||||
|
||||
values=[]
|
||||
for i in range(len(your)):
|
||||
values.append(set())
|
||||
for (idx, ticket) in enumerate([your]+nearby):
|
||||
ticket_valid=True
|
||||
for val in ticket:
|
||||
isvalid=False
|
||||
for (prop, conds) in fields:
|
||||
for l, r in conds:
|
||||
if val>=l and val<=r:
|
||||
isvalid=True
|
||||
break
|
||||
if not isvalid:
|
||||
ticket_valid = False
|
||||
break
|
||||
if ticket_valid:
|
||||
assert len(ticket)==len(values)
|
||||
for i, n in enumerate(ticket):
|
||||
values[i].add(n)
|
||||
|
||||
print(len(values))
|
||||
valid_for=[]
|
||||
for (prop, conds) in fields:
|
||||
this_valid_for=set()
|
||||
for (idx, prop_values) in enumerate(values):
|
||||
all_valid=True
|
||||
for val in prop_values:
|
||||
this_valid=False
|
||||
for l, r in conds:
|
||||
if val>=l and val<=r:
|
||||
this_valid=True
|
||||
break
|
||||
if not this_valid: all_valid=False
|
||||
if all_valid: this_valid_for.add(idx)
|
||||
valid_for.append((prop, this_valid_for))
|
||||
|
||||
valid_for.sort(key=lambda c: len(c[1]))
|
||||
print(valid_for)
|
||||
|
||||
pairings=list()
|
||||
for i in range(len(your)):
|
||||
pairings.append("")
|
||||
used=set()
|
||||
for k, vs in valid_for:
|
||||
if len(vs)==0: continue
|
||||
found=False
|
||||
for v in vs:
|
||||
if v in used: continue
|
||||
pairings[v] = k
|
||||
used.add(v)
|
||||
found=True
|
||||
assert found, f"{k}, {vs}, {pairings}"
|
||||
|
||||
ticket=dict(zip(pairings, your))
|
||||
p=1
|
||||
for k, v in ticket.items():
|
||||
if k.startswith("departure"):
|
||||
p*=v
|
||||
print(p)
|
20
aoc2020/2.py
Normal file
20
aoc2020/2.py
Normal file
|
@ -0,0 +1,20 @@
|
|||
count1 = 0
|
||||
count2 = 0
|
||||
with open("2.txt") as f:
|
||||
for line in f:
|
||||
spec, data = line.split(": ")
|
||||
nums, letter = spec.split(" ")
|
||||
lo, hi = nums.split("-")
|
||||
lo = int(lo)
|
||||
hi = int(hi)
|
||||
c = data.count(letter)
|
||||
if c >= lo and c <= hi:
|
||||
count1 += 1
|
||||
|
||||
a = lo - 1 < len(data) and data[lo - 1] == letter
|
||||
b = hi - 1 < len(data) and data[hi - 1] == letter
|
||||
if a ^ b:
|
||||
count2 += 1
|
||||
print(count1)
|
||||
print(count2)
|
||||
|
1000
aoc2020/2.txt
Normal file
1000
aoc2020/2.txt
Normal file
File diff suppressed because it is too large
Load diff
35
aoc2020/3.py
Normal file
35
aoc2020/3.py
Normal file
|
@ -0,0 +1,35 @@
|
|||
def run_by(right, down):
|
||||
trees = 0
|
||||
print((right, down))
|
||||
with open("3.txt") as f:
|
||||
idx = 0
|
||||
for i, line in enumerate(f):
|
||||
line = line.strip()
|
||||
|
||||
l = list(line)
|
||||
c = line[idx % len(line)]
|
||||
if i % down == 0:
|
||||
l[idx % len(l)] = "X" if c == "#" else "O"
|
||||
print(f"{idx}\t{len(line)}\t{''.join(l)}\t{line}")
|
||||
|
||||
if i % down == 0:
|
||||
idx += right
|
||||
if i == 0: continue
|
||||
|
||||
if i % down == 0:
|
||||
if c == "#":
|
||||
trees += 1
|
||||
print()
|
||||
return trees
|
||||
|
||||
s = [
|
||||
run_by(1, 1),
|
||||
run_by(3, 1),
|
||||
run_by(5, 1),
|
||||
run_by(7, 1),
|
||||
run_by(1, 2),
|
||||
]
|
||||
print(s)
|
||||
|
||||
import math
|
||||
print(math.prod(s))
|
323
aoc2020/3.txt
Normal file
323
aoc2020/3.txt
Normal file
|
@ -0,0 +1,323 @@
|
|||
............#....#.............
|
||||
...........##....#......#..#..#
|
||||
......#.......#......#.........
|
||||
..#.#....#....#.............##.
|
||||
..#........####....#...#.......
|
||||
..##.....#.#.#..#.........#....
|
||||
...#.#..#..#....#..#..#........
|
||||
#.......#.........#....##.###..
|
||||
......##..#.#...#.......#.#....
|
||||
................##.........#.##
|
||||
..##..........#...#.........#.#
|
||||
..........#...##...............
|
||||
#...#......#..#.#..#...##..#...
|
||||
..##....#.......#......#..#....
|
||||
....#......#......#....#.......
|
||||
.........#.....#..#............
|
||||
.#...#.#.........#........#....
|
||||
#..........####.....#..........
|
||||
......##.....#....#..#........#
|
||||
#......#......#...........#....
|
||||
....#.........#....#...#..#..#.
|
||||
.#........#......#.#.....#.....
|
||||
..#.#.#..........#....#.......#
|
||||
......#.#........##....##....##
|
||||
.....#.#..#...#................
|
||||
......#......##...............#
|
||||
..#..##.............#...##.....
|
||||
......##......##..#......#.....
|
||||
....#.............#..##.....##.
|
||||
........#...............##.....
|
||||
..#......#.##..#...#....#...#..
|
||||
#......#.......#.............#.
|
||||
.....#....##..............#....
|
||||
#.#.........#....#..##....#....
|
||||
.#...#...#....#.#............#.
|
||||
...#...#.#..##.##.......##.....
|
||||
......#..#....##..#.#..#..#....
|
||||
.......##..#..#......#..#.....#
|
||||
.##..#......#..........#....#..
|
||||
.....#................#..#....#
|
||||
........#..#....#.......#....#.
|
||||
..#......#.......#......#....#.
|
||||
....#...#.##........##....#....
|
||||
.....#........#...........#....
|
||||
...#....##..........#..#...#.#.
|
||||
...#.......#......#...##...#...
|
||||
.#.....#........#........#.#..#
|
||||
.#.........#..##.....#.......#.
|
||||
....#..#....#.......#......#...
|
||||
.#.#...##..##................##
|
||||
......#.#...#.......#....#....#
|
||||
........#....#..#.....#......#.
|
||||
.......#..........#......#.....
|
||||
...............................
|
||||
..#..#####..#..#..........#.#..
|
||||
.....#....##................#.#
|
||||
.................##............
|
||||
.#...#...#..#...........#...##.
|
||||
..#..#.#...........#.....##....
|
||||
.#.......#.....#..##..#.#....#.
|
||||
..........#.#......##...##.....
|
||||
........##..#......##...#......
|
||||
#......................#.......
|
||||
............#.....#....#.#...#.
|
||||
#......#..........##..#........
|
||||
.........#.......#...#.#.......
|
||||
...........##....#........#....
|
||||
#........#.....#...#........##.
|
||||
.#......##......#.##.......#..#
|
||||
.....#......#.#......#.......#.
|
||||
.....#.#.........#.............
|
||||
...........#..#....#.....#.#...
|
||||
...#............#...#..........
|
||||
..#..#...#.....................
|
||||
......#..#...#....#............
|
||||
.#.#.#........#..#...#.........
|
||||
..........#........#..#........
|
||||
..............#...#....#.......
|
||||
..#....#....##.......#...#.##..
|
||||
.#.........#...#......#........
|
||||
..#......#...#.........##.#...#
|
||||
...#.....#...#..#.............#
|
||||
.##........#.#.#.............#.
|
||||
..#.............#..#.#...#....#
|
||||
#...#.........#......#......#..
|
||||
.......##..#.#..........#...#..
|
||||
.......#.............#..#.#....
|
||||
.#..#....#.#...................
|
||||
....##...#..#....#..#..........
|
||||
....#.#............#...........
|
||||
###........##..#.#..#..........
|
||||
.#.#.#.......#...........#..#.#
|
||||
..........##..#.............#..
|
||||
.#...........#......#.#..#..##.
|
||||
...###......#.##........#.....#
|
||||
....#..#..#...#................
|
||||
...#.....#........#............
|
||||
....#...#...#..#..##.##.......#
|
||||
#.......#......#....#.......#..
|
||||
#.............#...#............
|
||||
##......#..#...#....##.#...#...
|
||||
.##....................#....#..
|
||||
..#.....#....#.#....#......#...
|
||||
.......#..#..#............#...#
|
||||
.#.....#.......#..#..#..#......
|
||||
......##.......................
|
||||
#..#...#.#.#....#.....#..#.....
|
||||
...................#...#...#...
|
||||
........#....##..#....#........
|
||||
##......#.#......##.###........
|
||||
.........#...##................
|
||||
.......#...#...#.......##......
|
||||
....#.......#......#.........##
|
||||
....#....#.#..#.....#..........
|
||||
...........#.......#........#..
|
||||
..#.........###.#........#.....
|
||||
.......#...........#.#.....##..
|
||||
..#...#..#..........#..........
|
||||
..........#.#....#.............
|
||||
.##....#........##.............
|
||||
.............#.#####........#.#
|
||||
.................##...#........
|
||||
##...#.#.......##........#.....
|
||||
.#...#...#..#..#....#....#.....
|
||||
..#...#........#..#............
|
||||
##...#.#........#......##.#..##
|
||||
.##......#..............##.#..#
|
||||
.........#...#............#...#
|
||||
....#..#....#...........#......
|
||||
........#..#....#...##...#.....
|
||||
..#..............#...#.#.....#.
|
||||
.#.......#.#.....#..###.......#
|
||||
...................#.......#...
|
||||
........##.....#..#.......##...
|
||||
.....#....................#...#
|
||||
...#.#....#............#.#.....
|
||||
#.......#.......#....#.........
|
||||
..#...............#............
|
||||
##...#...#...#..............#..
|
||||
...#..........#..#....##.......
|
||||
#............##.##......#.#.#..
|
||||
.#...........#.........#....##.
|
||||
..##....##.#....#.#.#.##...##.#
|
||||
........#.#.#.............#....
|
||||
.#...........#....##...#...#.#.
|
||||
.##...#.................#......
|
||||
....#.#..#....................#
|
||||
.##......#........#..#.........
|
||||
...#...............#...........
|
||||
.#.#..##..##.#........#........
|
||||
...........#....#.#.#......#...
|
||||
...................#........#.#
|
||||
..#............#...#.#........#
|
||||
....#....#.#.##......#...#.....
|
||||
..................#............
|
||||
..........................#....
|
||||
........#......................
|
||||
......#.#...#.#..##......#.#.#.
|
||||
.........#...#..#..............
|
||||
..#.......#..........##..#.....
|
||||
.........#............#........
|
||||
......#..#..#...###....#....#..
|
||||
#..#..............##.###..##..#
|
||||
.#..................#.....#...#
|
||||
........#........#........#....
|
||||
.........#........#.##......#..
|
||||
..#.....#.#..###...#....#......
|
||||
..#................##....#.....
|
||||
..#.#....##.....#......##...#..
|
||||
...#.......#........##.........
|
||||
#........#...#.#..........##..#
|
||||
................#...#.#.....#..
|
||||
.........#..#..#.#..#.#...#....
|
||||
##....#...##.........#.#...#.##
|
||||
....#..#.....##.....#.....##...
|
||||
................#............#.
|
||||
..#..#...#.....#......#.....##.
|
||||
....#.......#...#...#...#..#...
|
||||
....#..##....#.###.#...#..#....
|
||||
#..##.....#.....#.##..##...##.#
|
||||
.............###..........#....
|
||||
..................#.....###....
|
||||
..........#....#...#......#....
|
||||
...#..##.......#......#.#...#..
|
||||
..#.......................##.#.
|
||||
..#..#..#....#......#...#...##.
|
||||
#.............#................
|
||||
..........#.#.#.........#.#....
|
||||
.....##..#......##.#...........
|
||||
.#.#.#.#....#.#...#.....#.#...#
|
||||
......#.....##..............##.
|
||||
#..#.......##..##..............
|
||||
#..#..#................###.....
|
||||
.....#......#.........#........
|
||||
#...........#........#.#.......
|
||||
#........#.#...#....#....###..#
|
||||
###..#.#...........#.##.....#.#
|
||||
..#..........#..#............#.
|
||||
...#....#.......#..#.....###...
|
||||
.#....#.##.#..###..............
|
||||
.....#.##.##.......###.##...#.#
|
||||
..#..##.......###..............
|
||||
.#.........###..#..............
|
||||
..................###.....#..#.
|
||||
#....#....#.........#.....#....
|
||||
.........#.#..#....#.....#.....
|
||||
....##.......##.......#.#......
|
||||
.....#...#.##.....#............
|
||||
....#.#.#.......#..............
|
||||
.##..#.#..#.......##...........
|
||||
....#....##..#.....##.......#.#
|
||||
.....##....#..#.#........#.....
|
||||
........#.#.#....#....##...#..#
|
||||
..#......#.#.#..#.##....#.#.#..
|
||||
..#...#........#..#..........#.
|
||||
.........#...................#.
|
||||
........#.....##..#....#....#..
|
||||
#..............#..........#....
|
||||
#........#.#...........#.#.....
|
||||
..#......................#.#..#
|
||||
.........#.#.....#.#..........#
|
||||
......#....#.#.##........#.....
|
||||
.#....##......##..#...#.......#
|
||||
..#........#...#.##....#..#.#..
|
||||
.......#.....#..........#.....#
|
||||
.........#.#..#.........#....#.
|
||||
..........#.##.........##..#...
|
||||
......#.#..#.....#.#..........#
|
||||
......#.#.#..#..#.#............
|
||||
...##.#..#..............#....#.
|
||||
#..........#...................
|
||||
.#....#..#.#.......#........#..
|
||||
...#...#......#....#......#....
|
||||
..#.#.......#.......#.......#.#
|
||||
...#.#...#........#.....#......
|
||||
#.......#..#...................
|
||||
#..#..#.............#..#..#..#.
|
||||
#.......................#....##
|
||||
.#.........#....#....#.........
|
||||
...............#...#..#....#..#
|
||||
#.....#.#...#.#.....#..........
|
||||
....##.#..#...#.#....###...#.#.
|
||||
.................#....#........
|
||||
####.......##...##.......#.##..
|
||||
#..#....#....##............#...
|
||||
..##......#..#........#........
|
||||
....#..#..........#......#...##
|
||||
..#.#.............#...........#
|
||||
#...............#...#.......#.#
|
||||
#..#.........#.##.#.......#...#
|
||||
......#.....#.............#...#
|
||||
......#.##.........##...#......
|
||||
..#......##.#........#.......#.
|
||||
#..#.........#.##..............
|
||||
..#....#...#...#..#.....#.#....
|
||||
................#.......#......
|
||||
#.....#..............##....#.##
|
||||
##.....#...#.#.....#..##...#...
|
||||
#.#............##..........#..#
|
||||
..#.##......#..#....#..........
|
||||
....##.#....#.......##.....#...
|
||||
......#.#....###...#...........
|
||||
..................#......#....#
|
||||
..............##...............
|
||||
......#..#....#.....#..........
|
||||
.......#........#...#..........
|
||||
..#......#......##..#.##..#....
|
||||
..#.#...#...............#......
|
||||
....#.#.............#.#......#.
|
||||
....#.#.....#......#..#.......#
|
||||
........................#..#...
|
||||
.................#...........#.
|
||||
#......#......#.#.#.....##.....
|
||||
..#....##...#.....##.#.....#..#
|
||||
....#.........#....#.##.#.#....
|
||||
..#....###.....................
|
||||
.....#.#....#......#....##....#
|
||||
#.......#...#......##.......#..
|
||||
#....#.........##.....#........
|
||||
#.....#...........#..#.....#...
|
||||
.................#.....#..##..#
|
||||
..#...#......####...##.........
|
||||
...............................
|
||||
#........#.....#...............
|
||||
.#.........#....#.#......##....
|
||||
...#..........#.........#.#.#.#
|
||||
......##......#....###........#
|
||||
.....................#.#.#.....
|
||||
......#..#..#.......#...#......
|
||||
...##.#.............#.#.......#
|
||||
..#.#...#..#....#.....#.....#..
|
||||
..#..#.....................#..#
|
||||
........#....#..........#..#...
|
||||
#.##....#..#.#..#............#.
|
||||
..............###.............#
|
||||
.#.#..........#.#....#...#....#
|
||||
....#..........#.#..#......#...
|
||||
.........##.#...#..............
|
||||
..................#.....#.#....
|
||||
.#....#.......#.##.#.........#.
|
||||
.##..#...#......#..#...........
|
||||
.#.........#..........#.#......
|
||||
#.#......#.#.#.#.......#...#.#.
|
||||
.......#....#.#......#......#..
|
||||
...#..#....#.#..#..##...##.....
|
||||
#.#.#.......#....#.........##..
|
||||
#..#....#........###....#.#....
|
||||
....#..#.........#....#...#....
|
||||
...#.#.#.#..#..##.....#.##.....
|
||||
.......#.......#...............
|
||||
#.#.#......##....#.............
|
||||
...#.##........#.....#...##.#..
|
||||
...#.#.###..........#.......#..
|
||||
.....#...#.......#.........#...
|
||||
............#..#...#..##.......
|
||||
...#....#..##.##..........#.##.
|
||||
..................#........#...
|
||||
....#.##.#.##........#.#.......
|
||||
.#...........##.....##.......#.
|
||||
#...#.........#.....##.........
|
||||
#..#....#.#.........#..........
|
||||
..#......#.#.#......#.....#..#.
|
||||
..##......#..............#.....
|
11
aoc2020/3_ex.txt
Normal file
11
aoc2020/3_ex.txt
Normal file
|
@ -0,0 +1,11 @@
|
|||
..##.......
|
||||
#...#...#..
|
||||
.#....#..#.
|
||||
..#.#...#.#
|
||||
.#...##..#.
|
||||
..#.##.....
|
||||
.#.#.#....#
|
||||
.#........#
|
||||
#.##...#...
|
||||
#...##....#
|
||||
.#..#...#.#
|
67
aoc2020/4.hs
Normal file
67
aoc2020/4.hs
Normal file
|
@ -0,0 +1,67 @@
|
|||
import Control.Applicative
|
||||
import Control.Monad
|
||||
import Data.Char
|
||||
import Data.Functor
|
||||
import Data.List
|
||||
import Data.List.Extra (stripSuffix)
|
||||
import Data.List.Split
|
||||
import Data.Maybe
|
||||
import Text.Read
|
||||
import Data.Set (Set, fromList, isSubsetOf)
|
||||
|
||||
data Attr = Byr | Iyr | Eyr | Hgt | Hcl | Ecl | Pid | Cid
|
||||
deriving (Show, Bounded, Enum, Eq, Ord)
|
||||
|
||||
intval :: Int -> Int -> Int -> Maybe Int
|
||||
intval lo hi n = guard (lo <= n && n <= hi) $> n
|
||||
|
||||
nDigits :: Int -> String -> Maybe String
|
||||
nDigits n s = guard (length s == n && all isDigit s) $> s
|
||||
|
||||
hexColor :: String -> Maybe String
|
||||
hexColor s = guard (length s == 7 && s !! 0 == '#' && all (flip elem "0123456789abcdef") (drop 1 s)) $> s
|
||||
|
||||
validEcl :: String -> Bool
|
||||
validEcl = flip elem ["amb", "blu", "brn", "gry", "grn", "hzl", "oth"]
|
||||
|
||||
parseAttr :: String -> Maybe Attr
|
||||
parseAttr s =
|
||||
case splitOn ":" s of
|
||||
[key, value] -> case key of
|
||||
"byr" -> (readMaybe value >>= intval 1920 2002) $> Byr
|
||||
"iyr" -> (readMaybe value >>= intval 2010 2020) $> Iyr
|
||||
"eyr" -> (readMaybe value >>= intval 2020 2030) $> Eyr
|
||||
"hgt" ->
|
||||
let inch = stripSuffix "cm" value >>= readMaybe >>= intval 150 193 in
|
||||
let cm = stripSuffix "in" value >>= readMaybe >>= intval 59 76 in
|
||||
(inch <|> cm) $> Hgt
|
||||
"hcl" -> hexColor value $> Hcl
|
||||
"ecl" -> if validEcl value then Just Ecl else Nothing
|
||||
"pid" -> nDigits 9 value $> Pid
|
||||
"cid" -> Just Cid
|
||||
_ -> Nothing
|
||||
_ -> Nothing
|
||||
|
||||
processLine :: String -> Maybe [Attr]
|
||||
processLine = mapM parseAttr . splitOn " "
|
||||
|
||||
requiredAttrs :: Set Attr
|
||||
requiredAttrs = fromList $ enumFromTo Byr Pid
|
||||
|
||||
combineAttrs :: [Attr] -> Maybe [Attr]
|
||||
combineAttrs attrs = guard (isSubsetOf requiredAttrs $ fromList $ attrs) $> attrs
|
||||
|
||||
processPassport :: [String] -> Maybe [Attr]
|
||||
processPassport = combineAttrs . concat <=< mapM processLine
|
||||
|
||||
processLines :: [String] -> [Maybe [Attr]]
|
||||
processLines = map processPassport . splitWhen (== "")
|
||||
|
||||
countValid :: [Maybe [Attr]] -> Int
|
||||
countValid = length . filter isJust
|
||||
|
||||
main :: IO ()
|
||||
main = do
|
||||
content <- readFile "4.txt"
|
||||
let valid = countValid $ processLines $ lines content
|
||||
print valid
|
953
aoc2020/4.txt
Normal file
953
aoc2020/4.txt
Normal file
|
@ -0,0 +1,953 @@
|
|||
ecl:amb
|
||||
pid:690616023
|
||||
byr:1994 iyr:2014 hgt:172cm hcl:#c0946f eyr:2022
|
||||
|
||||
eyr:1980 cid:97
|
||||
hcl:z ecl:#102145 iyr:2011 byr:1945
|
||||
pid:187cm hgt:179in
|
||||
|
||||
ecl:amb
|
||||
iyr:2011
|
||||
cid:113
|
||||
eyr:2021 hcl:#b6652a pid:004682943 byr:1940
|
||||
hgt:173cm
|
||||
|
||||
iyr:2023
|
||||
cid:146 byr:2022 ecl:dne hgt:76in eyr:2040 hcl:z
|
||||
|
||||
hcl:#f97e30
|
||||
cid:73 iyr:2013 byr:1929 hgt:157cm
|
||||
eyr:2024 ecl:blu pid:673398662
|
||||
|
||||
hcl:5343fe
|
||||
hgt:152 byr:2018
|
||||
eyr:1992 pid:85999926 iyr:1938 ecl:#15bd97
|
||||
|
||||
byr:1975 hcl:z eyr:1988 pid:#c36f52
|
||||
iyr:2018
|
||||
hgt:184cm
|
||||
|
||||
byr:1954 eyr:2023 hgt:170cm iyr:2012 ecl:blu pid:299556897 hcl:#b6652a
|
||||
|
||||
hgt:191cm ecl:oth hcl:#7d3b0c
|
||||
iyr:2016 pid:187567535
|
||||
byr:1999 eyr:2023
|
||||
|
||||
pid:814358147 eyr:2022 iyr:2000 byr:2001 hcl:#18171d
|
||||
ecl:blu
|
||||
hgt:76in
|
||||
|
||||
ecl:hzl
|
||||
hgt:163cm byr:1955 iyr:2018 eyr:2024 hcl:#6b5442 pid:343362099
|
||||
|
||||
eyr:2020 pid:185090160 ecl:#21a5e6
|
||||
iyr:1928 byr:2006 hcl:a2ebbf hgt:104
|
||||
|
||||
hgt:153cm
|
||||
hcl:#a97842 ecl:blu eyr:2028 byr:1969 iyr:2019
|
||||
pid:729700590
|
||||
|
||||
iyr:2019 byr:1981 hgt:150cm pid:606092356 hcl:#18171d eyr:2026
|
||||
ecl:grn
|
||||
|
||||
pid:760899887
|
||||
eyr:2023 hcl:#866857 hgt:185cm iyr:2017
|
||||
byr:1976 ecl:gry
|
||||
|
||||
byr:1965 eyr:2026
|
||||
hcl:#623a2f
|
||||
ecl:blu pid:483363116 iyr:2010 hgt:178cm cid:204
|
||||
|
||||
ecl:oth eyr:2022
|
||||
pid:268557763 byr:1965 iyr:2015 hcl:#c0946f hgt:164cm
|
||||
|
||||
ecl:gry hgt:168cm hcl:#623a2f eyr:2020 cid:163 pid:124082663 iyr:2016 byr:1996
|
||||
|
||||
hcl:4c44fb iyr:1957 eyr:2039 ecl:grt hgt:63cm byr:2012 cid:104
|
||||
|
||||
byr:2024 iyr:2023
|
||||
ecl:gry
|
||||
eyr:2007 pid:170cm hgt:68 hcl:d57b67 cid:333
|
||||
|
||||
byr:1956
|
||||
hgt:169cm iyr:2013 pid:370491367
|
||||
ecl:gry hcl:#5bc41d
|
||||
|
||||
eyr:2023 iyr:2028 byr:1969 ecl:lzr hcl:1989b1 hgt:71cm pid:#12c226
|
||||
|
||||
cid:304 pid:866132461
|
||||
byr:2022
|
||||
hcl:z hgt:191in ecl:lzr iyr:2029 eyr:1989
|
||||
|
||||
ecl:brn hcl:#9a45a7
|
||||
hgt:176cm
|
||||
byr:1974 pid:758747330 iyr:2014 eyr:2020
|
||||
|
||||
cid:190 ecl:hzl iyr:2014 byr:1990 hgt:69in eyr:2037 pid:384015829 hcl:#ceb3a1
|
||||
|
||||
byr:1998 eyr:2022 iyr:2018 hgt:153cm
|
||||
hcl:#733820 pid:424512443
|
||||
ecl:blu
|
||||
|
||||
hcl:27c41f byr:1972 eyr:1994 pid:777840405
|
||||
ecl:gry
|
||||
hgt:179cm
|
||||
iyr:2021
|
||||
|
||||
hgt:166cm eyr:2032 ecl:gry byr:1936
|
||||
pid:41703652
|
||||
|
||||
hcl:#efcc98 iyr:2019 byr:1936 pid:985830958 eyr:2021
|
||||
hgt:175cm ecl:brn
|
||||
|
||||
eyr:2025 pid:972163513 hgt:155cm ecl:brn cid:169 iyr:2015
|
||||
hcl:#6b5442
|
||||
|
||||
eyr:2026
|
||||
hgt:173cm
|
||||
byr:1984
|
||||
cid:191
|
||||
pid:791209101 hcl:#341e13 iyr:2020 ecl:hzl
|
||||
|
||||
hgt:64cm
|
||||
iyr:2010 byr:1978
|
||||
pid:618891746 hcl:#d6ac23 eyr:2023 ecl:brn
|
||||
|
||||
eyr:2021 hcl:#341e13 iyr:2018 pid:502081929
|
||||
ecl:blu
|
||||
|
||||
ecl:amb
|
||||
iyr:2018 pid:8933462515
|
||||
hgt:160cm hcl:e330f0 eyr:2030 byr:2007
|
||||
|
||||
ecl:gry byr:1980 hcl:#341e13 iyr:2015 pid:830724822 hgt:167cm cid:156
|
||||
eyr:2023
|
||||
|
||||
ecl:gry hcl:#c39b75 byr:1995 hgt:153cm
|
||||
eyr:2029 pid:83056475 iyr:2013
|
||||
|
||||
byr:1965 cid:250
|
||||
ecl:oth iyr:2016
|
||||
pid:242792947 eyr:2025 hcl:#efcc98
|
||||
|
||||
byr:2011 ecl:#62fe2d hcl:#2b434a hgt:190cm
|
||||
eyr:2031 iyr:1964 pid:7096872943
|
||||
|
||||
cid:258 hcl:#c0946f pid:698224453 eyr:2029 hgt:189cm iyr:2012 ecl:blu byr:1963
|
||||
|
||||
eyr:2028 byr:1942 hgt:156cm pid:836243052 iyr:2016
|
||||
hcl:#888785 cid:310 ecl:brn
|
||||
|
||||
hcl:#a97842 pid:740164307 ecl:oth byr:1997
|
||||
hgt:166cm
|
||||
iyr:2015 eyr:2026
|
||||
|
||||
hcl:4ee9da iyr:2020
|
||||
eyr:1933 hgt:136 ecl:#8dee29 pid:44266010 byr:1966 cid:82
|
||||
|
||||
ecl:amb byr:1921 hgt:182cm eyr:2026
|
||||
hcl:#c0946f iyr:2010
|
||||
|
||||
hgt:178cm cid:343 eyr:2023 pid:197119382 hcl:#623a2f iyr:2017
|
||||
ecl:brn byr:2002
|
||||
|
||||
eyr:2030 byr:1967 ecl:blu hgt:166cm iyr:2017
|
||||
pid:655602762 hcl:#6b5442
|
||||
|
||||
cid:143 hgt:152cm eyr:2026 iyr:2018 byr:1950 ecl:grn hcl:#866857 pid:067535973
|
||||
|
||||
byr:2019 ecl:#e3c288 iyr:1948 hgt:72cm hcl:7da71b eyr:1956
|
||||
|
||||
hcl:#cfa07d
|
||||
pid:688405238 cid:200 byr:1950
|
||||
iyr:2020 ecl:hzl hgt:170cm
|
||||
|
||||
eyr:2026 hgt:164cm iyr:2010 hcl:#b6652a pid:404835595 byr:1924 ecl:blu
|
||||
|
||||
iyr:2016 hcl:#866857
|
||||
ecl:gry
|
||||
eyr:2023 pid:986813245 cid:247 byr:1977
|
||||
hgt:173cm
|
||||
|
||||
ecl:#a59335 eyr:2023
|
||||
hcl:033f22 byr:1947 hgt:152
|
||||
iyr:2029 pid:#1e686a cid:305
|
||||
|
||||
byr:2005
|
||||
ecl:amb hcl:#a97842
|
||||
iyr:1972
|
||||
eyr:1967 pid:274884869
|
||||
|
||||
eyr:2038 iyr:2018
|
||||
pid:181cm ecl:xry hgt:185in
|
||||
hcl:109b28 cid:287
|
||||
|
||||
ecl:amb byr:1943 pid:002483342 hgt:178cm
|
||||
hcl:#c0946f eyr:2030
|
||||
iyr:2014
|
||||
|
||||
iyr:2020 byr:1963 cid:131 hcl:#18171d hgt:181cm pid:146726616 eyr:2021
|
||||
|
||||
pid:062629370 byr:1931 hgt:188cm eyr:2021 ecl:gry
|
||||
hcl:#166b3d
|
||||
|
||||
pid:007028786 ecl:blu hgt:156cm byr:1981 hcl:#888785 cid:53 iyr:2019
|
||||
|
||||
iyr:2014 hcl:#623a2f
|
||||
ecl:hzl eyr:2029 byr:1988
|
||||
pid:849096536 hgt:167cm cid:322
|
||||
|
||||
pid:160824363
|
||||
hcl:#19bed3
|
||||
eyr:2024 hgt:171cm
|
||||
byr:1968 iyr:2019
|
||||
|
||||
eyr:2024 hcl:#dd66d0
|
||||
byr:1986
|
||||
cid:105 pid:816153574 ecl:hzl iyr:2013
|
||||
hgt:173cm
|
||||
|
||||
hcl:#ceb3a1 hgt:62in ecl:gry
|
||||
iyr:2017 cid:234 byr:1963
|
||||
eyr:2029
|
||||
pid:514406488
|
||||
|
||||
hcl:#fffffd ecl:blu
|
||||
eyr:2020 iyr:2010
|
||||
pid:544347103 hgt:164cm byr:1939
|
||||
|
||||
eyr:2021
|
||||
pid:999479324 hgt:164in ecl:brn iyr:2016
|
||||
hcl:#a97842 byr:2020
|
||||
|
||||
pid:053149570 byr:1920 eyr:2027 hgt:190cm iyr:2011 hcl:#fffffd ecl:oth
|
||||
|
||||
hgt:165cm
|
||||
hcl:#cfa07d
|
||||
ecl:oth
|
||||
eyr:2023
|
||||
pid:186cm
|
||||
byr:1937 iyr:2012
|
||||
|
||||
eyr:2026 hgt:64cm hcl:#ac426a byr:1969
|
||||
cid:345 iyr:1960
|
||||
pid:#df648a ecl:blu
|
||||
|
||||
byr:1923 iyr:2017
|
||||
eyr:2027 pid:798497862 hgt:182cm
|
||||
hcl:#ceb3a1 ecl:oth
|
||||
|
||||
hgt:182cm eyr:1990 ecl:grn hcl:#efcc98 byr:1968
|
||||
pid:005962011
|
||||
iyr:2010
|
||||
|
||||
cid:74 eyr:2020 hgt:71in
|
||||
iyr:2015 pid:487940408 byr:1952
|
||||
hcl:#733820
|
||||
|
||||
hgt:75cm cid:249
|
||||
ecl:hzl
|
||||
hcl:#6b5442 pid:4860441 eyr:2020
|
||||
|
||||
ecl:hzl eyr:2025 hgt:183cm
|
||||
iyr:2020 byr:1993 pid:572766871 hcl:#866857
|
||||
|
||||
hcl:#888785 pid:200125941 hgt:155cm byr:1923
|
||||
eyr:2021 iyr:2010 ecl:gry
|
||||
|
||||
pid:502547835 iyr:2014 hcl:#b6652a
|
||||
byr:1985 hgt:189cm eyr:2024
|
||||
|
||||
eyr:2024 hcl:#fffffd ecl:amb byr:1952
|
||||
pid:724639818
|
||||
iyr:2013 hgt:183cm
|
||||
|
||||
byr:2023
|
||||
iyr:2026 ecl:gry eyr:2032 hcl:3e0fc4 pid:5620497552
|
||||
hgt:84
|
||||
|
||||
cid:79
|
||||
hgt:68cm
|
||||
iyr:2021
|
||||
pid:#365b83 byr:1928
|
||||
ecl:#79a6b3 eyr:2027 hcl:54130e
|
||||
|
||||
hgt:74cm byr:1953
|
||||
cid:263 iyr:2018
|
||||
ecl:zzz
|
||||
hcl:#efcc98
|
||||
pid:154cm eyr:1951
|
||||
|
||||
cid:272 pid:0638528559 hcl:z hgt:63cm byr:2029 ecl:zzz
|
||||
eyr:2033
|
||||
|
||||
iyr:2016
|
||||
hgt:193cm hcl:#6b5442 pid:715518898 ecl:brn cid:195
|
||||
eyr:2025
|
||||
|
||||
ecl:oth
|
||||
eyr:2025 hgt:166cm byr:1944
|
||||
iyr:2017 pid:814141652
|
||||
|
||||
eyr:2025 cid:140 ecl:hzl hcl:#c0946f pid:824866056 iyr:2011 hgt:65in byr:1947
|
||||
|
||||
iyr:2016
|
||||
ecl:brn eyr:2021
|
||||
hgt:161cm
|
||||
byr:1984 hcl:#602927 pid:821539320
|
||||
|
||||
hgt:175cm cid:190 hcl:#ceb3a1 ecl:brn byr:1927 iyr:2017 eyr:2029 pid:836598854
|
||||
|
||||
eyr:2026 ecl:brn hgt:157cm pid:038645205 byr:1995
|
||||
iyr:2019 cid:339
|
||||
|
||||
ecl:brn hgt:70in hcl:#c0946f
|
||||
pid:535498918 cid:153
|
||||
iyr:2012 eyr:2030
|
||||
|
||||
byr:1995
|
||||
hcl:#efcc98 hgt:174cm eyr:2030 pid:180839761
|
||||
ecl:grn iyr:2010
|
||||
|
||||
hgt:59cm eyr:2035 byr:2021 iyr:2012 ecl:hzl pid:219328725 hcl:#888785
|
||||
|
||||
ecl:oth hgt:184cm byr:1984 iyr:2016
|
||||
hcl:#cfa07d
|
||||
|
||||
iyr:1998 byr:2024 ecl:lzr hgt:187 hcl:z eyr:1935 pid:#789b56
|
||||
|
||||
iyr:1967 hcl:z pid:828930046 hgt:59in
|
||||
cid:153
|
||||
byr:2021
|
||||
ecl:grn
|
||||
eyr:1935
|
||||
|
||||
byr:1991
|
||||
hcl:#341e13 ecl:gry iyr:2018
|
||||
hgt:67in pid:157970631 eyr:2021
|
||||
|
||||
byr:1941 hgt:169cm pid:322510952 hcl:#cfa07d cid:75 ecl:oth
|
||||
eyr:2021 iyr:2020
|
||||
|
||||
hcl:#7d3b0c iyr:2013 cid:78 hgt:167cm ecl:brn byr:1974 pid:237404828
|
||||
|
||||
pid:1567157833
|
||||
hcl:#7d3b0c iyr:2025 eyr:2023
|
||||
byr:2002 ecl:oth hgt:191cm
|
||||
|
||||
ecl:amb iyr:2014 hgt:182cm pid:526612838
|
||||
cid:287 eyr:2025 byr:1988
|
||||
hcl:#866857
|
||||
|
||||
hcl:#866857 hgt:174cm byr:1992 eyr:2028 iyr:2015
|
||||
|
||||
eyr:2029
|
||||
hgt:190cm
|
||||
hcl:#18171d
|
||||
cid:245
|
||||
ecl:oth pid:3636033742 byr:2024
|
||||
iyr:2019
|
||||
|
||||
byr:1972 hgt:163cm eyr:2020 hcl:#b6652a
|
||||
pid:360516396 iyr:2019 ecl:grn
|
||||
|
||||
iyr:1997 ecl:#be02d2
|
||||
eyr:2020 cid:259 byr:1953
|
||||
hcl:#6b5442
|
||||
hgt:177cm pid:978155362
|
||||
|
||||
pid:377596476 cid:153
|
||||
eyr:2025 byr:2000 hgt:181cm iyr:2014 hcl:#abc5cb ecl:hzl
|
||||
|
||||
cid:171 ecl:lzr iyr:2013 eyr:1973 byr:2004
|
||||
pid:#267099 hgt:101
|
||||
|
||||
hcl:#623a2f
|
||||
pid:029193661
|
||||
hgt:183cm
|
||||
ecl:hzl eyr:2029 iyr:2013
|
||||
byr:1977
|
||||
|
||||
ecl:amb eyr:2021 hgt:159cm byr:1970 cid:152
|
||||
hcl:#b6652a iyr:2020 pid:180512119
|
||||
|
||||
eyr:2025
|
||||
ecl:grn
|
||||
hgt:60in iyr:2013 pid:697352361
|
||||
hcl:#18171d byr:1989
|
||||
|
||||
byr:1934 hgt:165cm pid:703537570 ecl:hzl iyr:2015
|
||||
hcl:#888785
|
||||
|
||||
ecl:gmt
|
||||
hcl:6dd6a5
|
||||
byr:1951
|
||||
pid:#7ab761 cid:304 iyr:1924 eyr:1953 hgt:71in
|
||||
|
||||
ecl:amb hcl:#733820 eyr:2030 hgt:178cm
|
||||
pid:692422832 iyr:2019
|
||||
cid:276
|
||||
|
||||
iyr:2012 ecl:oth
|
||||
pid:674969358
|
||||
eyr:2027 hgt:157cm cid:247 hcl:#a97842
|
||||
|
||||
byr:2017 eyr:2031 hgt:180cm hcl:#ceb3a1 pid:372071110
|
||||
iyr:2015 ecl:amb
|
||||
|
||||
hgt:165cm iyr:2015
|
||||
eyr:2021 ecl:amb byr:2000 cid:235
|
||||
|
||||
eyr:2027 hcl:#623a2f pid:595874068
|
||||
ecl:amb
|
||||
hgt:177cm iyr:2019 byr:1929
|
||||
|
||||
pid:8150929412 hgt:191in eyr:2031 cid:233 byr:2027
|
||||
iyr:2026 ecl:#e94348 hcl:z
|
||||
|
||||
hgt:65 byr:2009 iyr:2029 hcl:#fffffd eyr:1950 pid:950012410 cid:212 ecl:#5a6042
|
||||
|
||||
ecl:#44c561 hgt:178cm eyr:2021 pid:753771724
|
||||
iyr:2014
|
||||
hcl:#70adb2 byr:1989
|
||||
|
||||
iyr:2018 pid:809109448 ecl:amb hcl:#b6652a hgt:63in byr:1976 cid:96
|
||||
|
||||
byr:2021 ecl:grn pid:9284377919 iyr:2011 hgt:75cm hcl:#18171d eyr:2026
|
||||
|
||||
ecl:oth
|
||||
byr:1926
|
||||
hgt:63 iyr:1948 cid:61 hcl:a528d1 eyr:2034
|
||||
|
||||
byr:1978 pid:150503169 iyr:2015 ecl:grn hgt:172cm cid:70 eyr:2022 hcl:#7d3b0c
|
||||
|
||||
byr:1957 hcl:#cfa07d iyr:2010 ecl:amb eyr:2025 pid:921901279
|
||||
|
||||
ecl:utc pid:154cm
|
||||
byr:1964 eyr:1978 hgt:114 hcl:z
|
||||
|
||||
byr:1929 ecl:amb eyr:2028 iyr:2013
|
||||
hcl:#fffffd pid:479814281
|
||||
cid:105 hgt:64in
|
||||
|
||||
pid:949640425
|
||||
cid:205 hcl:#341e13 ecl:amb
|
||||
hgt:171cm byr:1998
|
||||
|
||||
hgt:190cm cid:113 ecl:grn eyr:2037
|
||||
hcl:#ceb3a1 pid:7994792779 iyr:2011
|
||||
|
||||
hgt:152cm iyr:2010
|
||||
byr:1992 eyr:2020
|
||||
hcl:#602927
|
||||
cid:66
|
||||
pid:604149642
|
||||
|
||||
eyr:2028
|
||||
byr:1961 hgt:71in
|
||||
iyr:2013 cid:135
|
||||
pid:534090716 hcl:#ceb3a1 ecl:oth
|
||||
|
||||
iyr:1937 byr:1995 cid:200
|
||||
eyr:2037 pid:#daf9af
|
||||
hcl:052017 ecl:zzz hgt:73cm
|
||||
|
||||
ecl:amb
|
||||
hcl:#a97842
|
||||
iyr:2018
|
||||
hgt:153cm
|
||||
cid:149 eyr:2023 pid:533403632
|
||||
|
||||
cid:275 ecl:brn iyr:2017 pid:087665205 byr:1945 hcl:#7d3b0c
|
||||
eyr:2025
|
||||
|
||||
eyr:2030 hgt:177cm hcl:#cfa07d iyr:2018 pid:734113761
|
||||
byr:1965
|
||||
|
||||
hgt:163cm byr:1924 ecl:blu cid:125
|
||||
eyr:2027 hcl:#fffffd pid:137238888
|
||||
|
||||
hgt:174cm hcl:#623a2f eyr:2023 ecl:gry pid:585758460
|
||||
iyr:2011
|
||||
|
||||
cid:183
|
||||
byr:1928 pid:471385060
|
||||
hgt:192cm
|
||||
ecl:oth iyr:2010 hcl:#623a2f eyr:2020
|
||||
|
||||
hgt:177cm
|
||||
cid:273 ecl:oth eyr:2020
|
||||
hcl:#efcc98
|
||||
iyr:2012 pid:246299733
|
||||
byr:1954
|
||||
|
||||
pid:052203766 cid:146 ecl:hzl byr:1974 hcl:#6b5442
|
||||
eyr:2030 hgt:173cm
|
||||
iyr:2011
|
||||
|
||||
hgt:167cm
|
||||
byr:1972 iyr:2010
|
||||
pid:783359411 ecl:hzl hcl:#9f8cc9 eyr:2028
|
||||
|
||||
iyr:2020 hcl:#18171d ecl:grn
|
||||
byr:1992
|
||||
hgt:189cm
|
||||
eyr:2023 pid:736882272
|
||||
|
||||
cid:230 ecl:utc iyr:2022
|
||||
pid:170cm
|
||||
byr:2015 hcl:#c0946f
|
||||
eyr:2031
|
||||
|
||||
cid:261
|
||||
byr:1922 hgt:170cm ecl:brn eyr:2021
|
||||
pid:593276915 hcl:#18171d
|
||||
iyr:2017
|
||||
|
||||
hcl:#341e13 pid:038417039 hgt:61in eyr:2025 iyr:2017
|
||||
cid:117
|
||||
|
||||
iyr:2017 eyr:2026 pid:441484223
|
||||
hgt:155cm byr:1968 hcl:#ceb3a1 ecl:hzl
|
||||
|
||||
eyr:2021
|
||||
hgt:64in
|
||||
ecl:oth hcl:#b6652a byr:1954 pid:204959612 iyr:2016
|
||||
|
||||
hcl:z eyr:1969
|
||||
pid:162cm ecl:#944b0f
|
||||
iyr:2030 byr:2029
|
||||
|
||||
hgt:114 eyr:2034 byr:2026 hcl:84fa1a
|
||||
pid:47909473
|
||||
iyr:2028
|
||||
ecl:utc
|
||||
|
||||
eyr:2025 ecl:blu hgt:157cm iyr:2014 hcl:#a97842 byr:1974 pid:702610675 cid:241
|
||||
|
||||
pid:732388109
|
||||
hcl:#6b5442 cid:272 eyr:2026 hgt:193cm
|
||||
ecl:amb byr:1982
|
||||
|
||||
eyr:2030 byr:1994
|
||||
hgt:177in ecl:amb pid:1589147420 iyr:2011 hcl:#4bf920
|
||||
cid:252
|
||||
|
||||
ecl:oth eyr:2022
|
||||
byr:1948
|
||||
pid:177cm cid:90 hgt:102 hcl:z iyr:2028
|
||||
|
||||
hgt:157cm pid:233347213
|
||||
hcl:z
|
||||
byr:2009 eyr:2027 cid:235 ecl:blu
|
||||
iyr:1965
|
||||
|
||||
ecl:blu iyr:2030 eyr:2028 hcl:#18171d pid:322593908 byr:1954
|
||||
cid:215 hgt:63in
|
||||
|
||||
hgt:72cm
|
||||
cid:345 pid:911728732 eyr:2025
|
||||
byr:2004 ecl:#0c4af7 hcl:3bb675
|
||||
|
||||
pid:171714794 byr:2019
|
||||
hcl:#866857
|
||||
cid:290 hgt:183in ecl:#d0c30f eyr:2032
|
||||
|
||||
iyr:2016 pid:905945155 hcl:#ceb3a1 byr:1958 hgt:159cm eyr:2028 cid:180 ecl:oth
|
||||
|
||||
hcl:efb614
|
||||
eyr:2022 hgt:177cm pid:46962273
|
||||
byr:1974
|
||||
ecl:#089bdd iyr:1988
|
||||
|
||||
pid:662993164 iyr:2011 eyr:2025 ecl:hzl
|
||||
byr:1942 hcl:#fffffd
|
||||
hgt:175cm
|
||||
|
||||
hcl:#7d3b0c iyr:2016 hgt:175cm eyr:2022 pid:953132241
|
||||
byr:1963 cid:261 ecl:grn
|
||||
|
||||
iyr:2013 hgt:180cm cid:318
|
||||
ecl:amb
|
||||
byr:1985 pid:439097817 eyr:2029 hcl:#602927
|
||||
|
||||
hgt:162cm ecl:blu
|
||||
pid:675749832 cid:73
|
||||
byr:1940 hcl:#888785
|
||||
eyr:2026
|
||||
|
||||
pid:275352007 iyr:2012 eyr:2020
|
||||
ecl:amb hcl:#623a2f hgt:175cm cid:317 byr:1988
|
||||
|
||||
hcl:z hgt:164in
|
||||
iyr:2026 eyr:1961 ecl:#2df35e pid:#5c9ed5 cid:341
|
||||
|
||||
pid:848086119 ecl:oth eyr:2021 iyr:2011 hgt:180cm byr:1923 hcl:#93461b
|
||||
|
||||
eyr:2028
|
||||
iyr:2014
|
||||
byr:1978
|
||||
hgt:184cm
|
||||
pid:966277564 ecl:hzl
|
||||
cid:176
|
||||
|
||||
hcl:#888785 ecl:amb cid:329 pid:835961958 byr:1927 eyr:2028 iyr:2016
|
||||
|
||||
pid:160cm eyr:2026 hcl:#08714b
|
||||
ecl:hzl iyr:1961
|
||||
hgt:156cm byr:1984
|
||||
|
||||
ecl:gry cid:302
|
||||
byr:1965
|
||||
iyr:2019 hcl:#ceb3a1 eyr:2027 pid:458192010 hgt:156cm
|
||||
|
||||
pid:058273969 byr:1942 eyr:2027
|
||||
hcl:#c0946f iyr:2013 hgt:179cm
|
||||
|
||||
iyr:2019 hgt:193in pid:52144528 eyr:2036
|
||||
cid:169 ecl:grt hcl:7e7039
|
||||
|
||||
hgt:192cm ecl:blu iyr:2015 pid:544936486 eyr:2024
|
||||
byr:1972 hcl:#c0946f
|
||||
|
||||
eyr:2000
|
||||
hcl:78de23 byr:2020
|
||||
hgt:171in pid:160cm cid:68
|
||||
iyr:1956 ecl:gmt
|
||||
|
||||
hcl:#733820 ecl:grn iyr:2018
|
||||
byr:2001 pid:770957230
|
||||
|
||||
cid:103 ecl:grn iyr:2018
|
||||
pid:068344094
|
||||
eyr:2023 hgt:69in byr:1984 hcl:#6b5442
|
||||
|
||||
hgt:193cm eyr:2021 ecl:grn hcl:#602927 byr:1938 iyr:2011
|
||||
|
||||
iyr:1931
|
||||
hcl:c0a318
|
||||
pid:99195939
|
||||
byr:2028 ecl:grt hgt:164 eyr:2017
|
||||
|
||||
eyr:1980
|
||||
ecl:zzz
|
||||
hgt:98 cid:161
|
||||
pid:#96fe01 hcl:z
|
||||
iyr:1974
|
||||
|
||||
byr:1936 hgt:176cm pid:56797167 iyr:2015
|
||||
ecl:#07ad47
|
||||
hcl:z
|
||||
|
||||
pid:48720181 hcl:270e76
|
||||
byr:2022
|
||||
hgt:180cm ecl:#dde399
|
||||
eyr:2035 iyr:2023
|
||||
|
||||
eyr:2030 byr:2022 iyr:2018 hgt:162in ecl:gry
|
||||
hcl:#63e2ec pid:615812600
|
||||
|
||||
ecl:grn
|
||||
cid:56 hcl:#623a2f eyr:2020 hgt:167cm byr:1971 iyr:2012
|
||||
pid:262692066
|
||||
|
||||
hgt:61 hcl:#efcc98 iyr:2011 eyr:2026
|
||||
byr:1938
|
||||
ecl:amb pid:385025739
|
||||
|
||||
pid:972423724 hcl:#602927 eyr:2027 ecl:oth iyr:2015
|
||||
hgt:158cm byr:1956
|
||||
|
||||
pid:530035096
|
||||
ecl:hzl
|
||||
iyr:2017
|
||||
eyr:2024 hcl:#888785 byr:1962 hgt:64in
|
||||
|
||||
byr:1935 eyr:2022 ecl:grn hcl:#7d3b0c pid:294714199
|
||||
|
||||
eyr:2029
|
||||
iyr:2013
|
||||
byr:1927 hgt:175cm pid:058261075 hcl:#cfa07d ecl:amb
|
||||
|
||||
ecl:blu pid:188764763 hgt:155cm byr:1921
|
||||
iyr:2018 eyr:2029 hcl:#b6652a
|
||||
|
||||
byr:1975 hcl:930e76 iyr:2019
|
||||
pid:169cm eyr:2009 hgt:191
|
||||
ecl:#d28c56
|
||||
|
||||
hcl:z
|
||||
pid:3190617557
|
||||
hgt:160cm cid:80 ecl:oth iyr:2022 eyr:2008
|
||||
byr:2016
|
||||
|
||||
hcl:#888785 byr:1999 ecl:blu cid:238 iyr:2018 hgt:160cm
|
||||
eyr:2028 pid:174517111
|
||||
|
||||
eyr:2035
|
||||
hcl:z byr:2020
|
||||
pid:262135957 cid:324 iyr:2016 hgt:161cm ecl:grn
|
||||
|
||||
byr:1936
|
||||
ecl:grn
|
||||
iyr:2013 hcl:#623a2f eyr:2029 hgt:166cm
|
||||
|
||||
hcl:#cfa07d hgt:159cm eyr:2021
|
||||
ecl:hzl
|
||||
iyr:2014 pid:816039817 byr:1935
|
||||
|
||||
pid:596634790 hgt:161cm
|
||||
eyr:2036 iyr:2016
|
||||
hcl:#7d3b0c byr:2015 ecl:brn
|
||||
|
||||
byr:1952
|
||||
hgt:157cm eyr:2024 cid:60 pid:876160626
|
||||
ecl:blu iyr:2011 hcl:z
|
||||
|
||||
hgt:193cm iyr:2020 eyr:2026
|
||||
pid:0136642346 ecl:hzl hcl:#efcc98 byr:1995
|
||||
|
||||
byr:1934 hgt:177cm
|
||||
pid:445993865
|
||||
ecl:brn iyr:2018
|
||||
eyr:2030
|
||||
hcl:#733820
|
||||
|
||||
eyr:2021 hgt:71in
|
||||
pid:918630878
|
||||
hcl:#602927 iyr:2017 byr:1943
|
||||
ecl:gry
|
||||
|
||||
ecl:#81de2c iyr:2021 hgt:176cm eyr:1947 hcl:#888785 pid:1370052400
|
||||
|
||||
ecl:amb
|
||||
byr:1922 iyr:2012 eyr:2022 pid:098866466 hcl:#18171d hgt:63in
|
||||
|
||||
eyr:2028 iyr:2010 hcl:184355
|
||||
byr:1968 pid:337089458 ecl:brn hgt:181cm
|
||||
|
||||
hcl:#733820 pid:225958483 ecl:gry eyr:2030 hgt:62in iyr:2012 byr:1987
|
||||
|
||||
eyr:1955
|
||||
hcl:03199c
|
||||
pid:#3e832e
|
||||
byr:2014 ecl:#453931 hgt:70cm
|
||||
|
||||
byr:1975
|
||||
ecl:blu hcl:#7d3b0c
|
||||
cid:169 pid:582470437 hgt:151cm
|
||||
iyr:2019 eyr:2027
|
||||
|
||||
iyr:2017 byr:1971 pid:343492418 hgt:150cm hcl:#fffffd eyr:2024
|
||||
|
||||
byr:1997
|
||||
eyr:2026
|
||||
cid:257 hcl:#7d3b0c ecl:blu hgt:166cm iyr:2016 pid:117625518
|
||||
|
||||
iyr:2014 cid:248 hgt:165cm hcl:#18171d pid:294270262
|
||||
byr:1925 ecl:amb
|
||||
eyr:2028
|
||||
|
||||
hgt:167in ecl:dne pid:174cm iyr:2019 byr:2005 hcl:b29331 cid:86
|
||||
|
||||
hcl:#733820 pid:259969636 eyr:2023
|
||||
ecl:hzl cid:317
|
||||
hgt:185cm byr:2025
|
||||
iyr:2012
|
||||
|
||||
hcl:#cfa07d hgt:152cm pid:807755992 iyr:2020
|
||||
byr:1922 ecl:grn eyr:2025 cid:241
|
||||
|
||||
pid:997807107 byr:1958 ecl:dne iyr:2013 eyr:2023 hcl:#18171d
|
||||
hgt:152cm
|
||||
|
||||
ecl:blu hgt:170cm
|
||||
byr:1932
|
||||
pid:775223495 eyr:2024 iyr:2015
|
||||
|
||||
iyr:2011
|
||||
ecl:grn hcl:#ceb3a1 pid:190577415
|
||||
hgt:63in
|
||||
eyr:2021
|
||||
byr:1986
|
||||
|
||||
ecl:oth eyr:2025 hgt:180cm
|
||||
pid:258195402 iyr:2017
|
||||
byr:1961
|
||||
cid:109 hcl:#888785
|
||||
|
||||
hgt:178cm byr:1952 eyr:2023 hcl:#733820
|
||||
pid:106939563 ecl:brn iyr:2012
|
||||
|
||||
hgt:188cm iyr:2012 hcl:#fffffd byr:1942
|
||||
ecl:brn pid:804371742
|
||||
|
||||
byr:1978 cid:120
|
||||
eyr:2026 pid:405714523 hgt:60in
|
||||
hcl:#a97842 ecl:blu
|
||||
iyr:2017
|
||||
|
||||
iyr:2015 byr:1958 ecl:grn
|
||||
hcl:#b6652a pid:#9e8af3
|
||||
eyr:2026 hgt:167cm
|
||||
|
||||
hgt:171cm hcl:#888785
|
||||
cid:274
|
||||
ecl:grn pid:919263460 eyr:2023 iyr:2020
|
||||
|
||||
pid:606726472 eyr:2022
|
||||
byr:2008
|
||||
ecl:zzz cid:72 hgt:173in
|
||||
|
||||
eyr:2032 byr:2004
|
||||
hcl:z iyr:2011 ecl:hzl
|
||||
pid:523494728
|
||||
hgt:70cm
|
||||
|
||||
hgt:169cm pid:755822781 byr:1984 ecl:hzl hcl:#6b5442 iyr:2014
|
||||
|
||||
eyr:2020
|
||||
byr:1942 cid:85
|
||||
hgt:157cm pid:558287447 hcl:#efcc98
|
||||
ecl:hzl
|
||||
|
||||
byr:1980 cid:225 pid:367501996 iyr:2016 ecl:grn hcl:#efcc98
|
||||
hgt:175cm eyr:2029
|
||||
|
||||
pid:264780775 hgt:182cm ecl:grn
|
||||
hcl:#18171d
|
||||
eyr:2024
|
||||
byr:1926 iyr:2013
|
||||
|
||||
byr:1969 iyr:2015
|
||||
eyr:2026 ecl:blu
|
||||
hcl:#fffffd
|
||||
pid:005695878 cid:273
|
||||
|
||||
ecl:brn byr:2006 hgt:152cm
|
||||
hcl:#888785
|
||||
pid:171cm cid:249 iyr:2026
|
||||
eyr:2022
|
||||
|
||||
byr:2011 iyr:2020 ecl:zzz hcl:z pid:412624100
|
||||
eyr:2031
|
||||
|
||||
cid:111 hcl:df9bd0
|
||||
iyr:2022 ecl:#32fdf9
|
||||
byr:2017 eyr:2000
|
||||
hgt:166in pid:0654651026
|
||||
|
||||
eyr:2021
|
||||
ecl:gry pid:587324819 hgt:187cm byr:1951 hcl:#6b5442
|
||||
|
||||
iyr:2011
|
||||
pid:180780096 hcl:#623a2f ecl:amb hgt:160cm byr:1991 eyr:2026
|
||||
|
||||
byr:2022 hgt:152cm eyr:2023 cid:70 ecl:grn
|
||||
hcl:e0a24e
|
||||
iyr:1959 pid:77110462
|
||||
|
||||
pid:251982311 byr:1994 ecl:gry hgt:165cm eyr:2021
|
||||
hcl:#623a2f
|
||||
iyr:2019
|
||||
|
||||
ecl:blu byr:1945
|
||||
cid:241
|
||||
pid:732768808 hcl:#efcc98
|
||||
hgt:171cm eyr:2020 iyr:2012
|
||||
|
||||
cid:243 eyr:2001
|
||||
hcl:01a022
|
||||
hgt:162 pid:507703455
|
||||
byr:2003 ecl:#c6a07b
|
||||
iyr:1941
|
||||
|
||||
hcl:#733820 cid:150
|
||||
ecl:hzl pid:843607639 hgt:190cm
|
||||
byr:1958
|
||||
eyr:2025
|
||||
|
||||
eyr:2030
|
||||
pid:489370607 iyr:2014 ecl:oth hcl:#cfa07d byr:1995 hgt:193cm
|
||||
|
||||
hgt:68in
|
||||
byr:1933
|
||||
iyr:2010 ecl:brn
|
||||
pid:380075958
|
||||
hcl:#623a2f cid:279
|
||||
eyr:2025
|
||||
|
||||
iyr:2019
|
||||
byr:2001
|
||||
hcl:#cfa07d ecl:brn pid:349877352
|
||||
hgt:161cm eyr:2029
|
||||
|
||||
hgt:171cm
|
||||
eyr:2040 ecl:dne hcl:#6b5442 iyr:2020 byr:1990
|
||||
|
||||
hcl:#fffffd
|
||||
hgt:154cm
|
||||
byr:1979 eyr:2020 iyr:2018
|
||||
pid:118713281 cid:174
|
||||
|
||||
hcl:#7d3b0c eyr:2030 ecl:brn iyr:2017
|
||||
cid:184 hgt:180cm pid:504181498 byr:1925
|
||||
|
||||
hgt:150cm
|
||||
eyr:2020 byr:1999 hcl:#a97842 iyr:2011 ecl:grn pid:620166468
|
||||
|
||||
hcl:#602927
|
||||
iyr:2015
|
||||
byr:1928
|
||||
pid:083747352
|
||||
eyr:2027 hgt:193cm
|
||||
ecl:hzl
|
||||
|
||||
byr:1938 ecl:gry
|
||||
pid:511669464 eyr:1973 hgt:70cm
|
||||
cid:262 iyr:2015 hcl:#c0946f
|
||||
|
||||
eyr:2029
|
||||
byr:1923 hgt:160cm hcl:#7d3b0c iyr:2013 pid:525837692 ecl:gry
|
||||
|
||||
hcl:#602927 eyr:2025
|
||||
pid:232338168 hgt:174cm cid:322 iyr:2010 ecl:oth
|
||||
|
||||
hgt:192in cid:126 hcl:#6b5442
|
||||
pid:101406211 byr:1922 ecl:hzl eyr:2022 iyr:2013
|
||||
|
||||
eyr:2026 ecl:amb
|
||||
byr:1921
|
||||
cid:336
|
||||
iyr:2020 hgt:182cm pid:533626984
|
||||
|
||||
pid:411943955 ecl:amb eyr:2025 hgt:166cm byr:1964 hcl:#341e13 cid:285
|
||||
iyr:2010
|
||||
|
||||
ecl:grn byr:1933 eyr:2024
|
||||
hgt:153cm
|
||||
hcl:#5cfb31 iyr:2019 pid:773885967
|
||||
|
||||
ecl:hzl pid:426060511
|
||||
hgt:159cm
|
||||
byr:1922 hcl:#6ffd04 iyr:2017
|
||||
|
||||
byr:2025 pid:#097d1b iyr:2020 eyr:2029 hcl:73d113 hgt:69cm ecl:utc
|
||||
|
||||
ecl:amb hgt:170cm eyr:2025 byr:1930 iyr:2018 hcl:#733820
|
||||
cid:262
|
||||
|
||||
iyr:2019
|
||||
eyr:2021
|
||||
cid:65 pid:258615618
|
||||
ecl:oth byr:1987
|
||||
hcl:#efcc98
|
||||
hgt:178cm
|
||||
|
||||
hcl:z eyr:1980 ecl:#1c5fd1 hgt:65cm byr:2014
|
||||
cid:222 pid:#c69fd5 iyr:2020
|
||||
|
||||
cid:271 pid:#4b8380 hcl:80fab0
|
||||
byr:2024 ecl:#20e25f
|
||||
iyr:1945
|
||||
eyr:1935 hgt:159cm
|
13
aoc2020/4_ex.txt
Normal file
13
aoc2020/4_ex.txt
Normal file
|
@ -0,0 +1,13 @@
|
|||
ecl:gry pid:860033327 eyr:2020 hcl:#fffffd
|
||||
byr:1937 iyr:2017 cid:147 hgt:183cm
|
||||
|
||||
iyr:2013 ecl:amb cid:350 eyr:2023 pid:028048884
|
||||
hcl:#cfa07d byr:1929
|
||||
|
||||
hcl:#ae17e1 iyr:2013
|
||||
eyr:2024
|
||||
ecl:brn pid:760753108 byr:1931
|
||||
hgt:179cm
|
||||
|
||||
hcl:#cfa07d eyr:2025 pid:166559648
|
||||
iyr:2011 ecl:brn hgt:59in
|
26
aoc2020/4_ex2.txt
Normal file
26
aoc2020/4_ex2.txt
Normal file
|
@ -0,0 +1,26 @@
|
|||
eyr:1972 cid:100
|
||||
hcl:#18171d ecl:amb hgt:170 pid:186cm iyr:2018 byr:1926
|
||||
|
||||
iyr:2019
|
||||
hcl:#602927 eyr:1967 hgt:170cm
|
||||
ecl:grn pid:012533040 byr:1946
|
||||
|
||||
hcl:dab227 iyr:2012
|
||||
ecl:brn hgt:182cm pid:021572410 eyr:2020 byr:1992 cid:277
|
||||
|
||||
hgt:59cm ecl:zzz
|
||||
eyr:2038 hcl:74454a iyr:2023
|
||||
pid:3556412378 byr:2007
|
||||
|
||||
pid:087499704 hgt:74in ecl:grn iyr:2012 eyr:2030 byr:1980
|
||||
hcl:#623a2f
|
||||
|
||||
eyr:2029 ecl:blu cid:129 byr:1989
|
||||
iyr:2014 pid:896056539 hcl:#a97842 hgt:165cm
|
||||
|
||||
hcl:#888785
|
||||
hgt:164cm byr:2001 iyr:2015 cid:88
|
||||
pid:545766238 ecl:hzl
|
||||
eyr:2022
|
||||
|
||||
iyr:2010 hgt:158cm hcl:#b6652a ecl:blu byr:1944 eyr:2021 pid:093154719
|
37
aoc2020/5.py
Normal file
37
aoc2020/5.py
Normal file
|
@ -0,0 +1,37 @@
|
|||
def search(n):
|
||||
first7 = n[:7]
|
||||
lo = 0
|
||||
hi = 128
|
||||
for c in first7:
|
||||
mid = (lo + hi) // 2
|
||||
if c == "F":
|
||||
hi = mid
|
||||
elif c == "B":
|
||||
lo = mid
|
||||
x = lo
|
||||
|
||||
last3 = n[-3:]
|
||||
lo = 0
|
||||
hi = 8
|
||||
for c in last3:
|
||||
mid = (lo + hi) // 2
|
||||
if c == "L":
|
||||
hi = mid
|
||||
elif c == "R":
|
||||
lo = mid
|
||||
y = lo
|
||||
|
||||
id = 8 * x + y
|
||||
return id
|
||||
|
||||
ids = []
|
||||
with open("5.txt") as f:
|
||||
for line in f:
|
||||
line = line.strip()
|
||||
id = search(line)
|
||||
ids.append(id)
|
||||
ids.sort()
|
||||
print(ids)
|
||||
|
||||
print("ajsdoifapjds")
|
||||
for i in range(len(ids) - 3):
|
782
aoc2020/5.txt
Normal file
782
aoc2020/5.txt
Normal file
|
@ -0,0 +1,782 @@
|
|||
FBBBFBBLRR
|
||||
BFFFBBFLRR
|
||||
BFBFBBFLLR
|
||||
BBFFFFBLLR
|
||||
FBBFBBFRLL
|
||||
BBFFFFBRLL
|
||||
FBBFBFFLLR
|
||||
BFFBBBFRRL
|
||||
FFBFBFFRLR
|
||||
FBFFFFBLLL
|
||||
FBFFFFFLRL
|
||||
FFFBFBBRLR
|
||||
FFBFFFFLLL
|
||||
BFBBBFFLLL
|
||||
FFBBBFBRLR
|
||||
BFFBFBFLLL
|
||||
FBFBFFFLLL
|
||||
BBFFBBBRRL
|
||||
FBFFBFBLLL
|
||||
BFFBFBFRRL
|
||||
FBFBFFFRLR
|
||||
BFBBBFBRLL
|
||||
FFBBFBFLRL
|
||||
FBBFFBFRRR
|
||||
BFBBBBBLRL
|
||||
FFBFBFBLRL
|
||||
FFBFFFFLRL
|
||||
BFBFBFBRRR
|
||||
FBBBBBBRRR
|
||||
BFBFFBBRLL
|
||||
BBFFBFBLLL
|
||||
BFBFBBFRLL
|
||||
FBFBBBBRLR
|
||||
BFFBBFBRRL
|
||||
BFBBBFBRRR
|
||||
FBBBFBBLRL
|
||||
BBFFBBBLRL
|
||||
FFBBFFFRRR
|
||||
FBFFBFFLLL
|
||||
FBFFBBFRLL
|
||||
FBBBFBFRLL
|
||||
BFFBBFFLRL
|
||||
FFFBFBBRRR
|
||||
BFBBBBFRLR
|
||||
FBFBFBBRRL
|
||||
BFFFFFFRRL
|
||||
BFBBBBFRRL
|
||||
FBFBBFFRRL
|
||||
FBFFBFFRLR
|
||||
FBBFFBBRRR
|
||||
FBFBBFFRRR
|
||||
FFFBBFFRLR
|
||||
BBFFBFBRRL
|
||||
FBBBBBFRRR
|
||||
BFBBBBBRLL
|
||||
BFFBFFBLRL
|
||||
FBBBFFBRRR
|
||||
BFFFBBFRLR
|
||||
FFBFBBBRLL
|
||||
BFBBBFFRLL
|
||||
BFBBFBFRRR
|
||||
FBFBFBBLLL
|
||||
BBFBFBBRLL
|
||||
FBBFFBBRLR
|
||||
FFBBFBFLRR
|
||||
FBFFFFFRLL
|
||||
BFBFBBBRLR
|
||||
FBFFFFBLRR
|
||||
FBFFFFBRLL
|
||||
BFFFFFFRLL
|
||||
BBFBFFFRRL
|
||||
BFBFBBBRRR
|
||||
FFBFFFBLRL
|
||||
BFFFBBBLLR
|
||||
FBFFBFFRLL
|
||||
FFFBFBBLRL
|
||||
BFBFBBFRRL
|
||||
FFBFFBBRLL
|
||||
FBBFBFFLRR
|
||||
FBFFFFFLLR
|
||||
FFBFFBFRLL
|
||||
FFBFFBFLRR
|
||||
FBFBBBFRLR
|
||||
FFBFBBFLLR
|
||||
BBFFBFBLLR
|
||||
FFBBBBBRRL
|
||||
BFFBBBBRLL
|
||||
FFBFBFFLLL
|
||||
BBFFFBBRRL
|
||||
FFBFFBFRRL
|
||||
BBFFBFFRLR
|
||||
FBFBBFFRLR
|
||||
FBBFFBFRRL
|
||||
FBBBFBBRRR
|
||||
FFBBBBBRRR
|
||||
BFFBBFBRLL
|
||||
BFBFBBFLLL
|
||||
FFBFBBBRRR
|
||||
BBFFFBBRRR
|
||||
BFFBFFBLRR
|
||||
FFFBBFFLRL
|
||||
BFFBBBFRLR
|
||||
BFBBFBBRLL
|
||||
BFBBFBBLLL
|
||||
FFBFBFBRRL
|
||||
BFFBBFFRRR
|
||||
FBFBBBBLLL
|
||||
FBFFFBFRRR
|
||||
BFFBFFFLRL
|
||||
FFFBFBBRRL
|
||||
FBFBFBBRRR
|
||||
FBBFBFBLLR
|
||||
FBBBFFBRLR
|
||||
FBFBFFBLLR
|
||||
FBFFBBBRLL
|
||||
FBFFFBBLRR
|
||||
BFFFBFFLLL
|
||||
BFBBBBBLLR
|
||||
FFBBFFBRLR
|
||||
BFBFBBFLRL
|
||||
BBFFBBBRRR
|
||||
FFBBFFFLRR
|
||||
BFBFFFFRLR
|
||||
BFBBBFBRRL
|
||||
BFFBBBBRLR
|
||||
BFFBFBBLLR
|
||||
BFFBBFFLLR
|
||||
FBFFBBBRLR
|
||||
FBFFBBBLLR
|
||||
BBFFBFFLLL
|
||||
BFFBFBFRRR
|
||||
BFBFFBFRLR
|
||||
FBFFFBBLRL
|
||||
FBBBFBFRRL
|
||||
BBFFFFBLLL
|
||||
FFBBBFFLRL
|
||||
BFFBFFFRLR
|
||||
FBBFBBFLLL
|
||||
FBFFBFFRRL
|
||||
FFBFFBBRLR
|
||||
BBFFBFFLRR
|
||||
FBFBBBBLLR
|
||||
FFBBBFFLRR
|
||||
BFBBFBFLLR
|
||||
FBBFBBFLLR
|
||||
FFBFFBBRRL
|
||||
BBFFFFBRRL
|
||||
FBBBBFBRRL
|
||||
FBFBFFFLLR
|
||||
BFBFBFBLLR
|
||||
FFBFBFBRRR
|
||||
BFFFBFFLLR
|
||||
BBFFBFFRLL
|
||||
FBBBFFBRLL
|
||||
FBBFFFFRRL
|
||||
FBBBFFFRRR
|
||||
BBFFFBBRLL
|
||||
BFFBBFFLRR
|
||||
BFFBFBBRLR
|
||||
BFFBFBBLLL
|
||||
BBFBFFBLLR
|
||||
FBBBBFFLLL
|
||||
BFFBBFBLRL
|
||||
FBBBBFBRRR
|
||||
FBBFBBBRRL
|
||||
BFFBBFFRLL
|
||||
BFFFFFBLLR
|
||||
BFFBBFBLRR
|
||||
FFBBFBFRRR
|
||||
BFBFFBFRRL
|
||||
BFFFFBBLRR
|
||||
FFFBBFBLRR
|
||||
BFFFBBBLRR
|
||||
FFBFBBFLRL
|
||||
FBBBFFFLLL
|
||||
FBFBFBFLRR
|
||||
FFFBBFBLLL
|
||||
FFBBFBBLLR
|
||||
FBBFBBFLRL
|
||||
FFBFFBBRRR
|
||||
FBBBBFFRRL
|
||||
FFFBBBFRLR
|
||||
FBBFFFBLRL
|
||||
BFFBFBBLRL
|
||||
BFFBFBFLRR
|
||||
BFFBFFBRRR
|
||||
FFBFBBBRRL
|
||||
BFFBFFFLLR
|
||||
BFFBBFBRLR
|
||||
FBBBFFFRRL
|
||||
BBFBFFBLRL
|
||||
BBFFFBBLLR
|
||||
FBFBFFFRRR
|
||||
BFFFBBBLRL
|
||||
FBFFBFFLLR
|
||||
BBFFFFFRLL
|
||||
FFBFFFBLLL
|
||||
BFBBFBBRLR
|
||||
BFFFFFBLLL
|
||||
BFBBFFFLLL
|
||||
FFBBBBFRLR
|
||||
BBFFFFFLLR
|
||||
BFFFFBFLRL
|
||||
FFBFFBBLLR
|
||||
BBFFBFFLLR
|
||||
BFBFFBFRRR
|
||||
FBFFBFFRRR
|
||||
BBFFFBFLLL
|
||||
FFBFFFFRRL
|
||||
FBBFBFFRRR
|
||||
FFBBFBBRRL
|
||||
FFBBBFFLLR
|
||||
BFFFFBBLLR
|
||||
FFBFBFBLLR
|
||||
BFFBBBBLLR
|
||||
FBBBBFBLLL
|
||||
BFBFBBBRLL
|
||||
FFBFBBFRRR
|
||||
FFFBFBBLLR
|
||||
FFFBBFBRRR
|
||||
FFFBBBBLRR
|
||||
FBBFFFFLRL
|
||||
FFFBBFFLRR
|
||||
FFBFBFFRLL
|
||||
FBBFBBBRLR
|
||||
FFBFBFBRLR
|
||||
FBBBFFBLRL
|
||||
BFFFFFFLRL
|
||||
BFFBBBBLRR
|
||||
FBBFFBBLRR
|
||||
BBFFBBFRRL
|
||||
FFBFBBBLLR
|
||||
FFBFFFFRRR
|
||||
FBFFFBBRRL
|
||||
BFBFFFBLLR
|
||||
FBBFBFBRRL
|
||||
BBFBFFBRLR
|
||||
FBBBBBFRLR
|
||||
BFFBBBFLRR
|
||||
BFFFFFBLRR
|
||||
BBFFBBFRLL
|
||||
FFFBBFFRRR
|
||||
FBBBBFFRLL
|
||||
FFBFFFFRLR
|
||||
BFFFBFFRRL
|
||||
FBBBBFFLRL
|
||||
BBFBFFFRLL
|
||||
BBFFFBBLRR
|
||||
FBBBFFFLLR
|
||||
BFFBFBFLRL
|
||||
FFBBBBFLLL
|
||||
BFFFBFFRLL
|
||||
FBBFFBFLLR
|
||||
BBFBFBBRRR
|
||||
FFBFFFBRLL
|
||||
FBFBBBFRLL
|
||||
BFBBFBBLRR
|
||||
FBBBBFFRLR
|
||||
BFFBBBBLLL
|
||||
FFFBBBBRLR
|
||||
FBBFBBBRLL
|
||||
FFBBBFBLRL
|
||||
BBFBFFBLRR
|
||||
FFBBFFFLLR
|
||||
FFBBFBFRLR
|
||||
BFBBBFBRLR
|
||||
FBBFFFFLLL
|
||||
BBFFFBFRRR
|
||||
FFBFBBFLLL
|
||||
FBBFBBBRRR
|
||||
BFBBFFBRRR
|
||||
FBBFFBFLLL
|
||||
FFBFBBBLRL
|
||||
FBFBBFBRRR
|
||||
FBFBFFFRLL
|
||||
BFFFFFFLLR
|
||||
FBFBBBFLLR
|
||||
BFBFFBFRLL
|
||||
BFBFFBBRLR
|
||||
BFFBBFBLLR
|
||||
BFFBFBBLRR
|
||||
BFBBBFFLRL
|
||||
BFBBFBFLRR
|
||||
BFBBBFFRLR
|
||||
FFFBBFFRRL
|
||||
BFFFBBFRRL
|
||||
BFFBFBFLLR
|
||||
BFBFFBBLRR
|
||||
BFBBBBBRRR
|
||||
FFBBFBBLRR
|
||||
BFFBBFFRLR
|
||||
FFBFBFBRLL
|
||||
BFBBBBFLRL
|
||||
FBBFBBFLRR
|
||||
FBFBBBFLRL
|
||||
FBFFFBBRRR
|
||||
BBFBFFFRRR
|
||||
FBFFBFBRLL
|
||||
FBBBBBBRLL
|
||||
FFBBBFFRRL
|
||||
FFBBFFFRLL
|
||||
FBFBBFBRLL
|
||||
FFFBBBBLLL
|
||||
BFBFBBBLLL
|
||||
FFFBBBFLLR
|
||||
FFBFBBFRLL
|
||||
BBFFBBBLLR
|
||||
FFFBBFBLRL
|
||||
FFBBFBBLLL
|
||||
FBFFFBFRLR
|
||||
BFBBFBBLRL
|
||||
FFFBFBFRLR
|
||||
BFBFFFBRLR
|
||||
FFBBBBBLLL
|
||||
FBFBFFBRRR
|
||||
BFFBBBBRRL
|
||||
FBBBBFBLLR
|
||||
BFBBFBFRRL
|
||||
BBFBFBFLLR
|
||||
BFFFBFBRRR
|
||||
FFFBBFBRRL
|
||||
BFBBBBFLLR
|
||||
FBBBFBFLLR
|
||||
FFBFFBFLRL
|
||||
BFFFBFBLLL
|
||||
BFBBBBBLRR
|
||||
BFBFBBBLRR
|
||||
BFFBFBBRLL
|
||||
FFBFBFFLRL
|
||||
FBBBFBBRRL
|
||||
BFFBBFFLLL
|
||||
FBFBFFBRLR
|
||||
FBBFFFFLRR
|
||||
FBBFBFBLRL
|
||||
BBFFBBBLRR
|
||||
BBFFBBFLLL
|
||||
FBBBBBBRRL
|
||||
BFFFFBFRRL
|
||||
BFFFFBBLRL
|
||||
BBFFFBFRLL
|
||||
BFFBBFFRRL
|
||||
FBBBFBFRLR
|
||||
FBFFBFBLLR
|
||||
FFBFFFFLRR
|
||||
FBBBBBBLRL
|
||||
FFBBFBBRLL
|
||||
FFBBFBBLRL
|
||||
FBFFFBBRLR
|
||||
FFBBFFFLLL
|
||||
BFFFFBFRRR
|
||||
BFBFBFBLLL
|
||||
FFFBBFFLLR
|
||||
FBBBFBBRLL
|
||||
BFFFFBBRLL
|
||||
FBFBFFBRRL
|
||||
BFBBBFBLLR
|
||||
BFFBBBBRRR
|
||||
BBFFFFFRLR
|
||||
BFFFBBBRRL
|
||||
BBFFFFFRRL
|
||||
BFFBFBFRLL
|
||||
BBFFFFFLRR
|
||||
FBFBBBBLRR
|
||||
FBFFBBBLRL
|
||||
BFBFBFFRLL
|
||||
FFFBBBBLLR
|
||||
FBFBBBBRRR
|
||||
FBBBBBFRRL
|
||||
BFBFFFBRRL
|
||||
BFBFFFBRRR
|
||||
BBFBFBBLRR
|
||||
FFBBBFBLLR
|
||||
FFBBBFBRLL
|
||||
BFBFFFFLLR
|
||||
BFBFBFFLRL
|
||||
FBFFFBBLLR
|
||||
BFFFFFBRLL
|
||||
BBFBFBBRRL
|
||||
BFBBFFFRLL
|
||||
BFFFFFFRLR
|
||||
FBFFBFBRRR
|
||||
BBFFBBFRRR
|
||||
FFBBBFFRRR
|
||||
FFBBBFFLLL
|
||||
BFBBFFFLRR
|
||||
FBBFFBFLRL
|
||||
FBFFFFBLLR
|
||||
BFBBBFBLRL
|
||||
BFFBBBFRRR
|
||||
BFBBBFFLLR
|
||||
BFFFBBBRRR
|
||||
BBFBFBFRRR
|
||||
FFBFFBFRLR
|
||||
FBBFFFFRLR
|
||||
BFBFBBFRRR
|
||||
BBFFBBFLRR
|
||||
FBBBFFBLRR
|
||||
BFBBFFBLRL
|
||||
FBFBBBBRRL
|
||||
FFFBBBFLRL
|
||||
FBBFFFBRLR
|
||||
FFFBBFFLLL
|
||||
BFFBFBBRRL
|
||||
BFFFBFBLRR
|
||||
FBBFFFBRRR
|
||||
FBBFFFBRRL
|
||||
FBBBBBBRLR
|
||||
FBFFFBFLRL
|
||||
BBFFBFBLRL
|
||||
FBBFFFBLLR
|
||||
BFBFFBBRRR
|
||||
FBFBBFFLRR
|
||||
FBBFFBBLLR
|
||||
FFBBBFFRLR
|
||||
BFFBFFFLLL
|
||||
FBBFFFFRLL
|
||||
BFBFFBBLRL
|
||||
BFBFFBFLLR
|
||||
BFBBFFFRRR
|
||||
BBFFFBFRLR
|
||||
FBFBBBFRRL
|
||||
FFBBFBBRLR
|
||||
BFFFFFFRRR
|
||||
BBFBBFFLLL
|
||||
BBFBFFBRRR
|
||||
FBBFFBBLLL
|
||||
FFBFBFBLRR
|
||||
BFBBFFFRRL
|
||||
BBFBFFFLRR
|
||||
FBBBBFBLRL
|
||||
FBBFBFBRRR
|
||||
FBFBFBBLRR
|
||||
FBFFBBBLLL
|
||||
FFBFBFFLRR
|
||||
BFBFBFFRRR
|
||||
BFBFBFFLRR
|
||||
BFFFFFFLRR
|
||||
FBFBFBBRLR
|
||||
FFBFFFFRLL
|
||||
FBBBFBFLRL
|
||||
BFBFBBFLRR
|
||||
FFBBFBBRRR
|
||||
FBFBFFFLRR
|
||||
BBFBFFBRRL
|
||||
BFBFBFFLLL
|
||||
FBFFBFBRLR
|
||||
FBBBBBBLLR
|
||||
FFBBBBFRLL
|
||||
BFBFBBBLLR
|
||||
FBFBBBBRLL
|
||||
BFBBBBFLLL
|
||||
FBFBFFBLRL
|
||||
FFFBBBBRRR
|
||||
BFFFFBFLLR
|
||||
BBFFFFBLRR
|
||||
BBFFFBFRRL
|
||||
FBBFBFFLLL
|
||||
BFFFBFBRLL
|
||||
FBBBFFBRRL
|
||||
FFFBFBBLRR
|
||||
BBFFBBFLRL
|
||||
BBFFBFFRRR
|
||||
BFFFFBFRLR
|
||||
FBFBBFBLRL
|
||||
FBFFBBFLLL
|
||||
FBFFFBBLLL
|
||||
FFBBFFBLRL
|
||||
FBBFBBFRLR
|
||||
FBBFBBBLRL
|
||||
FBFFFBBRLL
|
||||
BFBFBBBRRL
|
||||
BFBFBFBRLR
|
||||
FBFFBFFLRR
|
||||
BFFFBFFLRR
|
||||
BFBBBFFLRR
|
||||
FBBBBBFLLL
|
||||
FFBFBFFRRR
|
||||
BBFFBFFRRL
|
||||
BFBBBFBLLL
|
||||
FFBBFBFRLL
|
||||
FBBBFBFRRR
|
||||
FBFFBBBLRR
|
||||
BBFFFFBRRR
|
||||
FBFBFFFRRL
|
||||
BFFFBBFLRL
|
||||
FBBFFFBLLL
|
||||
BFBBFFBLLR
|
||||
BFBBFFBLLL
|
||||
FBFFBBFRRR
|
||||
BFFBBFBRRR
|
||||
BFFFFFBRLR
|
||||
FBBBBBBLLL
|
||||
FFBFBBFLRR
|
||||
FBFBFBBRLL
|
||||
BBFBFFFLLR
|
||||
BFFFFBBRRL
|
||||
BFFBFFBLLR
|
||||
BFFFBBFRLL
|
||||
BBFFFFFLRL
|
||||
FBFFFFFLLL
|
||||
BBFFBBBRLL
|
||||
BFBBFFBRRL
|
||||
BFFFBBBRLL
|
||||
FBFFBBFLRL
|
||||
BBFBFFBLLL
|
||||
FBFBBFBLRR
|
||||
FFFBBBFLRR
|
||||
BBFBFBFLRR
|
||||
BFBBBBFRRR
|
||||
BFFFBFFLRL
|
||||
FBFFFFBRRL
|
||||
BBFBFBFLLL
|
||||
BFFFBBBRLR
|
||||
FBFFBBFRRL
|
||||
FBBFFBBRRL
|
||||
FBFBFBFRLR
|
||||
BFFBFFFRRL
|
||||
FFFBFBBLLL
|
||||
BFBBFBFRLL
|
||||
BFFFBFBLLR
|
||||
FBBFBBFRRL
|
||||
FBBBBBFLRR
|
||||
FBFFBFBLRR
|
||||
FBBBFFBLLL
|
||||
BFBBBFFRRR
|
||||
BFBFFFFLRL
|
||||
FFBBFFBRRL
|
||||
BFFFFFFLLL
|
||||
FFBFFBBLRL
|
||||
FFFBBBFRLL
|
||||
BFFFBBFLLL
|
||||
FBBBFBBRLR
|
||||
BBFBFFFRLR
|
||||
BFFBFFBLLL
|
||||
FFBBFBFLLR
|
||||
FBFFBBBRRR
|
||||
BFBFFBFLRR
|
||||
FBFBFBBLRL
|
||||
FFBFFFBRRR
|
||||
FBBFFFFLLR
|
||||
BFBBBFFRRL
|
||||
FFBBBFFRLL
|
||||
FFFBFBFRRR
|
||||
FFBBBBFLRL
|
||||
BFBFBFBRLL
|
||||
FFFBBBFLLL
|
||||
BFBFFFFLRR
|
||||
BFFBFFBRRL
|
||||
BFBFFBBLLL
|
||||
FBBBBFBLRR
|
||||
FFBFFBFRRR
|
||||
FFBFFFBLLR
|
||||
FFBBFFFRRL
|
||||
BFBFFFFRLL
|
||||
BBFFFBBRLR
|
||||
FBFBBFBRRL
|
||||
BFFFFFBLRL
|
||||
FFBFFFFLLR
|
||||
FBFFFBFLLR
|
||||
FFFBBFBRLR
|
||||
BBFBBFFLRL
|
||||
FFBBBBBLLR
|
||||
BFBBFBFLLL
|
||||
BFBFFFFRRL
|
||||
BFBBFFBRLR
|
||||
FBBBFFFRLR
|
||||
FBBFFBFRLR
|
||||
BBFBFBBRLR
|
||||
FBBBFFBLLR
|
||||
FBBBFFFRLL
|
||||
FBFBFBFRRR
|
||||
BBFFBFBRRR
|
||||
FFBBBBBRLL
|
||||
FBFFBFBRRL
|
||||
FBFFBBFLRR
|
||||
FFFBBBFRRL
|
||||
FFBBFFBRLL
|
||||
BFBFFFBRLL
|
||||
FBFFFBFLLL
|
||||
FBBBBFFRRR
|
||||
FBBFBFBRLL
|
||||
BFFBFBFRLR
|
||||
FFBFBFBLLL
|
||||
FFBBFFBRRR
|
||||
FBFFFFBLRL
|
||||
FBBBFFFLRR
|
||||
FFBBBBFRRL
|
||||
FFBFBBBRLR
|
||||
FBBBBFFLRR
|
||||
BFBFBFBLRR
|
||||
BBFBFFFLRL
|
||||
FFFBBFBRLL
|
||||
FBBBBBFLRL
|
||||
FBBFBBBLLR
|
||||
BFBBFFFLLR
|
||||
FBFFFFFRLR
|
||||
BBFFFFBRLR
|
||||
FBFFFFFRRL
|
||||
FFBBFFFLRL
|
||||
FFBBBFBRRR
|
||||
BBFFFBBLRL
|
||||
FBBBBFBRLR
|
||||
FBFBBFFLRL
|
||||
FBFFBFFLRL
|
||||
FFBFFFBRRL
|
||||
FFBBBBFLLR
|
||||
FBBFBFBLRR
|
||||
FBFBBFBLLL
|
||||
FFBBBFBLLL
|
||||
BFFFFBBRRR
|
||||
BBFFFBFLRL
|
||||
FFFBBBBRLL
|
||||
FFBFFBBLLL
|
||||
FBFFFBFLRR
|
||||
FBFBFFBLLL
|
||||
BFFFBFFRRR
|
||||
FFBBFFBLRR
|
||||
BFBBFBFRLR
|
||||
FFBFBFFRRL
|
||||
BBFFFFBLRL
|
||||
FFBBFFFRLR
|
||||
BFBBFFBLRR
|
||||
BBFBFBFRLL
|
||||
FBFFFFBRLR
|
||||
BBFFBBFLLR
|
||||
FBBFFBBLRL
|
||||
BFFFFFBRRL
|
||||
BFBBFBFLRL
|
||||
BBFFBFBRLR
|
||||
BFFFFBFLRR
|
||||
BFBFBFBLRL
|
||||
FBFBFFFLRL
|
||||
BFFFBBFLLR
|
||||
BBFBFBBLRL
|
||||
BFFFFBBLLL
|
||||
BBFBFBBLLL
|
||||
BFBBBBBRRL
|
||||
FBFFBBFLLR
|
||||
FFBFFBBLRR
|
||||
FFBBFBFRRL
|
||||
FBFBBBFLRR
|
||||
FBFBBFFLLR
|
||||
FFBBBBBRLR
|
||||
FBFBBBFLLL
|
||||
FBBFBBFRRR
|
||||
FBBFBBBLLL
|
||||
BFBFFBFLRL
|
||||
FBFBFFBRLL
|
||||
BFBFBFFLLR
|
||||
FBBFFBFRLL
|
||||
BFFBBBFLLR
|
||||
BFFFFBBRLR
|
||||
BFFBBFBLLL
|
||||
BFFFFBFRLL
|
||||
FFBFBBFRLR
|
||||
BFFFBBBLLL
|
||||
FBFBFBFLLL
|
||||
BFBBBBBRLR
|
||||
BFBBBFBLRR
|
||||
FBBBFBFLLL
|
||||
FBFFBBFRLR
|
||||
BBFFBBBRLR
|
||||
FFBFBBFRRL
|
||||
BFBFBBFRLR
|
||||
FBFFFFFLRR
|
||||
BBFFFBFLRR
|
||||
FBBFBFFRLR
|
||||
BFBBFFFLRL
|
||||
FBFBBFBLLR
|
||||
BFFBBBFLRL
|
||||
BFFBBBFLLL
|
||||
BFBBFFFRLR
|
||||
FBFFBBBRRL
|
||||
BFFFBFBLRL
|
||||
FBBBBBFRLL
|
||||
BFFBBBBLRL
|
||||
FBBFFFBRLL
|
||||
FBBFBFFRLL
|
||||
FBBFFBFLRR
|
||||
FFBFBBBLLL
|
||||
FFBFBBBLRR
|
||||
BFBFFFBLLL
|
||||
FFBFFFBLRR
|
||||
FBFBBFBRLR
|
||||
FBFBBBFRRR
|
||||
FFFBFBFRLL
|
||||
FBFFFBFRLL
|
||||
BBFFBFBRLL
|
||||
FFFBBBBRRL
|
||||
FBFBFBBLLR
|
||||
BBFFBBBLLL
|
||||
FBBBBBFLLR
|
||||
BFBFFFFRRR
|
||||
FBBBBFFLLR
|
||||
BFBBBBFLRR
|
||||
BFBFFFBLRR
|
||||
BFFFBBFRRR
|
||||
FFFBBFBLLR
|
||||
BFBBBBFRLL
|
||||
BBFBFBFRRL
|
||||
BBFBFFFLLL
|
||||
FBFBFBFRLL
|
||||
FBFBFFBLRR
|
||||
BFBFBFBRRL
|
||||
BFBBFFBRLL
|
||||
BBFBFFBRLL
|
||||
BFBBFBBRRR
|
||||
FFBBBBFLRR
|
||||
BBFFFBBLLL
|
||||
FBBBFBBLLL
|
||||
FFBBBFBLRR
|
||||
BFBFBFFRLR
|
||||
BBFBFBBLLR
|
||||
BFBFFBFLLL
|
||||
FBFBBFFRLL
|
||||
FBFBFBFLRL
|
||||
FBBFFFBLRR
|
||||
BFBFFBBRRL
|
||||
FFBFBFFLLR
|
||||
FFBBFFBLLR
|
||||
FFFBBBFRRR
|
||||
BFFBFBBRRR
|
||||
FFFBBBBLRL
|
||||
FBBBBBBLRR
|
||||
FBBBFBFLRR
|
||||
FFBBBBFRRR
|
||||
FFBFFBFLLL
|
||||
BBFFBBFRLR
|
||||
FBFFFFFRRR
|
||||
FBBBFFFLRL
|
||||
BFFBFFBRLR
|
||||
FBFFFBFRRL
|
||||
BBFFFFFLLL
|
||||
FFBBFBFLLL
|
||||
BFFBFFBRLL
|
||||
FFBBFFBLLL
|
||||
BBFFFBFLLR
|
||||
FBBFBFBLLL
|
||||
BFFFFFBRRR
|
||||
BFBFBBBLRL
|
||||
FBBFFBBRLL
|
||||
BFFBFFFRLL
|
||||
BFFBFFFLRR
|
||||
BFFBBBFRLL
|
||||
FBFBBFFLLL
|
||||
FBFBFBFRRL
|
||||
BFBBFBBLLR
|
||||
FBFBBBBLRL
|
||||
BFFFBFBRLR
|
||||
FFFBFBFRRL
|
||||
BBFBBFFLLR
|
||||
FBBFBFFLRL
|
||||
FFBBBBBLRR
|
||||
FBBBBFBRLL
|
||||
BBFBFBFRLR
|
||||
BFBBBBBLLL
|
||||
FBBBFBBLLR
|
||||
FFFBBFFRLL
|
||||
FFFBFBBRLL
|
||||
FFBFFBFLLR
|
||||
BBFFFFFRRR
|
||||
BBFFBFFLRL
|
||||
FBFFFFBRRR
|
||||
BFBFFFBLRL
|
||||
BBFFBFBLRR
|
||||
FFBBBFBRRL
|
||||
FBFFBFBLRL
|
||||
FBBFBFBRLR
|
||||
BFBFBFFRRL
|
||||
BFFFBFBRRL
|
||||
BFFFBFFRLR
|
||||
BBFBFBFLRL
|
||||
FBBFBFFRRL
|
||||
BFBBFBBRRL
|
||||
BFFFFBFLLL
|
||||
FBBFBBBLRR
|
||||
BFBFFFFLLL
|
||||
FFBBBBBLRL
|
||||
BFBFFBBLLR
|
||||
FBFBFBFLLR
|
||||
FFBFFFBRLR
|
||||
FBBFFFFRRR
|
12
aoc2020/6.hs
Normal file
12
aoc2020/6.hs
Normal file
|
@ -0,0 +1,12 @@
|
|||
import Data.List
|
||||
import Data.List.Split
|
||||
|
||||
readlines :: FilePath -> IO [String]
|
||||
readlines = fmap (splitOn "\n\n" . init) . readFile
|
||||
|
||||
solution2 :: [[String]] -> Int
|
||||
solution2 = sum . (map $ length . foldr1 intersect)
|
||||
|
||||
main = do
|
||||
input <- readlines "6.txt"
|
||||
print (solution2 $ map (splitOn "\n") input)
|
15
aoc2020/6.py
Normal file
15
aoc2020/6.py
Normal file
|
@ -0,0 +1,15 @@
|
|||
with open("6.txt") as f:
|
||||
data = f.read().split("\n\n")
|
||||
def process(lines):
|
||||
return len(set("".join(lines.split("\n"))))
|
||||
print(sum(map(process, data)))
|
||||
|
||||
from functools import reduce
|
||||
with open("6.txt") as f:
|
||||
data = f.read().split("\n\n")
|
||||
def process(lines):
|
||||
lines = lines.strip()
|
||||
letters = reduce(set.intersection, map(set, map(list, lines.split("\n"))))
|
||||
print(repr(lines), letters)
|
||||
return len(letters)
|
||||
print(sum(map(process, data)))
|
2239
aoc2020/6.txt
Normal file
2239
aoc2020/6.txt
Normal file
File diff suppressed because it is too large
Load diff
53
aoc2020/7.py
Normal file
53
aoc2020/7.py
Normal file
|
@ -0,0 +1,53 @@
|
|||
import queue
|
||||
with open("7.txt") as f:
|
||||
edges = dict()
|
||||
edges2 = dict()
|
||||
import re
|
||||
pat = re.compile("""
|
||||
^(.*)\ bags?\ contain\
|
||||
(?:
|
||||
(?:no\ other\ bags)
|
||||
| (?: (\d+)\ (.*)\ bags? (,\ (\d+)\ (.*)\ bags?)* )
|
||||
)
|
||||
.$
|
||||
""", flags=re.VERBOSE)
|
||||
for line in f:
|
||||
a, b = line.split("contain")
|
||||
outer = a.strip().rstrip("bags").strip()
|
||||
if outer not in edges2:
|
||||
edges2[outer] = dict()
|
||||
inner = b.strip().rstrip(".").split(", ")
|
||||
# print(inner)
|
||||
if inner == ["no other bags"]: continue
|
||||
for n in inner:
|
||||
num = int(re.match("^(\d+)\s.*", n).groups()[0])
|
||||
color = re.sub("^(\d+)\s", "", n)
|
||||
color = re.sub("\sbags?$", "", color)
|
||||
# print(color)
|
||||
edges2[outer][color] = num
|
||||
if color not in edges:
|
||||
edges[color] = set()
|
||||
edges[color].add(outer)
|
||||
# print(edges)
|
||||
found = set()
|
||||
q = queue.Queue()
|
||||
q.put("shiny gold")
|
||||
while not q.empty():
|
||||
c = q.get()
|
||||
r = edges.get(c, set())
|
||||
# print(c, r)
|
||||
for c1 in r:
|
||||
if c1 not in found:
|
||||
q.put(c1)
|
||||
found.add(c1)
|
||||
print(len(found))
|
||||
|
||||
print(edges2)
|
||||
def visit(color):
|
||||
r = edges2.get(color, set())
|
||||
c = 1
|
||||
for col, n in r.items():
|
||||
c += n * visit(col)
|
||||
# print(f"{color} contains {c} other bags")
|
||||
return c
|
||||
print(visit("shiny gold") - 1)
|
594
aoc2020/7.txt
Normal file
594
aoc2020/7.txt
Normal file
|
@ -0,0 +1,594 @@
|
|||
dull silver bags contain 2 striped magenta bags, 2 dark coral bags, 1 bright orange bag, 4 plaid blue bags.
|
||||
dark plum bags contain 3 wavy teal bags.
|
||||
wavy turquoise bags contain 3 bright salmon bags.
|
||||
mirrored gold bags contain 3 wavy brown bags, 5 posh beige bags, 3 light crimson bags, 3 vibrant salmon bags.
|
||||
drab green bags contain 4 dull white bags, 1 posh indigo bag.
|
||||
faded lime bags contain 1 dim magenta bag, 1 wavy salmon bag, 4 dull purple bags.
|
||||
mirrored blue bags contain 5 bright orange bags, 1 muted black bag, 2 muted brown bags, 2 vibrant gold bags.
|
||||
faded crimson bags contain 4 wavy teal bags, 4 mirrored fuchsia bags, 3 plaid white bags.
|
||||
faded magenta bags contain 2 clear orange bags, 5 dull green bags, 2 pale white bags.
|
||||
pale red bags contain 5 shiny gold bags, 4 dull gold bags, 2 drab black bags.
|
||||
dark coral bags contain 1 light turquoise bag.
|
||||
faded chartreuse bags contain 4 shiny brown bags, 4 mirrored beige bags, 4 clear purple bags.
|
||||
muted coral bags contain 4 pale coral bags, 4 plaid brown bags.
|
||||
bright teal bags contain 5 striped blue bags, 4 faded orange bags, 2 faded crimson bags.
|
||||
wavy green bags contain 5 dim chartreuse bags.
|
||||
clear white bags contain 2 mirrored fuchsia bags.
|
||||
clear aqua bags contain 1 faded beige bag.
|
||||
vibrant yellow bags contain 5 posh brown bags.
|
||||
pale lavender bags contain 1 striped beige bag, 2 striped cyan bags.
|
||||
mirrored lime bags contain 3 bright orange bags.
|
||||
faded tan bags contain 2 drab beige bags.
|
||||
dark indigo bags contain 1 dark brown bag, 5 shiny beige bags, 1 vibrant indigo bag.
|
||||
drab teal bags contain 2 vibrant fuchsia bags, 3 muted green bags, 5 dotted magenta bags, 2 shiny lavender bags.
|
||||
shiny aqua bags contain 1 shiny gold bag, 4 clear white bags, 4 faded gold bags.
|
||||
dull bronze bags contain 4 vibrant teal bags, 1 vibrant violet bag.
|
||||
dark aqua bags contain 4 posh white bags.
|
||||
dim coral bags contain 2 light yellow bags.
|
||||
faded salmon bags contain 5 muted brown bags, 2 dotted red bags, 3 drab yellow bags, 4 dark red bags.
|
||||
bright lavender bags contain 5 wavy maroon bags, 5 light brown bags, 5 bright silver bags, 1 dark gray bag.
|
||||
mirrored cyan bags contain 4 dotted cyan bags, 5 striped orange bags, 1 vibrant gold bag.
|
||||
drab aqua bags contain 3 striped black bags, 4 dark salmon bags, 1 drab white bag, 4 faded crimson bags.
|
||||
striped purple bags contain 5 faded yellow bags, 2 faded brown bags.
|
||||
drab fuchsia bags contain 4 vibrant violet bags, 5 mirrored yellow bags.
|
||||
shiny red bags contain 3 faded cyan bags, 1 dull beige bag, 1 shiny blue bag, 5 dull cyan bags.
|
||||
mirrored teal bags contain 4 clear brown bags, 5 light bronze bags, 3 light teal bags, 2 pale tomato bags.
|
||||
dotted orange bags contain 3 dull white bags, 2 wavy blue bags.
|
||||
dotted lavender bags contain 1 vibrant aqua bag, 4 shiny magenta bags, 3 dull plum bags.
|
||||
pale crimson bags contain 4 muted cyan bags, 1 posh brown bag, 3 light magenta bags.
|
||||
shiny black bags contain 4 vibrant chartreuse bags, 1 mirrored yellow bag, 3 posh brown bags, 5 vibrant violet bags.
|
||||
clear bronze bags contain 5 dull violet bags, 3 pale plum bags.
|
||||
striped lavender bags contain 1 dark plum bag, 2 striped yellow bags.
|
||||
plaid indigo bags contain 2 plaid chartreuse bags.
|
||||
shiny teal bags contain 4 wavy gray bags, 4 drab teal bags, 1 dark silver bag.
|
||||
dull turquoise bags contain 1 wavy gray bag.
|
||||
striped brown bags contain 1 striped olive bag, 1 wavy olive bag, 5 posh brown bags.
|
||||
dotted magenta bags contain 4 drab silver bags, 3 light olive bags, 1 bright tan bag, 4 dull gold bags.
|
||||
plaid yellow bags contain 5 drab black bags, 1 wavy lavender bag, 1 drab silver bag.
|
||||
muted blue bags contain 5 posh aqua bags.
|
||||
shiny olive bags contain 4 dark salmon bags, 1 faded gold bag, 3 drab chartreuse bags, 4 dotted yellow bags.
|
||||
vibrant lime bags contain 4 shiny aqua bags, 1 bright maroon bag, 4 striped orange bags.
|
||||
dim crimson bags contain 5 faded crimson bags.
|
||||
vibrant gray bags contain 1 mirrored coral bag, 5 wavy beige bags, 3 drab turquoise bags.
|
||||
posh chartreuse bags contain 3 light plum bags, 2 pale green bags, 5 drab white bags.
|
||||
striped beige bags contain 5 dull red bags, 5 drab salmon bags, 3 vibrant salmon bags.
|
||||
dotted tan bags contain 4 wavy crimson bags, 4 shiny orange bags, 1 drab turquoise bag.
|
||||
vibrant aqua bags contain 1 vibrant gray bag, 5 light violet bags, 3 dim yellow bags.
|
||||
faded turquoise bags contain 2 faded yellow bags, 4 mirrored coral bags.
|
||||
mirrored purple bags contain 3 pale orange bags.
|
||||
dim white bags contain 1 drab turquoise bag.
|
||||
bright purple bags contain 5 muted chartreuse bags, 1 dotted yellow bag, 3 bright salmon bags.
|
||||
drab red bags contain 1 mirrored magenta bag.
|
||||
clear coral bags contain 4 drab black bags, 3 dark black bags.
|
||||
mirrored orange bags contain 1 muted chartreuse bag.
|
||||
wavy cyan bags contain 3 posh lime bags, 4 dark magenta bags, 4 vibrant turquoise bags.
|
||||
pale magenta bags contain 4 vibrant turquoise bags, 3 clear gold bags.
|
||||
posh gold bags contain 5 dotted lime bags, 5 wavy silver bags, 4 muted crimson bags, 1 dull yellow bag.
|
||||
clear silver bags contain 1 drab indigo bag.
|
||||
faded violet bags contain 2 mirrored bronze bags.
|
||||
muted turquoise bags contain 2 plaid green bags, 2 light yellow bags, 4 dark violet bags.
|
||||
striped bronze bags contain 4 striped white bags, 1 dim yellow bag, 5 clear aqua bags.
|
||||
muted aqua bags contain 5 plaid green bags.
|
||||
wavy teal bags contain no other bags.
|
||||
pale black bags contain 5 dark salmon bags.
|
||||
clear gold bags contain 2 plaid white bags, 5 drab coral bags, 5 pale coral bags.
|
||||
muted chartreuse bags contain 5 faded crimson bags.
|
||||
dotted fuchsia bags contain 1 plaid brown bag, 1 dark violet bag.
|
||||
bright tomato bags contain 1 bright blue bag.
|
||||
dim bronze bags contain 1 dotted green bag, 5 pale violet bags, 4 vibrant chartreuse bags, 3 striped yellow bags.
|
||||
bright beige bags contain 1 drab blue bag.
|
||||
vibrant olive bags contain 3 dotted olive bags.
|
||||
clear tomato bags contain 1 light gray bag, 2 light turquoise bags, 2 striped yellow bags.
|
||||
mirrored beige bags contain 3 light coral bags, 2 bright teal bags, 1 wavy magenta bag.
|
||||
shiny gold bags contain 3 pale silver bags, 3 mirrored yellow bags, 2 shiny black bags, 2 light magenta bags.
|
||||
plaid aqua bags contain 4 plaid crimson bags, 4 dim gray bags, 3 plaid orange bags, 2 dotted blue bags.
|
||||
light green bags contain 2 light violet bags, 5 striped violet bags, 5 drab brown bags, 4 dull white bags.
|
||||
vibrant beige bags contain 3 posh violet bags, 2 plaid blue bags, 4 shiny lavender bags, 5 wavy orange bags.
|
||||
drab orange bags contain 3 striped beige bags, 3 posh teal bags, 5 drab silver bags, 1 dark indigo bag.
|
||||
shiny orange bags contain 3 dark aqua bags, 4 clear beige bags, 2 mirrored lime bags, 3 dark violet bags.
|
||||
wavy maroon bags contain 3 vibrant chartreuse bags.
|
||||
wavy olive bags contain 5 dark aqua bags, 1 light yellow bag, 1 shiny crimson bag.
|
||||
dotted cyan bags contain 2 drab gold bags.
|
||||
muted cyan bags contain 1 clear gold bag, 4 dark plum bags, 2 wavy lavender bags, 5 vibrant indigo bags.
|
||||
posh cyan bags contain 1 light fuchsia bag, 1 dark maroon bag.
|
||||
faded bronze bags contain 2 muted salmon bags, 4 dim violet bags, 5 dark tan bags, 3 vibrant white bags.
|
||||
pale green bags contain 4 muted turquoise bags, 1 vibrant green bag, 1 drab white bag.
|
||||
clear brown bags contain 4 wavy teal bags, 4 drab violet bags.
|
||||
striped salmon bags contain 5 mirrored orange bags, 1 shiny yellow bag, 1 muted beige bag, 1 clear purple bag.
|
||||
posh brown bags contain 3 posh white bags, 4 drab chartreuse bags, 5 dark violet bags, 4 wavy teal bags.
|
||||
mirrored green bags contain 1 dim tan bag.
|
||||
bright yellow bags contain 2 striped indigo bags, 2 dark silver bags.
|
||||
wavy yellow bags contain 3 dotted gold bags, 3 posh green bags.
|
||||
light chartreuse bags contain 3 faded blue bags, 3 mirrored yellow bags, 3 shiny plum bags, 4 light red bags.
|
||||
dark lime bags contain 5 vibrant chartreuse bags, 2 clear brown bags, 1 posh brown bag.
|
||||
muted magenta bags contain 4 shiny silver bags, 2 dotted yellow bags, 4 pale fuchsia bags, 5 muted tan bags.
|
||||
light plum bags contain 4 drab gold bags.
|
||||
dim tomato bags contain 1 light silver bag.
|
||||
pale lime bags contain 4 dull blue bags.
|
||||
dim black bags contain 1 dark plum bag, 1 dull crimson bag, 5 wavy white bags, 2 plaid chartreuse bags.
|
||||
muted teal bags contain 3 dim black bags, 4 mirrored lavender bags, 5 dull indigo bags, 3 clear red bags.
|
||||
muted purple bags contain 1 mirrored red bag.
|
||||
dull coral bags contain 5 pale teal bags, 2 faded cyan bags, 4 pale black bags, 2 muted olive bags.
|
||||
vibrant red bags contain 4 light teal bags, 5 shiny fuchsia bags, 1 drab purple bag, 2 muted olive bags.
|
||||
mirrored tomato bags contain 4 posh brown bags.
|
||||
shiny coral bags contain 5 clear turquoise bags, 2 wavy salmon bags, 1 drab brown bag.
|
||||
wavy indigo bags contain 1 vibrant brown bag, 2 dim turquoise bags, 1 posh violet bag, 1 plaid green bag.
|
||||
dotted gold bags contain 5 pale aqua bags, 1 bright olive bag.
|
||||
dotted violet bags contain 2 drab olive bags, 1 plaid cyan bag, 2 posh beige bags.
|
||||
pale fuchsia bags contain 5 faded beige bags, 5 dark purple bags.
|
||||
shiny chartreuse bags contain 1 striped tan bag, 5 pale tomato bags.
|
||||
clear gray bags contain 1 bright fuchsia bag, 4 dotted olive bags, 2 light teal bags, 4 shiny magenta bags.
|
||||
vibrant tomato bags contain 1 clear crimson bag, 3 pale purple bags, 3 faded gray bags.
|
||||
light orange bags contain 5 plaid brown bags.
|
||||
shiny tomato bags contain 3 light olive bags, 5 dim silver bags, 3 posh violet bags, 2 striped lavender bags.
|
||||
faded green bags contain 2 dotted gold bags, 1 dark plum bag, 1 dull gray bag, 5 dark brown bags.
|
||||
dim gray bags contain 5 muted white bags, 2 mirrored yellow bags, 1 muted tomato bag.
|
||||
faded black bags contain 3 faded teal bags, 3 striped lavender bags, 2 striped blue bags, 4 muted lavender bags.
|
||||
clear lime bags contain 3 mirrored yellow bags, 1 light yellow bag.
|
||||
dark silver bags contain 4 wavy orange bags, 2 muted green bags.
|
||||
plaid black bags contain 3 wavy indigo bags, 1 pale red bag.
|
||||
mirrored black bags contain 5 dull black bags, 4 clear coral bags, 1 wavy olive bag, 4 dull silver bags.
|
||||
light coral bags contain 5 drab black bags, 1 dark magenta bag, 1 drab teal bag, 1 mirrored crimson bag.
|
||||
shiny yellow bags contain 5 faded indigo bags.
|
||||
posh plum bags contain 3 faded maroon bags, 2 vibrant indigo bags, 1 bright turquoise bag.
|
||||
faded olive bags contain 1 vibrant gray bag, 4 drab teal bags, 5 wavy teal bags.
|
||||
dim plum bags contain 1 plaid white bag, 4 wavy beige bags, 3 wavy green bags.
|
||||
muted tomato bags contain 5 dotted red bags, 1 drab purple bag, 1 light orange bag.
|
||||
clear fuchsia bags contain 1 mirrored olive bag, 2 faded salmon bags.
|
||||
striped violet bags contain 2 light olive bags, 1 plaid olive bag, 5 light white bags.
|
||||
dim aqua bags contain 2 vibrant purple bags, 5 drab silver bags.
|
||||
striped crimson bags contain 5 muted coral bags.
|
||||
bright indigo bags contain 3 muted gold bags.
|
||||
dotted black bags contain 4 shiny crimson bags, 5 dark salmon bags, 5 faded crimson bags, 2 vibrant magenta bags.
|
||||
faded indigo bags contain 1 drab tomato bag.
|
||||
bright bronze bags contain 1 wavy lime bag, 4 pale violet bags.
|
||||
drab turquoise bags contain 2 drab gold bags, 2 vibrant gold bags, 4 pale tomato bags.
|
||||
wavy black bags contain 2 dotted brown bags, 1 light salmon bag.
|
||||
posh green bags contain 1 striped olive bag, 5 vibrant turquoise bags, 4 pale coral bags.
|
||||
clear green bags contain 4 dull bronze bags, 4 shiny crimson bags, 1 light white bag.
|
||||
dull chartreuse bags contain 2 dim aqua bags, 3 shiny black bags.
|
||||
drab lime bags contain 1 wavy chartreuse bag, 4 mirrored chartreuse bags, 1 posh olive bag, 5 mirrored lavender bags.
|
||||
bright tan bags contain 4 muted tan bags, 5 shiny gold bags, 1 mirrored red bag, 3 dull crimson bags.
|
||||
dim maroon bags contain 3 clear red bags, 5 dark brown bags, 2 bright maroon bags, 1 muted teal bag.
|
||||
drab tomato bags contain 4 dim orange bags, 2 mirrored violet bags, 3 faded purple bags.
|
||||
muted gold bags contain 1 dim cyan bag.
|
||||
striped white bags contain 1 plaid white bag, 1 posh purple bag, 3 muted cyan bags, 2 pale crimson bags.
|
||||
wavy beige bags contain 2 plaid white bags, 3 dark brown bags.
|
||||
vibrant turquoise bags contain 2 muted turquoise bags, 3 plaid green bags, 1 shiny crimson bag.
|
||||
dark fuchsia bags contain 1 pale purple bag, 1 dim fuchsia bag, 3 light teal bags, 3 vibrant magenta bags.
|
||||
dotted aqua bags contain 1 bright white bag, 5 clear gold bags, 5 clear tomato bags.
|
||||
faded silver bags contain 1 light lime bag, 4 wavy gold bags.
|
||||
faded brown bags contain 4 light aqua bags.
|
||||
bright gray bags contain 3 faded red bags, 2 muted plum bags, 1 wavy brown bag.
|
||||
wavy tan bags contain 1 pale maroon bag, 5 posh black bags.
|
||||
bright blue bags contain 5 posh purple bags.
|
||||
striped gold bags contain 4 dull tan bags, 1 shiny crimson bag, 2 clear blue bags.
|
||||
bright magenta bags contain 4 shiny orange bags.
|
||||
dotted brown bags contain 4 faded teal bags, 5 mirrored coral bags.
|
||||
muted silver bags contain 5 striped black bags, 3 faded beige bags, 4 plaid crimson bags, 2 wavy brown bags.
|
||||
wavy purple bags contain 1 dim brown bag, 1 bright yellow bag, 5 shiny lime bags.
|
||||
dull plum bags contain 1 posh black bag, 4 vibrant fuchsia bags, 5 dull bronze bags.
|
||||
dotted red bags contain 5 striped tomato bags, 4 shiny orange bags, 4 clear magenta bags, 5 pale coral bags.
|
||||
light violet bags contain 2 bright beige bags, 5 mirrored plum bags, 3 wavy fuchsia bags, 1 clear tan bag.
|
||||
dark teal bags contain 3 dull gray bags, 2 dark aqua bags, 1 clear beige bag.
|
||||
light fuchsia bags contain 2 muted silver bags, 2 striped beige bags.
|
||||
posh blue bags contain 5 striped olive bags, 5 dim coral bags.
|
||||
light black bags contain 2 drab coral bags, 2 shiny indigo bags.
|
||||
pale chartreuse bags contain 5 pale tomato bags.
|
||||
drab gold bags contain 1 faded gold bag, 5 shiny gold bags.
|
||||
posh bronze bags contain 2 drab aqua bags, 5 pale gray bags.
|
||||
light tomato bags contain 5 wavy lime bags.
|
||||
dull tan bags contain 3 drab blue bags, 4 dull green bags, 4 clear violet bags.
|
||||
muted beige bags contain 5 clear white bags, 5 faded crimson bags.
|
||||
faded fuchsia bags contain 5 plaid purple bags, 1 shiny silver bag, 4 muted violet bags.
|
||||
bright green bags contain 5 dim teal bags, 5 shiny crimson bags, 5 clear crimson bags.
|
||||
mirrored fuchsia bags contain 4 posh white bags, 5 wavy teal bags, 2 dark violet bags.
|
||||
vibrant plum bags contain 2 posh yellow bags.
|
||||
plaid bronze bags contain 4 dotted coral bags, 4 dull green bags, 2 plaid chartreuse bags.
|
||||
plaid fuchsia bags contain 5 bright white bags.
|
||||
dull red bags contain 2 mirrored fuchsia bags, 3 vibrant violet bags, 2 bright olive bags, 1 dim orange bag.
|
||||
faded gray bags contain 1 dull purple bag, 2 posh salmon bags.
|
||||
wavy plum bags contain 4 pale violet bags, 3 striped magenta bags, 4 pale red bags.
|
||||
dark crimson bags contain 4 dim yellow bags, 1 dotted purple bag, 2 wavy indigo bags, 4 clear black bags.
|
||||
pale cyan bags contain 5 shiny coral bags, 4 shiny beige bags, 2 plaid olive bags.
|
||||
dull violet bags contain 3 wavy olive bags, 1 dull gray bag, 5 vibrant turquoise bags, 1 plaid purple bag.
|
||||
wavy chartreuse bags contain 1 dotted magenta bag, 3 bright orange bags, 1 mirrored red bag.
|
||||
dark cyan bags contain 5 dotted turquoise bags, 1 clear purple bag, 1 dim teal bag.
|
||||
posh coral bags contain 3 muted bronze bags.
|
||||
pale yellow bags contain 1 drab tomato bag.
|
||||
plaid turquoise bags contain 1 muted gray bag.
|
||||
dotted purple bags contain 5 posh silver bags, 4 dark salmon bags.
|
||||
light indigo bags contain 4 mirrored red bags, 4 light olive bags.
|
||||
faded plum bags contain 3 mirrored gold bags.
|
||||
faded coral bags contain 5 dull tan bags.
|
||||
clear indigo bags contain 5 mirrored magenta bags, 1 clear maroon bag, 1 bright blue bag, 5 light aqua bags.
|
||||
dim cyan bags contain 5 plaid green bags.
|
||||
dotted maroon bags contain 5 pale maroon bags, 2 dark indigo bags.
|
||||
faded beige bags contain 1 plaid chartreuse bag.
|
||||
striped indigo bags contain 1 dark gray bag, 3 drab olive bags.
|
||||
clear yellow bags contain 4 dull gray bags, 1 muted green bag.
|
||||
light lavender bags contain 4 pale coral bags, 2 light yellow bags, 2 light indigo bags.
|
||||
light turquoise bags contain 5 pale fuchsia bags, 5 vibrant fuchsia bags, 5 vibrant magenta bags, 3 pale indigo bags.
|
||||
light purple bags contain 2 light cyan bags.
|
||||
bright gold bags contain 1 dark aqua bag.
|
||||
muted bronze bags contain 2 light teal bags.
|
||||
striped gray bags contain 2 light cyan bags, 1 pale black bag, 5 plaid plum bags.
|
||||
wavy orange bags contain 2 pale coral bags, 2 dim coral bags.
|
||||
wavy silver bags contain 2 posh white bags, 1 faded beige bag.
|
||||
clear chartreuse bags contain 1 vibrant lime bag, 2 faded plum bags, 1 striped chartreuse bag, 5 clear maroon bags.
|
||||
vibrant tan bags contain 3 striped lime bags, 4 pale maroon bags, 2 muted turquoise bags, 4 dark lime bags.
|
||||
posh aqua bags contain 2 muted tan bags, 2 shiny blue bags, 2 posh purple bags.
|
||||
bright orange bags contain no other bags.
|
||||
drab coral bags contain no other bags.
|
||||
light white bags contain 5 striped yellow bags.
|
||||
wavy violet bags contain 1 pale silver bag, 2 shiny fuchsia bags, 1 vibrant violet bag, 1 shiny plum bag.
|
||||
dark white bags contain 4 shiny maroon bags, 2 dim brown bags, 2 dark beige bags, 1 pale blue bag.
|
||||
vibrant violet bags contain 4 striped blue bags, 1 mirrored lime bag, 1 posh white bag.
|
||||
vibrant lavender bags contain 4 dotted magenta bags, 1 wavy red bag, 3 pale coral bags, 3 clear indigo bags.
|
||||
dark purple bags contain 4 posh white bags.
|
||||
mirrored lavender bags contain 5 clear brown bags, 2 faded gold bags.
|
||||
striped silver bags contain 3 light yellow bags, 1 drab violet bag.
|
||||
faded blue bags contain 3 muted violet bags, 4 wavy plum bags, 2 pale indigo bags, 1 wavy bronze bag.
|
||||
drab cyan bags contain 4 dim tomato bags, 1 plaid lavender bag, 4 pale red bags, 2 drab olive bags.
|
||||
clear lavender bags contain 3 wavy olive bags, 5 bright gray bags, 3 wavy beige bags, 2 dim violet bags.
|
||||
striped aqua bags contain 3 mirrored lavender bags.
|
||||
plaid tomato bags contain 2 posh cyan bags, 3 pale silver bags.
|
||||
plaid salmon bags contain 1 muted lavender bag, 5 muted green bags, 3 bright aqua bags.
|
||||
light blue bags contain 1 light white bag, 4 clear violet bags, 3 dark brown bags.
|
||||
dark blue bags contain 5 posh aqua bags.
|
||||
faded teal bags contain 3 light beige bags.
|
||||
plaid chartreuse bags contain 4 wavy teal bags.
|
||||
wavy gray bags contain 3 drab white bags, 2 muted lavender bags.
|
||||
pale maroon bags contain 4 faded crimson bags, 4 vibrant chartreuse bags, 1 plaid green bag, 1 vibrant turquoise bag.
|
||||
dark bronze bags contain 4 faded turquoise bags, 2 faded silver bags, 5 faded salmon bags.
|
||||
pale coral bags contain 3 mirrored yellow bags, 4 dark plum bags, 2 dark aqua bags, 4 plaid white bags.
|
||||
mirrored magenta bags contain 5 vibrant lime bags, 4 vibrant chartreuse bags, 3 striped aqua bags.
|
||||
mirrored salmon bags contain 4 striped salmon bags, 1 posh tan bag, 3 faded bronze bags.
|
||||
drab tan bags contain 5 vibrant violet bags.
|
||||
vibrant indigo bags contain 1 pale coral bag, 1 light teal bag, 2 light magenta bags.
|
||||
plaid lavender bags contain 1 striped silver bag, 1 clear lime bag.
|
||||
muted plum bags contain 2 plaid crimson bags.
|
||||
posh gray bags contain 5 mirrored lime bags.
|
||||
clear maroon bags contain 5 wavy bronze bags, 3 dim gold bags, 2 muted beige bags, 5 posh coral bags.
|
||||
striped maroon bags contain 2 dotted violet bags, 4 bright fuchsia bags, 4 striped aqua bags.
|
||||
faded yellow bags contain 2 wavy teal bags, 3 wavy lavender bags.
|
||||
posh black bags contain 1 drab silver bag, 2 clear white bags, 5 muted silver bags.
|
||||
muted indigo bags contain 1 dark green bag, 1 plaid chartreuse bag, 3 bright indigo bags, 5 wavy silver bags.
|
||||
wavy brown bags contain 5 faded red bags, 4 bright orange bags, 3 dim black bags.
|
||||
vibrant coral bags contain 5 plaid white bags, 5 vibrant indigo bags.
|
||||
wavy white bags contain 1 plaid green bag, 3 drab chartreuse bags, 1 posh white bag.
|
||||
pale violet bags contain 2 shiny orange bags, 4 plaid crimson bags.
|
||||
clear black bags contain 4 wavy blue bags, 5 plaid tan bags, 4 clear magenta bags.
|
||||
faded aqua bags contain 2 wavy teal bags.
|
||||
dotted green bags contain 5 shiny orange bags, 1 light magenta bag.
|
||||
bright coral bags contain 2 shiny fuchsia bags, 4 light lime bags, 1 shiny gold bag.
|
||||
vibrant fuchsia bags contain 1 vibrant chartreuse bag, 1 striped black bag.
|
||||
dark turquoise bags contain 5 shiny salmon bags, 2 light lavender bags.
|
||||
shiny green bags contain 1 pale silver bag, 4 dim red bags, 3 dark lime bags, 4 drab coral bags.
|
||||
clear red bags contain 5 light teal bags, 5 posh brown bags.
|
||||
dull gold bags contain 1 drab tan bag, 4 striped tomato bags, 5 pale maroon bags, 2 dim crimson bags.
|
||||
mirrored red bags contain 3 shiny crimson bags, 4 plaid brown bags, 2 shiny black bags.
|
||||
pale blue bags contain 1 wavy crimson bag, 4 faded beige bags, 4 shiny chartreuse bags.
|
||||
clear beige bags contain 4 plaid crimson bags, 5 shiny crimson bags.
|
||||
drab salmon bags contain 4 dim crimson bags, 3 light magenta bags, 1 clear violet bag.
|
||||
vibrant magenta bags contain 4 dim black bags.
|
||||
dark salmon bags contain 3 dull green bags, 4 faded red bags.
|
||||
posh white bags contain no other bags.
|
||||
light lime bags contain 5 dark aqua bags.
|
||||
vibrant salmon bags contain 4 striped tomato bags, 4 clear aqua bags.
|
||||
clear teal bags contain 3 striped gray bags.
|
||||
plaid silver bags contain 3 vibrant violet bags, 2 muted magenta bags, 3 dark olive bags, 4 mirrored gold bags.
|
||||
striped cyan bags contain 4 light gold bags, 2 dotted magenta bags.
|
||||
wavy bronze bags contain 1 plaid crimson bag, 1 dull gray bag, 5 dull tan bags, 1 mirrored teal bag.
|
||||
dim olive bags contain 4 vibrant lime bags, 2 shiny crimson bags, 2 muted turquoise bags.
|
||||
dotted blue bags contain 4 vibrant gray bags, 2 shiny beige bags.
|
||||
plaid blue bags contain 5 drab silver bags.
|
||||
dark olive bags contain 1 pale coral bag, 4 vibrant indigo bags.
|
||||
pale gray bags contain 3 dotted crimson bags, 1 striped magenta bag, 5 wavy white bags, 2 vibrant blue bags.
|
||||
mirrored brown bags contain 2 bright cyan bags, 4 plaid brown bags, 5 faded turquoise bags.
|
||||
wavy gold bags contain 1 wavy coral bag.
|
||||
pale teal bags contain 3 vibrant magenta bags.
|
||||
mirrored turquoise bags contain 4 mirrored olive bags, 5 bright yellow bags.
|
||||
dark chartreuse bags contain 4 dotted cyan bags, 5 shiny turquoise bags, 5 vibrant salmon bags, 4 wavy yellow bags.
|
||||
muted gray bags contain 3 dim orange bags.
|
||||
posh turquoise bags contain 4 clear lavender bags, 5 dim coral bags, 2 striped salmon bags.
|
||||
shiny cyan bags contain 4 striped gold bags.
|
||||
drab olive bags contain 2 plaid cyan bags, 1 mirrored lime bag.
|
||||
posh tomato bags contain 2 drab tan bags, 3 shiny orange bags.
|
||||
muted fuchsia bags contain 1 pale salmon bag, 3 wavy violet bags, 3 mirrored maroon bags.
|
||||
pale bronze bags contain 3 drab yellow bags, 3 muted chartreuse bags.
|
||||
striped green bags contain 3 striped orange bags, 2 dull green bags, 3 vibrant tan bags.
|
||||
faded orange bags contain 3 mirrored plum bags, 5 mirrored lime bags, 5 faded red bags.
|
||||
dull aqua bags contain 2 striped coral bags.
|
||||
dotted olive bags contain 4 faded salmon bags, 1 wavy green bag.
|
||||
vibrant silver bags contain 4 mirrored yellow bags, 2 dotted salmon bags, 3 drab silver bags.
|
||||
striped olive bags contain 1 mirrored fuchsia bag, 1 faded gold bag, 1 mirrored lavender bag.
|
||||
dark violet bags contain no other bags.
|
||||
mirrored olive bags contain 5 dull teal bags, 1 dim white bag.
|
||||
plaid tan bags contain 4 pale gray bags, 2 dim crimson bags, 1 clear violet bag, 1 wavy lime bag.
|
||||
pale tomato bags contain 5 posh green bags, 4 faded red bags.
|
||||
dim turquoise bags contain 1 shiny gold bag, 5 drab blue bags.
|
||||
muted lime bags contain 3 vibrant lime bags, 1 pale plum bag, 1 dark indigo bag.
|
||||
drab beige bags contain 3 vibrant magenta bags.
|
||||
posh beige bags contain 2 dark violet bags.
|
||||
muted olive bags contain 2 pale brown bags, 5 light gray bags, 3 wavy green bags, 2 drab tan bags.
|
||||
dim orange bags contain 1 clear lime bag, 4 faded beige bags, 2 mirrored fuchsia bags.
|
||||
dull salmon bags contain 4 striped coral bags, 3 striped aqua bags.
|
||||
dull maroon bags contain 3 clear brown bags, 5 dull magenta bags, 1 dim red bag.
|
||||
mirrored coral bags contain 5 muted tan bags, 4 dotted magenta bags, 5 dim olive bags.
|
||||
posh olive bags contain 4 dull magenta bags, 4 wavy blue bags, 2 drab yellow bags, 5 dotted gold bags.
|
||||
mirrored violet bags contain 2 pale fuchsia bags.
|
||||
drab bronze bags contain 4 drab chartreuse bags.
|
||||
wavy fuchsia bags contain 2 dark gray bags, 5 muted silver bags.
|
||||
pale plum bags contain 3 vibrant salmon bags, 5 drab chartreuse bags, 2 posh violet bags.
|
||||
mirrored aqua bags contain 2 pale aqua bags.
|
||||
bright silver bags contain 3 drab black bags, 5 dark salmon bags, 2 shiny beige bags, 2 posh lavender bags.
|
||||
plaid lime bags contain 4 faded teal bags, 5 pale brown bags, 5 dim red bags.
|
||||
dotted turquoise bags contain 3 dim olive bags, 2 mirrored blue bags, 3 dull lime bags, 4 vibrant lavender bags.
|
||||
drab maroon bags contain 5 bright red bags.
|
||||
wavy lavender bags contain 1 striped lime bag, 1 posh brown bag.
|
||||
shiny beige bags contain 5 shiny aqua bags, 3 muted teal bags, 5 clear gold bags.
|
||||
dark gold bags contain 4 clear maroon bags, 2 dotted maroon bags, 3 light red bags.
|
||||
light aqua bags contain 2 dim red bags, 3 pale red bags.
|
||||
posh teal bags contain 3 muted brown bags, 5 shiny gold bags, 5 dotted purple bags.
|
||||
dull lavender bags contain 5 shiny blue bags.
|
||||
dark tan bags contain 1 muted tan bag, 5 vibrant turquoise bags, 4 dark violet bags, 4 muted plum bags.
|
||||
light beige bags contain 2 mirrored fuchsia bags, 1 drab chartreuse bag, 1 muted tan bag.
|
||||
pale olive bags contain 3 clear brown bags.
|
||||
dark maroon bags contain 5 dull plum bags, 3 muted green bags.
|
||||
muted red bags contain 4 pale tan bags, 1 bright white bag.
|
||||
light tan bags contain 3 light purple bags, 2 pale aqua bags, 3 wavy bronze bags.
|
||||
clear magenta bags contain 3 vibrant chartreuse bags, 1 dim crimson bag.
|
||||
dark orange bags contain 2 posh cyan bags, 1 wavy brown bag, 5 dull black bags.
|
||||
dim lavender bags contain 5 drab fuchsia bags.
|
||||
dotted beige bags contain 5 light blue bags, 4 plaid tan bags, 2 wavy maroon bags, 5 dim crimson bags.
|
||||
dim green bags contain 3 plaid tan bags, 1 drab blue bag, 1 clear aqua bag.
|
||||
plaid brown bags contain 3 muted turquoise bags, 4 drab chartreuse bags.
|
||||
bright black bags contain 5 striped white bags.
|
||||
plaid gold bags contain 3 shiny lime bags, 1 plaid maroon bag, 4 bright blue bags.
|
||||
pale white bags contain 4 drab chartreuse bags, 3 pale tan bags, 5 pale aqua bags.
|
||||
drab violet bags contain no other bags.
|
||||
light magenta bags contain 3 faded crimson bags.
|
||||
light gold bags contain 1 dim lavender bag, 3 light magenta bags, 5 drab gold bags.
|
||||
plaid coral bags contain 1 vibrant salmon bag, 3 striped tomato bags, 3 posh blue bags.
|
||||
dotted white bags contain 1 wavy lavender bag.
|
||||
striped yellow bags contain 4 drab black bags, 2 faded red bags, 2 shiny gold bags, 4 dark aqua bags.
|
||||
dark yellow bags contain 5 wavy bronze bags, 5 bright purple bags.
|
||||
faded white bags contain 3 light tomato bags.
|
||||
muted white bags contain 5 faded gold bags, 1 plaid magenta bag, 3 drab white bags, 5 dim brown bags.
|
||||
faded red bags contain 1 posh brown bag, 2 muted turquoise bags, 3 plaid crimson bags, 4 shiny orange bags.
|
||||
dark red bags contain 5 shiny salmon bags.
|
||||
dull gray bags contain 2 posh white bags.
|
||||
bright salmon bags contain 2 shiny aqua bags, 3 dotted crimson bags, 1 drab violet bag, 4 pale chartreuse bags.
|
||||
mirrored chartreuse bags contain 1 vibrant magenta bag, 3 plaid salmon bags, 1 plaid chartreuse bag, 3 muted violet bags.
|
||||
vibrant orange bags contain 5 posh yellow bags.
|
||||
dark gray bags contain 1 plaid chartreuse bag, 2 drab violet bags, 1 bright chartreuse bag, 1 muted purple bag.
|
||||
mirrored crimson bags contain 3 drab coral bags, 5 dull lime bags.
|
||||
muted violet bags contain 3 dotted crimson bags, 3 light olive bags.
|
||||
shiny brown bags contain 2 dark lavender bags, 2 vibrant yellow bags, 1 dark black bag, 2 drab olive bags.
|
||||
muted green bags contain 1 dull cyan bag, 5 dull red bags, 4 pale chartreuse bags.
|
||||
drab yellow bags contain 3 pale tomato bags.
|
||||
dotted tomato bags contain 2 shiny magenta bags, 3 mirrored tomato bags, 5 plaid chartreuse bags.
|
||||
plaid red bags contain 3 pale cyan bags.
|
||||
bright red bags contain 1 shiny beige bag.
|
||||
plaid purple bags contain 5 dull gold bags.
|
||||
dark green bags contain 3 pale salmon bags, 3 dim brown bags, 2 wavy violet bags, 2 pale chartreuse bags.
|
||||
plaid orange bags contain 1 vibrant chartreuse bag, 2 dotted coral bags, 1 posh teal bag.
|
||||
plaid violet bags contain 1 shiny maroon bag.
|
||||
posh tan bags contain 1 shiny beige bag, 2 dim magenta bags, 1 dark violet bag.
|
||||
bright aqua bags contain 1 drab brown bag, 4 dotted purple bags.
|
||||
vibrant white bags contain 4 light gray bags, 2 dark fuchsia bags, 1 pale cyan bag.
|
||||
striped red bags contain 5 faded gold bags, 5 drab crimson bags, 3 faded turquoise bags.
|
||||
dull purple bags contain 1 pale crimson bag.
|
||||
shiny blue bags contain 1 pale violet bag, 5 mirrored plum bags, 3 posh white bags, 1 light yellow bag.
|
||||
clear salmon bags contain 2 striped lime bags, 1 dull violet bag.
|
||||
faded gold bags contain 3 light teal bags, 3 wavy teal bags.
|
||||
mirrored yellow bags contain 2 muted turquoise bags, 4 drab chartreuse bags.
|
||||
plaid gray bags contain 4 plaid plum bags.
|
||||
plaid white bags contain no other bags.
|
||||
drab black bags contain 2 mirrored yellow bags, 2 drab chartreuse bags, 1 shiny orange bag.
|
||||
dotted chartreuse bags contain 2 vibrant cyan bags, 2 light salmon bags, 3 vibrant red bags, 5 light turquoise bags.
|
||||
faded lavender bags contain 3 dark tomato bags, 5 muted lime bags, 4 light fuchsia bags, 4 dull lavender bags.
|
||||
vibrant cyan bags contain 2 clear crimson bags, 3 pale orange bags, 4 dull indigo bags, 3 light red bags.
|
||||
bright maroon bags contain 2 muted tan bags, 2 light teal bags.
|
||||
drab silver bags contain 3 bright chartreuse bags, 4 pale crimson bags, 5 dotted crimson bags, 5 faded yellow bags.
|
||||
drab purple bags contain 5 drab blue bags.
|
||||
dim gold bags contain 1 bright cyan bag, 5 dull white bags, 3 vibrant blue bags.
|
||||
dark beige bags contain 4 pale coral bags, 1 pale indigo bag.
|
||||
dotted salmon bags contain 2 drab violet bags, 5 posh white bags.
|
||||
vibrant crimson bags contain 5 faded teal bags, 3 dotted green bags, 1 clear maroon bag.
|
||||
dim chartreuse bags contain 3 clear white bags.
|
||||
bright violet bags contain 1 dim yellow bag, 1 muted purple bag, 4 muted teal bags, 5 striped cyan bags.
|
||||
dim magenta bags contain 1 pale aqua bag, 4 pale maroon bags, 5 mirrored red bags, 4 drab yellow bags.
|
||||
dim brown bags contain 5 faded salmon bags, 4 dotted magenta bags, 5 drab tomato bags, 2 faded teal bags.
|
||||
shiny lime bags contain 5 dotted black bags, 4 plaid turquoise bags, 2 dim tomato bags, 2 clear magenta bags.
|
||||
drab magenta bags contain 3 dark beige bags.
|
||||
faded cyan bags contain 2 striped lime bags, 4 bright red bags.
|
||||
dark brown bags contain 4 mirrored lime bags, 1 bright orange bag.
|
||||
posh fuchsia bags contain 5 shiny gold bags, 5 pale salmon bags, 1 light coral bag, 1 mirrored plum bag.
|
||||
shiny magenta bags contain 4 dark aqua bags.
|
||||
dark lavender bags contain 1 pale purple bag, 3 vibrant yellow bags.
|
||||
vibrant brown bags contain 2 posh teal bags, 1 wavy silver bag, 2 pale plum bags.
|
||||
muted black bags contain 5 faded crimson bags, 3 dim crimson bags, 4 vibrant magenta bags.
|
||||
muted brown bags contain 5 striped olive bags, 5 dark brown bags, 2 clear brown bags, 4 plaid white bags.
|
||||
pale orange bags contain 4 bright blue bags, 3 dark aqua bags, 1 clear gold bag.
|
||||
light cyan bags contain 3 muted silver bags.
|
||||
drab white bags contain 2 drab tan bags, 2 striped tomato bags, 4 dull gray bags, 5 drab blue bags.
|
||||
dim tan bags contain 3 mirrored bronze bags, 3 faded salmon bags, 4 drab purple bags.
|
||||
dull tomato bags contain 3 clear lime bags.
|
||||
wavy aqua bags contain 3 dotted orange bags, 5 shiny crimson bags.
|
||||
shiny lavender bags contain 5 vibrant blue bags, 4 pale purple bags, 1 wavy bronze bag, 2 posh violet bags.
|
||||
shiny white bags contain 5 faded blue bags, 5 pale cyan bags.
|
||||
wavy blue bags contain 4 vibrant chartreuse bags, 4 plaid brown bags, 3 plaid white bags, 2 faded gold bags.
|
||||
striped magenta bags contain 2 dark olive bags, 5 bright chartreuse bags.
|
||||
vibrant black bags contain 4 plaid white bags, 2 dull silver bags, 5 striped purple bags, 1 dark plum bag.
|
||||
dull green bags contain 2 dull crimson bags.
|
||||
vibrant chartreuse bags contain 2 bright orange bags, 4 dark aqua bags.
|
||||
dim violet bags contain 2 dark teal bags, 4 plaid brown bags, 4 mirrored yellow bags.
|
||||
clear blue bags contain 5 posh maroon bags.
|
||||
faded tomato bags contain 5 clear beige bags, 4 bright orange bags.
|
||||
posh violet bags contain 3 clear gold bags.
|
||||
striped tomato bags contain 2 shiny black bags.
|
||||
muted crimson bags contain 4 light aqua bags, 3 dim gold bags.
|
||||
clear tan bags contain 4 drab tomato bags, 4 mirrored bronze bags, 1 shiny chartreuse bag.
|
||||
posh magenta bags contain 4 posh red bags, 3 light bronze bags.
|
||||
dim blue bags contain 5 dim gray bags, 1 light turquoise bag, 5 muted bronze bags.
|
||||
drab plum bags contain 1 vibrant plum bag, 4 striped coral bags.
|
||||
pale silver bags contain 5 drab black bags.
|
||||
posh purple bags contain 2 dark brown bags.
|
||||
drab indigo bags contain 1 muted lavender bag, 2 posh salmon bags, 1 pale brown bag.
|
||||
striped blue bags contain 4 wavy teal bags.
|
||||
wavy magenta bags contain 1 dotted salmon bag, 1 drab black bag, 2 dull tan bags, 1 drab silver bag.
|
||||
pale turquoise bags contain 4 dark lime bags, 4 drab maroon bags.
|
||||
shiny tan bags contain 4 plaid coral bags, 3 dim black bags, 1 dull plum bag.
|
||||
light teal bags contain 3 dark violet bags.
|
||||
mirrored silver bags contain 1 striped salmon bag, 1 clear chartreuse bag, 2 clear orange bags, 2 posh aqua bags.
|
||||
wavy coral bags contain 2 muted teal bags, 1 wavy white bag.
|
||||
wavy crimson bags contain 1 shiny aqua bag, 3 muted beige bags.
|
||||
shiny bronze bags contain 1 posh indigo bag, 5 wavy blue bags, 1 faded gold bag, 3 striped tomato bags.
|
||||
shiny maroon bags contain 1 clear tomato bag, 1 wavy crimson bag.
|
||||
bright turquoise bags contain 3 dull tan bags, 3 vibrant teal bags.
|
||||
faded purple bags contain 1 plaid chartreuse bag.
|
||||
bright white bags contain 2 faded gold bags.
|
||||
clear orange bags contain 4 striped blue bags, 2 mirrored lime bags, 5 muted turquoise bags.
|
||||
clear cyan bags contain 1 dim plum bag, 3 shiny brown bags, 1 muted purple bag, 2 plaid lime bags.
|
||||
plaid teal bags contain 2 faded aqua bags, 4 wavy olive bags.
|
||||
dotted lime bags contain 5 posh olive bags, 2 pale orange bags.
|
||||
muted tan bags contain 1 dull gray bag, 2 dark aqua bags, 1 pale violet bag.
|
||||
striped orange bags contain 3 mirrored lime bags, 2 dull crimson bags, 4 faded gold bags, 3 pale silver bags.
|
||||
light olive bags contain 2 dark tan bags, 3 dim orange bags, 5 mirrored yellow bags.
|
||||
plaid magenta bags contain 2 wavy orange bags, 1 wavy chartreuse bag, 5 striped coral bags.
|
||||
dark magenta bags contain 3 bright white bags, 3 plaid purple bags, 3 striped black bags, 4 light beige bags.
|
||||
dark black bags contain 3 pale tan bags, 4 mirrored orange bags, 3 dull teal bags.
|
||||
posh orange bags contain 4 bright aqua bags, 1 dim crimson bag, 4 dim turquoise bags, 1 dotted bronze bag.
|
||||
dull crimson bags contain 4 vibrant violet bags.
|
||||
clear turquoise bags contain 1 muted brown bag, 2 dull yellow bags, 3 pale black bags, 1 plaid crimson bag.
|
||||
vibrant blue bags contain 2 clear beige bags.
|
||||
dull lime bags contain 4 shiny plum bags, 3 vibrant magenta bags, 3 dark olive bags.
|
||||
drab brown bags contain 4 clear green bags.
|
||||
mirrored plum bags contain 2 faded red bags.
|
||||
shiny fuchsia bags contain 2 muted cyan bags, 4 dark aqua bags, 3 light olive bags, 2 clear gold bags.
|
||||
vibrant purple bags contain 3 pale aqua bags, 3 dark lime bags, 1 bright chartreuse bag.
|
||||
bright crimson bags contain 1 vibrant gold bag.
|
||||
shiny plum bags contain 2 clear olive bags, 4 dark plum bags.
|
||||
shiny crimson bags contain no other bags.
|
||||
dull beige bags contain 1 mirrored coral bag.
|
||||
dim salmon bags contain 1 clear tomato bag, 2 shiny teal bags, 4 plaid olive bags, 3 plaid purple bags.
|
||||
muted maroon bags contain 2 muted violet bags, 4 dark white bags.
|
||||
pale aqua bags contain 4 dark beige bags, 1 muted brown bag.
|
||||
bright plum bags contain 4 dim black bags.
|
||||
striped tan bags contain 3 bright orange bags, 3 dark violet bags, 4 drab blue bags, 2 vibrant lime bags.
|
||||
clear crimson bags contain 3 wavy brown bags, 1 faded blue bag, 2 striped cyan bags.
|
||||
dim indigo bags contain 3 dotted lime bags, 1 dotted purple bag.
|
||||
pale tan bags contain 2 drab blue bags, 5 dim orange bags, 5 wavy olive bags, 3 striped tomato bags.
|
||||
vibrant bronze bags contain 5 clear red bags, 5 posh red bags.
|
||||
dotted bronze bags contain 1 light yellow bag.
|
||||
wavy salmon bags contain 2 striped olive bags, 4 muted teal bags.
|
||||
shiny turquoise bags contain 3 dark teal bags, 1 plaid yellow bag.
|
||||
faded maroon bags contain 1 vibrant salmon bag, 5 dotted magenta bags, 1 faded tan bag, 5 striped tomato bags.
|
||||
vibrant teal bags contain 4 light teal bags, 3 pale orange bags, 5 drab white bags.
|
||||
vibrant gold bags contain 1 muted cyan bag, 2 mirrored plum bags, 1 drab coral bag, 4 dark lime bags.
|
||||
bright cyan bags contain 2 muted silver bags, 5 plaid bronze bags, 3 light beige bags, 2 faded crimson bags.
|
||||
shiny silver bags contain 4 mirrored fuchsia bags, 2 clear violet bags, 3 faded beige bags.
|
||||
dark tomato bags contain 4 clear lime bags, 2 light beige bags, 3 bright turquoise bags.
|
||||
mirrored indigo bags contain 5 posh chartreuse bags, 5 clear tomato bags.
|
||||
dotted indigo bags contain 2 drab olive bags, 2 dim indigo bags, 5 dotted magenta bags.
|
||||
shiny gray bags contain 4 muted chartreuse bags, 4 plaid gray bags, 3 dull red bags, 5 striped orange bags.
|
||||
dim yellow bags contain 1 muted cyan bag, 4 mirrored fuchsia bags, 1 faded gold bag, 1 drab turquoise bag.
|
||||
bright lime bags contain 5 shiny bronze bags, 3 wavy aqua bags, 4 plaid turquoise bags.
|
||||
dotted gray bags contain 2 shiny gold bags.
|
||||
striped black bags contain 1 wavy teal bag, 5 dim chartreuse bags, 4 mirrored lavender bags.
|
||||
pale beige bags contain 2 posh black bags, 4 clear white bags.
|
||||
posh indigo bags contain 5 plaid white bags.
|
||||
dull blue bags contain 4 dark violet bags, 2 clear magenta bags, 4 dotted crimson bags.
|
||||
mirrored white bags contain 5 faded yellow bags.
|
||||
bright brown bags contain 3 pale gray bags.
|
||||
light gray bags contain 3 clear magenta bags, 5 wavy brown bags, 3 dotted salmon bags.
|
||||
muted orange bags contain 1 bright magenta bag, 1 bright plum bag.
|
||||
clear purple bags contain 1 shiny gold bag, 1 dark white bag.
|
||||
striped coral bags contain 5 pale gray bags, 3 wavy chartreuse bags.
|
||||
plaid green bags contain no other bags.
|
||||
plaid maroon bags contain 5 posh brown bags, 3 striped crimson bags, 4 plaid green bags.
|
||||
light maroon bags contain 3 muted gray bags, 5 dull crimson bags, 2 shiny maroon bags.
|
||||
pale purple bags contain 2 striped white bags, 3 plaid chartreuse bags, 1 mirrored lime bag.
|
||||
muted yellow bags contain 5 vibrant purple bags, 1 dark teal bag.
|
||||
plaid olive bags contain 1 light crimson bag, 1 faded gold bag, 1 vibrant blue bag.
|
||||
dim beige bags contain 4 muted silver bags, 3 mirrored beige bags, 4 striped violet bags.
|
||||
striped chartreuse bags contain 3 dull teal bags.
|
||||
muted salmon bags contain 2 posh salmon bags, 2 posh silver bags.
|
||||
dim red bags contain 2 drab blue bags, 4 plaid crimson bags, 3 vibrant gold bags.
|
||||
dull magenta bags contain 5 faded crimson bags, 1 shiny orange bag, 1 dark tan bag.
|
||||
plaid beige bags contain 1 vibrant turquoise bag.
|
||||
striped teal bags contain 2 dim chartreuse bags, 4 dark green bags.
|
||||
dotted plum bags contain 2 light cyan bags.
|
||||
dotted yellow bags contain 5 posh black bags, 5 dull tan bags, 2 dull violet bags, 5 muted plum bags.
|
||||
dotted coral bags contain 1 striped tomato bag, 2 light crimson bags, 3 clear violet bags.
|
||||
dull fuchsia bags contain 3 plaid purple bags, 4 mirrored red bags.
|
||||
dull yellow bags contain 5 vibrant violet bags, 2 dark olive bags.
|
||||
dull white bags contain 5 posh olive bags, 5 pale tomato bags, 2 bright teal bags.
|
||||
pale brown bags contain 3 dim crimson bags, 3 pale indigo bags, 1 dim chartreuse bag, 4 muted teal bags.
|
||||
shiny violet bags contain 1 muted tomato bag, 2 dull yellow bags, 1 drab teal bag.
|
||||
drab blue bags contain 3 vibrant gold bags, 4 drab black bags.
|
||||
posh lavender bags contain 5 shiny plum bags, 3 drab salmon bags, 4 dim brown bags, 4 plaid blue bags.
|
||||
dull teal bags contain 2 drab turquoise bags, 1 shiny crimson bag, 5 shiny aqua bags.
|
||||
shiny purple bags contain 3 drab orange bags, 4 dark red bags, 4 vibrant fuchsia bags, 2 light fuchsia bags.
|
||||
pale salmon bags contain 2 plaid chartreuse bags, 3 striped white bags.
|
||||
posh silver bags contain 4 clear magenta bags, 5 light magenta bags.
|
||||
light salmon bags contain 4 vibrant olive bags.
|
||||
striped turquoise bags contain 1 faded magenta bag, 3 shiny indigo bags, 4 striped lavender bags.
|
||||
dotted crimson bags contain 2 pale silver bags, 2 striped magenta bags, 1 striped white bag.
|
||||
dull brown bags contain 5 clear crimson bags, 1 dotted green bag, 4 dull magenta bags, 3 dim tan bags.
|
||||
plaid cyan bags contain 1 striped orange bag, 2 muted cyan bags.
|
||||
muted lavender bags contain 5 mirrored fuchsia bags.
|
||||
dim lime bags contain 1 muted black bag.
|
||||
light bronze bags contain 1 dull crimson bag, 5 dim chartreuse bags.
|
||||
dull olive bags contain 2 vibrant coral bags, 3 shiny teal bags, 4 plaid purple bags.
|
||||
posh yellow bags contain 5 dark lime bags, 3 mirrored plum bags.
|
||||
bright fuchsia bags contain 1 striped silver bag.
|
||||
posh maroon bags contain 4 dotted magenta bags, 4 posh yellow bags, 2 drab beige bags.
|
||||
posh salmon bags contain 2 muted green bags.
|
||||
mirrored gray bags contain 4 striped silver bags.
|
||||
dull cyan bags contain 2 bright orange bags, 4 dark plum bags.
|
||||
light crimson bags contain 3 drab fuchsia bags, 3 bright blue bags, 1 dark purple bag.
|
||||
light red bags contain 3 dim maroon bags, 4 muted green bags, 3 dotted olive bags.
|
||||
dull indigo bags contain 2 plaid brown bags, 1 wavy white bag, 2 vibrant turquoise bags, 5 drab chartreuse bags.
|
||||
drab crimson bags contain 2 vibrant salmon bags.
|
||||
posh red bags contain 3 mirrored violet bags, 1 striped tomato bag, 2 striped olive bags.
|
||||
drab chartreuse bags contain no other bags.
|
||||
posh lime bags contain 3 drab violet bags, 1 bright coral bag.
|
||||
wavy red bags contain 4 striped gray bags, 3 posh salmon bags, 1 dotted violet bag, 3 striped aqua bags.
|
||||
striped fuchsia bags contain 3 bright crimson bags, 3 dark silver bags, 1 clear magenta bag, 3 drab salmon bags.
|
||||
striped plum bags contain 2 drab tan bags, 5 pale gold bags, 1 dull white bag, 1 clear coral bag.
|
||||
mirrored maroon bags contain 1 dark magenta bag, 1 plaid purple bag, 2 light gray bags.
|
||||
shiny indigo bags contain 2 drab teal bags.
|
||||
dim silver bags contain 1 striped aqua bag, 3 dull tan bags, 3 striped tan bags, 2 wavy maroon bags.
|
||||
shiny salmon bags contain 5 faded beige bags.
|
||||
dull black bags contain 3 vibrant plum bags, 2 plaid chartreuse bags, 1 muted brown bag, 2 clear tomato bags.
|
||||
clear plum bags contain 3 striped maroon bags, 2 dark white bags.
|
||||
vibrant green bags contain 5 light orange bags, 5 mirrored magenta bags, 3 bright teal bags, 2 striped brown bags.
|
||||
drab gray bags contain 1 plaid maroon bag, 2 pale tan bags, 1 plaid white bag.
|
||||
wavy lime bags contain 2 clear gold bags, 2 bright chartreuse bags, 1 faded crimson bag.
|
||||
light silver bags contain 4 dim maroon bags, 1 mirrored teal bag.
|
||||
light brown bags contain 5 muted magenta bags.
|
||||
dim fuchsia bags contain 5 pale purple bags, 5 wavy orange bags, 5 clear lime bags.
|
||||
vibrant maroon bags contain 4 light gray bags.
|
||||
dim purple bags contain 2 muted white bags, 2 shiny aqua bags.
|
||||
clear olive bags contain 3 bright olive bags.
|
||||
drab lavender bags contain 4 mirrored crimson bags, 3 bright violet bags, 5 posh gold bags, 2 bright olive bags.
|
||||
light yellow bags contain 1 posh brown bag, 2 pale violet bags.
|
||||
plaid crimson bags contain 1 plaid green bag, 3 shiny crimson bags.
|
||||
pale indigo bags contain 3 clear aqua bags, 2 pale silver bags.
|
||||
mirrored bronze bags contain 4 muted tomato bags, 4 bright white bags, 1 faded crimson bag.
|
||||
dim teal bags contain 1 muted salmon bag.
|
||||
clear violet bags contain 2 dim coral bags, 2 faded beige bags.
|
||||
dotted silver bags contain 2 posh plum bags, 4 pale chartreuse bags.
|
||||
pale gold bags contain 2 vibrant gold bags, 1 dotted magenta bag.
|
||||
posh crimson bags contain 4 dull yellow bags, 3 clear fuchsia bags.
|
||||
dull orange bags contain 3 dull silver bags, 3 clear violet bags, 4 clear chartreuse bags, 3 faded salmon bags.
|
||||
striped lime bags contain 5 mirrored plum bags, 4 faded gold bags, 3 wavy white bags, 3 light teal bags.
|
||||
mirrored tan bags contain 4 dull silver bags, 4 light coral bags, 2 plaid lavender bags.
|
||||
wavy tomato bags contain 4 clear orange bags, 5 shiny fuchsia bags, 3 light red bags.
|
||||
dotted teal bags contain 5 dark salmon bags, 1 light indigo bag, 4 pale white bags, 5 clear olive bags.
|
||||
bright olive bags contain 1 dark tan bag, 4 striped orange bags, 3 bright orange bags.
|
||||
plaid plum bags contain 1 shiny maroon bag, 1 dotted coral bag.
|
||||
bright chartreuse bags contain 2 wavy blue bags.
|
9
aoc2020/7ex.txt
Normal file
9
aoc2020/7ex.txt
Normal file
|
@ -0,0 +1,9 @@
|
|||
light red bags contain 1 bright white bag, 2 muted yellow bags.
|
||||
dark orange bags contain 3 bright white bags, 4 muted yellow bags.
|
||||
bright white bags contain 1 shiny gold bag.
|
||||
muted yellow bags contain 2 shiny gold bags, 9 faded blue bags.
|
||||
shiny gold bags contain 1 dark olive bag, 2 vibrant plum bags.
|
||||
dark olive bags contain 3 faded blue bags, 4 dotted black bags.
|
||||
vibrant plum bags contain 5 faded blue bags, 6 dotted black bags.
|
||||
faded blue bags contain no other bags.
|
||||
dotted black bags contain no other bags.
|
44
aoc2020/8.py
Normal file
44
aoc2020/8.py
Normal file
|
@ -0,0 +1,44 @@
|
|||
with open("8.txt") as f:
|
||||
ins = []
|
||||
for line in f:
|
||||
ins.append(line.strip())
|
||||
|
||||
def term(ins):
|
||||
f = set()
|
||||
f2 = set()
|
||||
acc = 0
|
||||
ip = 0
|
||||
while True:
|
||||
if ip >= len(ins):
|
||||
break
|
||||
i = ins[ip]
|
||||
if ip in f:
|
||||
if ip in f2:
|
||||
return None
|
||||
f2.add(ip)
|
||||
f.add(ip)
|
||||
# print(ip, i)
|
||||
c, v = i.split(" ")
|
||||
v = int(v)
|
||||
if c == "acc":
|
||||
acc += v
|
||||
elif c == "jmp":
|
||||
ip = ip + v - 1
|
||||
ip += 1
|
||||
return acc
|
||||
|
||||
for i in range(len(ins)):
|
||||
l = ins[i]
|
||||
if not (l.startswith("jmp") or l.startswith("nop")): continue
|
||||
orig = l
|
||||
if l.startswith("jmp"):
|
||||
new = l.replace("jmp", "nop")
|
||||
elif l.startswith("nop"):
|
||||
new = l.replace("nop", "jmp")
|
||||
ins[i] = new
|
||||
r = term(ins)
|
||||
if r is None:
|
||||
ins[i] = orig
|
||||
else:
|
||||
print(r)
|
||||
break
|
634
aoc2020/8.txt
Normal file
634
aoc2020/8.txt
Normal file
|
@ -0,0 +1,634 @@
|
|||
acc +15
|
||||
acc +2
|
||||
acc -14
|
||||
jmp +362
|
||||
acc +22
|
||||
nop +236
|
||||
jmp +474
|
||||
acc +10
|
||||
jmp +1
|
||||
acc +0
|
||||
jmp +236
|
||||
acc +10
|
||||
acc +14
|
||||
jmp +334
|
||||
acc +12
|
||||
acc -1
|
||||
jmp +478
|
||||
jmp +90
|
||||
jmp +208
|
||||
acc +49
|
||||
jmp +94
|
||||
acc +2
|
||||
acc -8
|
||||
jmp +375
|
||||
nop +21
|
||||
acc +0
|
||||
acc +10
|
||||
nop +25
|
||||
jmp +492
|
||||
nop +182
|
||||
acc +49
|
||||
acc -12
|
||||
jmp -14
|
||||
acc -16
|
||||
jmp +140
|
||||
acc -3
|
||||
acc -18
|
||||
acc +28
|
||||
acc -6
|
||||
jmp +558
|
||||
acc +2
|
||||
acc +27
|
||||
nop +438
|
||||
acc +41
|
||||
jmp +508
|
||||
acc +13
|
||||
jmp +117
|
||||
acc +21
|
||||
acc -13
|
||||
acc +34
|
||||
jmp +1
|
||||
jmp +1
|
||||
nop +451
|
||||
acc +28
|
||||
acc +31
|
||||
acc +31
|
||||
jmp +280
|
||||
acc +32
|
||||
acc +35
|
||||
acc -18
|
||||
jmp +509
|
||||
acc -15
|
||||
acc -8
|
||||
nop +288
|
||||
acc -16
|
||||
jmp +376
|
||||
acc -19
|
||||
acc -8
|
||||
acc +11
|
||||
acc +10
|
||||
jmp +50
|
||||
acc +19
|
||||
nop -58
|
||||
acc -9
|
||||
jmp +43
|
||||
acc +10
|
||||
acc +2
|
||||
nop -63
|
||||
jmp +280
|
||||
acc -7
|
||||
jmp +175
|
||||
jmp +69
|
||||
acc +16
|
||||
acc +9
|
||||
acc -2
|
||||
acc -5
|
||||
jmp +276
|
||||
nop +195
|
||||
acc +50
|
||||
acc -8
|
||||
jmp -55
|
||||
nop +1
|
||||
nop -78
|
||||
acc +31
|
||||
jmp +535
|
||||
acc +9
|
||||
acc +33
|
||||
acc +4
|
||||
acc +48
|
||||
jmp +8
|
||||
acc +30
|
||||
acc +42
|
||||
acc +18
|
||||
acc +37
|
||||
jmp -69
|
||||
nop +121
|
||||
jmp +44
|
||||
acc +3
|
||||
acc +33
|
||||
acc -6
|
||||
acc +37
|
||||
jmp +403
|
||||
acc -6
|
||||
jmp +245
|
||||
jmp -93
|
||||
acc +5
|
||||
jmp +406
|
||||
jmp -26
|
||||
nop -47
|
||||
jmp +239
|
||||
acc +7
|
||||
acc +31
|
||||
acc +14
|
||||
acc +0
|
||||
jmp +291
|
||||
acc +46
|
||||
jmp +394
|
||||
acc +44
|
||||
acc +36
|
||||
nop +45
|
||||
jmp +137
|
||||
acc -16
|
||||
acc +10
|
||||
acc -4
|
||||
acc +7
|
||||
jmp +76
|
||||
acc +24
|
||||
jmp +93
|
||||
acc +17
|
||||
acc +0
|
||||
acc +6
|
||||
acc +4
|
||||
jmp +385
|
||||
acc -8
|
||||
acc +49
|
||||
acc +28
|
||||
jmp +95
|
||||
nop +12
|
||||
acc +33
|
||||
jmp +153
|
||||
nop +254
|
||||
acc +18
|
||||
acc -16
|
||||
acc +50
|
||||
jmp +299
|
||||
acc +27
|
||||
acc +47
|
||||
acc -17
|
||||
jmp -15
|
||||
acc +35
|
||||
acc +14
|
||||
jmp +204
|
||||
jmp +93
|
||||
acc +46
|
||||
nop -5
|
||||
nop -158
|
||||
jmp +221
|
||||
jmp +321
|
||||
acc -2
|
||||
acc +49
|
||||
acc +3
|
||||
acc -17
|
||||
jmp -52
|
||||
jmp +7
|
||||
nop +52
|
||||
acc +25
|
||||
jmp +376
|
||||
acc -3
|
||||
nop -133
|
||||
jmp +32
|
||||
jmp +328
|
||||
nop +374
|
||||
acc +37
|
||||
acc +6
|
||||
jmp +92
|
||||
acc +47
|
||||
nop +394
|
||||
jmp -13
|
||||
jmp -170
|
||||
acc +9
|
||||
jmp -47
|
||||
acc -18
|
||||
acc +27
|
||||
jmp +1
|
||||
acc +3
|
||||
acc -5
|
||||
jmp +337
|
||||
acc +21
|
||||
jmp +364
|
||||
acc +24
|
||||
acc +43
|
||||
acc +50
|
||||
jmp +58
|
||||
jmp -18
|
||||
acc +30
|
||||
jmp +144
|
||||
nop +5
|
||||
acc +50
|
||||
nop +245
|
||||
nop +133
|
||||
jmp +270
|
||||
jmp -22
|
||||
nop -76
|
||||
jmp +398
|
||||
acc +40
|
||||
acc +30
|
||||
jmp +361
|
||||
acc +36
|
||||
acc +30
|
||||
jmp +392
|
||||
acc -17
|
||||
nop +71
|
||||
acc -12
|
||||
jmp +102
|
||||
acc +17
|
||||
jmp +283
|
||||
acc -16
|
||||
jmp +65
|
||||
nop -2
|
||||
jmp +149
|
||||
jmp -103
|
||||
jmp -179
|
||||
acc +46
|
||||
jmp +289
|
||||
acc +48
|
||||
jmp +114
|
||||
acc +13
|
||||
jmp +114
|
||||
nop +215
|
||||
nop -89
|
||||
jmp +337
|
||||
acc -2
|
||||
acc +2
|
||||
acc -7
|
||||
jmp -18
|
||||
jmp -51
|
||||
acc +30
|
||||
acc +43
|
||||
acc +28
|
||||
jmp -188
|
||||
acc +36
|
||||
acc +7
|
||||
acc -5
|
||||
acc +38
|
||||
jmp +88
|
||||
jmp +225
|
||||
acc -14
|
||||
acc -3
|
||||
acc -15
|
||||
jmp +66
|
||||
acc +7
|
||||
acc +43
|
||||
nop -210
|
||||
acc -9
|
||||
jmp +109
|
||||
acc -10
|
||||
jmp +242
|
||||
acc -5
|
||||
acc +15
|
||||
acc +8
|
||||
jmp +310
|
||||
acc +31
|
||||
acc -2
|
||||
acc +11
|
||||
acc -15
|
||||
jmp +103
|
||||
acc +32
|
||||
jmp -92
|
||||
acc -10
|
||||
acc +6
|
||||
acc -1
|
||||
jmp -131
|
||||
acc +43
|
||||
acc +30
|
||||
acc +13
|
||||
acc +33
|
||||
jmp +25
|
||||
acc +9
|
||||
acc -14
|
||||
acc +19
|
||||
acc +44
|
||||
jmp -50
|
||||
acc -8
|
||||
acc +9
|
||||
jmp +312
|
||||
jmp -96
|
||||
acc -3
|
||||
acc -3
|
||||
acc +24
|
||||
jmp +94
|
||||
acc -15
|
||||
jmp +61
|
||||
acc +19
|
||||
nop -89
|
||||
acc +24
|
||||
nop -94
|
||||
jmp +5
|
||||
acc -13
|
||||
acc +25
|
||||
acc +42
|
||||
jmp +1
|
||||
jmp +137
|
||||
acc +44
|
||||
acc +44
|
||||
acc +41
|
||||
jmp +152
|
||||
jmp +144
|
||||
acc -1
|
||||
nop +293
|
||||
jmp -120
|
||||
acc -17
|
||||
nop -171
|
||||
acc +27
|
||||
jmp -173
|
||||
jmp +231
|
||||
acc +3
|
||||
jmp +109
|
||||
acc +18
|
||||
acc +32
|
||||
acc -14
|
||||
acc -8
|
||||
jmp +177
|
||||
acc +28
|
||||
jmp -134
|
||||
nop +277
|
||||
jmp -124
|
||||
jmp +167
|
||||
nop +274
|
||||
acc +6
|
||||
acc +43
|
||||
acc +10
|
||||
jmp -320
|
||||
acc +28
|
||||
acc -9
|
||||
acc +22
|
||||
jmp -90
|
||||
jmp -203
|
||||
jmp -133
|
||||
jmp -6
|
||||
jmp -181
|
||||
jmp +170
|
||||
acc +40
|
||||
acc +5
|
||||
jmp -274
|
||||
acc +36
|
||||
acc +24
|
||||
nop +6
|
||||
jmp -339
|
||||
jmp -251
|
||||
acc +10
|
||||
acc +10
|
||||
jmp -347
|
||||
jmp +263
|
||||
acc +37
|
||||
jmp -201
|
||||
acc -11
|
||||
acc +42
|
||||
jmp +153
|
||||
nop -179
|
||||
acc -9
|
||||
jmp +8
|
||||
jmp -289
|
||||
jmp -25
|
||||
acc +45
|
||||
jmp -142
|
||||
acc +42
|
||||
acc -10
|
||||
jmp +83
|
||||
acc +43
|
||||
acc +3
|
||||
acc -6
|
||||
jmp -222
|
||||
acc +41
|
||||
acc +14
|
||||
acc +7
|
||||
acc +2
|
||||
jmp -35
|
||||
jmp +168
|
||||
acc +11
|
||||
acc +18
|
||||
acc +8
|
||||
acc -4
|
||||
jmp -203
|
||||
acc +44
|
||||
jmp +10
|
||||
nop -184
|
||||
acc +0
|
||||
jmp +91
|
||||
acc -5
|
||||
nop +226
|
||||
acc +46
|
||||
acc -10
|
||||
jmp -15
|
||||
jmp -321
|
||||
acc +0
|
||||
acc +33
|
||||
jmp +82
|
||||
jmp +1
|
||||
acc -12
|
||||
acc +30
|
||||
jmp +152
|
||||
acc +6
|
||||
jmp -208
|
||||
acc +43
|
||||
jmp +39
|
||||
acc +23
|
||||
acc +23
|
||||
acc +24
|
||||
acc +26
|
||||
jmp -390
|
||||
acc +15
|
||||
acc +3
|
||||
acc +14
|
||||
acc +46
|
||||
jmp -239
|
||||
acc -10
|
||||
acc +19
|
||||
jmp +167
|
||||
acc +46
|
||||
acc +0
|
||||
jmp -280
|
||||
acc -7
|
||||
jmp -107
|
||||
acc +13
|
||||
jmp -76
|
||||
acc +48
|
||||
jmp -65
|
||||
nop +23
|
||||
nop -89
|
||||
acc +47
|
||||
jmp -304
|
||||
acc -5
|
||||
jmp +1
|
||||
acc +50
|
||||
acc +37
|
||||
jmp -129
|
||||
acc +27
|
||||
jmp +1
|
||||
jmp -212
|
||||
acc +18
|
||||
acc +29
|
||||
acc +1
|
||||
jmp -74
|
||||
acc +24
|
||||
acc -12
|
||||
jmp -173
|
||||
acc -18
|
||||
acc -6
|
||||
nop -156
|
||||
jmp -309
|
||||
acc +46
|
||||
acc -13
|
||||
acc +41
|
||||
acc +11
|
||||
jmp -188
|
||||
acc +32
|
||||
jmp -190
|
||||
acc +31
|
||||
acc +30
|
||||
jmp -122
|
||||
acc -7
|
||||
jmp +37
|
||||
acc +2
|
||||
acc +16
|
||||
acc +45
|
||||
acc +44
|
||||
jmp -376
|
||||
acc +47
|
||||
jmp +1
|
||||
jmp -147
|
||||
acc +47
|
||||
acc -18
|
||||
acc -1
|
||||
acc +2
|
||||
jmp -152
|
||||
acc +12
|
||||
acc -8
|
||||
jmp +90
|
||||
nop +67
|
||||
acc +9
|
||||
jmp +1
|
||||
jmp -377
|
||||
jmp +1
|
||||
jmp -238
|
||||
jmp +1
|
||||
acc +47
|
||||
acc +7
|
||||
acc +31
|
||||
jmp -427
|
||||
acc +10
|
||||
acc +13
|
||||
nop +13
|
||||
jmp -8
|
||||
nop -292
|
||||
acc +11
|
||||
nop -203
|
||||
jmp -164
|
||||
jmp -19
|
||||
acc +31
|
||||
jmp -289
|
||||
acc -7
|
||||
acc -16
|
||||
acc +35
|
||||
jmp -333
|
||||
jmp -500
|
||||
acc +32
|
||||
acc +29
|
||||
acc +18
|
||||
acc +14
|
||||
jmp -161
|
||||
jmp -60
|
||||
jmp +6
|
||||
acc +4
|
||||
nop -108
|
||||
acc +27
|
||||
jmp +2
|
||||
jmp -133
|
||||
acc +2
|
||||
jmp -103
|
||||
acc +40
|
||||
nop -512
|
||||
acc +48
|
||||
jmp -196
|
||||
acc +47
|
||||
acc +40
|
||||
nop -346
|
||||
acc -2
|
||||
jmp -530
|
||||
acc +17
|
||||
nop -31
|
||||
acc +1
|
||||
jmp -74
|
||||
acc -15
|
||||
acc +4
|
||||
nop -330
|
||||
acc +32
|
||||
jmp -115
|
||||
acc -3
|
||||
jmp +1
|
||||
acc +14
|
||||
acc +31
|
||||
jmp -352
|
||||
jmp -10
|
||||
acc +18
|
||||
jmp -322
|
||||
acc +41
|
||||
jmp +59
|
||||
acc -16
|
||||
nop -359
|
||||
acc +29
|
||||
acc +26
|
||||
jmp -418
|
||||
acc +10
|
||||
acc +47
|
||||
jmp -519
|
||||
acc -5
|
||||
nop +40
|
||||
acc +30
|
||||
jmp -195
|
||||
acc +31
|
||||
acc +3
|
||||
acc +8
|
||||
jmp -10
|
||||
acc -12
|
||||
acc +21
|
||||
acc -1
|
||||
jmp +30
|
||||
jmp -341
|
||||
acc -5
|
||||
jmp -405
|
||||
acc -13
|
||||
jmp -170
|
||||
acc +24
|
||||
acc -16
|
||||
acc +20
|
||||
acc +17
|
||||
jmp -145
|
||||
acc +42
|
||||
acc +33
|
||||
jmp -395
|
||||
nop -142
|
||||
acc +45
|
||||
acc +15
|
||||
jmp -399
|
||||
nop -223
|
||||
jmp -299
|
||||
jmp -453
|
||||
acc -6
|
||||
nop -498
|
||||
acc +42
|
||||
jmp -112
|
||||
acc +39
|
||||
acc +46
|
||||
acc +4
|
||||
acc +27
|
||||
jmp -234
|
||||
jmp +1
|
||||
acc +45
|
||||
acc +47
|
||||
jmp -307
|
||||
jmp -378
|
||||
jmp -431
|
||||
acc +13
|
||||
acc +29
|
||||
jmp -282
|
||||
acc +4
|
||||
acc -3
|
||||
acc +37
|
||||
acc +40
|
||||
jmp -32
|
||||
nop -148
|
||||
acc +38
|
||||
acc +40
|
||||
acc +18
|
||||
jmp -171
|
||||
nop -546
|
||||
jmp -490
|
||||
acc +36
|
||||
jmp -514
|
||||
acc +27
|
||||
acc -10
|
||||
nop -560
|
||||
acc +44
|
||||
jmp +1
|
9
aoc2020/8ex.txt
Normal file
9
aoc2020/8ex.txt
Normal file
|
@ -0,0 +1,9 @@
|
|||
nop +0
|
||||
acc +1
|
||||
jmp +4
|
||||
acc +3
|
||||
jmp -3
|
||||
acc -99
|
||||
acc +1
|
||||
jmp -4
|
||||
acc +6
|
53
aoc2020/9.py
Normal file
53
aoc2020/9.py
Normal file
|
@ -0,0 +1,53 @@
|
|||
import itertools
|
||||
|
||||
prev=None
|
||||
sums = dict()
|
||||
ns = []
|
||||
with open("9.txt") as f:
|
||||
for i in range(25):
|
||||
ns.append(int(f.readline().strip()))
|
||||
for a in ns:
|
||||
for b in ns:
|
||||
if a == b: continue
|
||||
if a not in sums: sums[a] = set()
|
||||
sums[a].add(a + b)
|
||||
|
||||
for line in f:
|
||||
n = int(line.strip())
|
||||
for v in sums.values():
|
||||
if n in v:
|
||||
break
|
||||
else:
|
||||
print("NOT", n)
|
||||
bad = n
|
||||
break
|
||||
fi = ns[0]
|
||||
del sums[fi]
|
||||
ns.pop(0)
|
||||
sums[n] = set()
|
||||
for a in ns:
|
||||
sums[n].add(a + n)
|
||||
ns.append(n)
|
||||
|
||||
|
||||
with open("9.txt") as f:
|
||||
ns = []
|
||||
for line in f:
|
||||
n = int(line.strip())
|
||||
ns.append(n)
|
||||
|
||||
for a in range(len(ns)-1):
|
||||
running = ns[a]
|
||||
found = False
|
||||
for b in range(a+1, len(ns)):
|
||||
running+=ns[b]
|
||||
if running==bad:
|
||||
r = ns[a:b+1]
|
||||
print(bad, sum(r), min(r)+max(r), r)
|
||||
found = True
|
||||
elif running > bad:
|
||||
break
|
||||
#print(a, running, ns[a:b])
|
||||
if found: break
|
||||
|
||||
|
1000
aoc2020/9.txt
Normal file
1000
aoc2020/9.txt
Normal file
File diff suppressed because it is too large
Load diff
33
aoc2020/p15.nim
Normal file
33
aoc2020/p15.nim
Normal file
|
@ -0,0 +1,33 @@
|
|||
import tables
|
||||
|
||||
iterator play(start: seq[int]): int =
|
||||
var spoke = initTable[int, int]()
|
||||
var turn = 0
|
||||
var nextSpeak = 0
|
||||
|
||||
for i in start:
|
||||
turn += 1
|
||||
spoke[i] = turn
|
||||
yield i
|
||||
nextSpeak = 0
|
||||
|
||||
while true:
|
||||
turn += 1
|
||||
yield nextSpeak
|
||||
var lastSpoke = spoke.getOrDefault(nextSpeak, -1)
|
||||
spoke[nextSpeak] = turn
|
||||
|
||||
if lastSpoke == -1:
|
||||
nextSpeak = 0
|
||||
else:
|
||||
nextSpeak = turn - lastSpoke
|
||||
|
||||
proc solve(s: seq[int], n: int): int =
|
||||
var i = 0
|
||||
for x in play(s):
|
||||
inc i
|
||||
if i == n:
|
||||
echo x
|
||||
break
|
||||
|
||||
echo solve(@[5,1,9,18,13,8,0], 30000000)
|
35
aoc2021/2.py
Normal file
35
aoc2021/2.py
Normal file
|
@ -0,0 +1,35 @@
|
|||
with open("2.txt") as f:
|
||||
data = f.read()
|
||||
with open("2.txt") as f:
|
||||
lines = list(map(lambda s: s.rstrip(), f.readlines()))
|
||||
|
||||
x = 0
|
||||
y = 0
|
||||
for line in lines:
|
||||
if not line: continue
|
||||
p = line.split(" ")
|
||||
n = int(p[1])
|
||||
if p[0] == "forward":
|
||||
x += n
|
||||
elif p[0] == "down":
|
||||
y += n
|
||||
elif p[0] == "up":
|
||||
y -= n
|
||||
|
||||
print(x * y)
|
||||
|
||||
x = 0
|
||||
y = 0
|
||||
aim = 0
|
||||
for line in lines:
|
||||
if not line: continue
|
||||
p = line.split(" ")
|
||||
n = int(p[1])
|
||||
if p[0] == "forward":
|
||||
x += n
|
||||
y += aim * n
|
||||
elif p[0] == "down":
|
||||
aim += n
|
||||
elif p[0] == "up":
|
||||
aim -= n
|
||||
print(x * y)
|
1001
aoc2021/2.txt
Normal file
1001
aoc2021/2.txt
Normal file
File diff suppressed because it is too large
Load diff
Loading…
Reference in a new issue