From ad04dffb69c86441a0b0cb6a13615dc5b252983f Mon Sep 17 00:00:00 2001 From: Teo-CD Date: Fri, 4 Dec 2020 23:10:35 +0100 Subject: [PATCH] 2020 AoC, Days 1-4 --- 2020/Day 1/Solution.py | 76 +++ 2020/Day 1/input.txt | 200 ++++++++ 2020/Day 2/Solution.py | 32 ++ 2020/Day 2/input.txt | 1000 ++++++++++++++++++++++++++++++++++++++ 2020/Day 3/Solution.py | 36 ++ 2020/Day 3/input.txt | 323 +++++++++++++ 2020/Day 4/Solution.py | 78 +++ 2020/Day 4/input.txt | 1029 ++++++++++++++++++++++++++++++++++++++++ README.md | 8 + 9 files changed, 2782 insertions(+) create mode 100644 2020/Day 1/Solution.py create mode 100644 2020/Day 1/input.txt create mode 100644 2020/Day 2/Solution.py create mode 100644 2020/Day 2/input.txt create mode 100644 2020/Day 3/Solution.py create mode 100644 2020/Day 3/input.txt create mode 100644 2020/Day 4/Solution.py create mode 100644 2020/Day 4/input.txt create mode 100644 README.md diff --git a/2020/Day 1/Solution.py b/2020/Day 1/Solution.py new file mode 100644 index 0000000..262cf90 --- /dev/null +++ b/2020/Day 1/Solution.py @@ -0,0 +1,76 @@ +target = 2020 +input_file = "/tmp/aocinput" + +def find_sum_of_two(): + large_n = [] + small_n = [] + + with open(input_file) as file: + line = file.readline() + while line and line != "\n": + halftarget_count = 0 + + number = int(line) + if number > target/2: + large_n.append(number) + elif number == target/2: + halftarget_count += 1 + else: + small_n.append(number) + + if halftarget_count == 2: + print(f"Found a sum : {target/2}*2 = {target}\nAnswer is {(target/2)**2}") + break + + line = file.readline() + + for big_one in large_n: + complement = target-big_one + if complement in small_n: + print(f"Found a sum : {big_one}+{complement} = {target}\nAnswer is {big_one*complement}") + return + + print("No sum found that can reach {target}") + +def sum_search(target_sum, inputs): + lower = [] + upper = [] + + for num in inputs: + if num < target_sum/2: + lower.append(num) + else: + upper.append(num) + + search_list = lower if len(lower) < len(upper) else upper + iter_list = upper if len(lower) < len(upper) else lower + + for num in iter_list: + if target_sum - num in search_list: + return num, target_sum-num + + return False + + +def find_sum_of_three(): + data = [] + subtracted_to_target = [] + with open(input_file) as file: + line = file.readline() + while line and line != "\n": + data.append(int(line)) + subtracted_to_target.append((target-data[-1],data[-1])) + + line = file.readline() + + data.sort() + + for sub_target in subtracted_to_target: + result = sum_search(sub_target[0],data) + if result: + print(f"Sum found : {result[0]}+{result[1]}+{sub_target[1]} = {target}\nResult is {result[0]*result[1]*sub_target[1]}") + return + + print("No sum found") + + diff --git a/2020/Day 1/input.txt b/2020/Day 1/input.txt new file mode 100644 index 0000000..ba38c4a --- /dev/null +++ b/2020/Day 1/input.txt @@ -0,0 +1,200 @@ +1322 +1211 +1427 +1428 +1953 +1220 +1629 +1186 +1354 +1776 +1906 +1849 +1327 +1423 +401 +1806 +1239 +1934 +1256 +1223 +1504 +1365 +1653 +1706 +1465 +1810 +1089 +1447 +1983 +1505 +1763 +1590 +1843 +1534 +1886 +1842 +1878 +1785 +1121 +1857 +1496 +1696 +1863 +1944 +1692 +1255 +1572 +1767 +1509 +1845 +1479 +1935 +1507 +1852 +1193 +1797 +1573 +1317 +1266 +1707 +1819 +925 +1976 +1908 +1571 +1646 +1625 +1719 +1980 +1970 +1566 +1679 +1484 +1818 +1985 +1794 +1699 +1530 +1645 +370 +1658 +1345 +1730 +1340 +1281 +1722 +1623 +1148 +1545 +1728 +1325 +1164 +1462 +1893 +1736 +160 +1543 +1371 +1930 +1162 +2010 +1302 +1967 +1889 +1547 +1335 +1416 +1359 +1622 +1682 +1701 +1939 +1697 +1436 +1367 +1119 +1741 +1466 +1997 +1856 +1824 +1323 +1478 +1963 +1832 +1748 +1260 +1244 +1834 +1990 +1567 +1147 +1588 +1694 +1487 +1151 +1347 +1315 +1502 +546 +730 +1742 +1869 +1277 +1224 +1169 +1708 +1661 +174 +1207 +1801 +1880 +1390 +1747 +1215 +1684 +1498 +1965 +1933 +1693 +1129 +1578 +1189 +1251 +1727 +1440 +1178 +746 +1564 +944 +1822 +1225 +1523 +1575 +1185 +37 +1866 +1766 +1737 +1800 +1633 +1796 +1161 +1932 +1583 +1395 +1288 +1991 +229 +1875 +1540 +1876 +1191 +1858 +1713 +1725 +1955 +1250 +1987 +1724 diff --git a/2020/Day 2/Solution.py b/2020/Day 2/Solution.py new file mode 100644 index 0000000..cbbc5f0 --- /dev/null +++ b/2020/Day 2/Solution.py @@ -0,0 +1,32 @@ +input_file = "/tmp/aocinput" + +def letter_count(): + valid_passwords = 0 + + with open(input_file) as passwords: + line = passwords.readline() + while line and line != "\n": + elements = line.split(" ") + min_req, max_req = elements[0].split("-") + password_count = elements[2].count(elements[1][0]) + if int(min_req) <= password_count <= int(max_req): + valid_passwords += 1 + + line = passwords.readline() + + print(f"There are {valid_passwords} valid passwords") + +def letter_position(): + valid_passwords = 0 + + with open(input_file) as passwords: + line = passwords.readline() + while line and line != "\n": + elements = line.split(" ") + first_pos, second_pos = elements[0].split("-") + if (elements[2][int(first_pos) - 1] == elements[1][0]) ^ (elements[2][int(second_pos) - 1] == elements[1][0]): + valid_passwords += 1 + + line = passwords.readline() + + print(f"There are {valid_passwords} valid passwords") \ No newline at end of file diff --git a/2020/Day 2/input.txt b/2020/Day 2/input.txt new file mode 100644 index 0000000..427015c --- /dev/null +++ b/2020/Day 2/input.txt @@ -0,0 +1,1000 @@ +1-13 r: gqdrspndrpsrjfjx +5-16 j: jjjjkjjzjjjjjfjzjjj +14-16 r: rrrnrrrrrcnrgxrr +1-3 k: bkktwhgktv +3-5 q: dxqqqzmqvs +11-14 s: sssssssssssssv +1-3 d: cdzdq +13-16 q: scdqpdgpkvbwwqbv +9-10 d: ddrdddlddd +15-17 v: jvvvvvvgcvvvvrcvnv +2-3 s: xssx +8-15 j: jwjjjjkhjjjltjmjjjr +7-15 m: wqspfmtpjftmplwp +1-11 s: swdgzhgsxtssndzfm +3-4 b: bgjrg +1-12 x: jxgxxxpjwpsht +5-15 x: xxjxwshpxjxxxxsnxvz +4-11 r: bjnrpswfprrng +12-14 j: wjjzmwnmmvzsjhnnkj +3-4 d: dddv +2-4 b: bfxx +15-16 r: rrrrrrrrrrrlrrphrr +6-11 j: jsljjjjjjjj +6-7 m: mpttcmmmmng +6-7 g: gsggggg +2-10 b: nbtbqbbfpb +4-6 h: hhqhrzkcrhh +13-14 b: bbbbbbbbbbnbbbb +5-6 g: gggggg +5-6 x: rsxvxx +3-6 q: wxqzqqqtzsq +1-2 h: sjhj +6-18 t: jtptcwtbfgffpkdwthbf +5-9 w: wwwwcwwww +15-16 g: wqdwztbmrqdmgmvc +8-15 t: ttttgztvtttnttb +9-11 r: rrvrrrrnhrzr +8-9 l: lllllllqwl +10-11 h: hhhhhhhhhhd +3-5 g: gggrwqc +5-12 f: ffcdxfglcffsf +6-7 f: fffffzk +3-5 b: btbbbb +2-8 z: wblnvfzzwzzbchx +13-14 r: rrrrrfrrrrrrlf +2-9 r: wgbmfvksl +5-12 m: xrmmfhmqdhmmvhvrzmwq +3-4 j: jwpd +6-8 v: mvfwgskpxgvcsr +1-3 c: ctpr +2-8 d: dzdfsddd +10-14 c: ccccczcccccqlchvclcc +2-8 s: sscwcfssssssdt +2-11 l: xlsslrlclfls +7-8 r: rrrjrrrrtdcr +7-9 z: zzzzzzzpzz +12-14 r: rrrrrrrrrrrprrr +13-14 g: hdczwngvjtgmhn +1-7 q: qqdqqqqvq +5-6 q: qqqqql +11-16 p: wgwrzltpskwgxprm +4-12 d: dvddddddwddz +15-16 q: qqqqqqqqqqqqqqqqq +1-5 m: mmrjmmqsjkm +13-14 m: mlmxmmmdmgmmmw +4-5 q: qcqvmhqdq +2-3 m: brdzbfzj +3-4 s: snshj +5-9 k: kzpkkbkvqjktrk +12-13 t: fltttttttjtpstttt +7-8 c: kcccfccccxtcc +2-6 q: nnjqqd +2-9 n: msnvnrxgldqnxnngsn +2-4 c: scccwp +12-13 c: ccbccqdcccfcvdccc +6-7 f: fmdffffxcbbpffl +2-6 r: rbrrrvr +7-10 j: jzjtjjqfvjj +3-7 j: jjrjjjjj +2-13 m: mmmlmqddkmtmmm +19-20 l: drpwllkdlsjslmllsdrv +3-5 v: vxmrwwvh +5-13 z: zzzzkzzzzzzzkzzzf +5-6 g: gggggfg +4-6 c: crfvlc +14-18 x: xxxxxxxxxjxxxzxdqc +4-7 p: plzqjtp +2-4 v: nmdbhftxvbv +5-8 s: knfcsbbsxssssxd +2-13 p: mpwpnbrnlxmqvfbltcq +7-11 v: vbvvvkfvvvg +14-17 x: xxrxxxbxxwmhxxpxqxv +5-7 f: qffndfmqfsrv +7-8 v: vvvqvvbvv +9-10 j: jjjdjjjslljjjjjch +4-6 l: lllplgr +3-4 n: nnqn +4-5 c: ccccc +1-2 q: lwhqw +6-7 d: dddmddqd +6-7 g: gggggzxg +2-10 j: jsjjjjjjjsjj +13-15 b: dxbbbbbbbbbbbmbbbmbl +5-10 q: qqqqwqqqqxq +12-13 j: jjjjjzjjjjbjxjjb +5-10 t: ttfttphtttttmthttp +3-4 t: tttj +7-8 n: nnknnpphfwnn +9-10 x: xxxxxxxxcx +14-17 h: hhkhhzxhhhhhhjhhxhh +4-5 w: whxtwwftw +10-12 q: xqgqsqqvqqlqqqdqpqrq +1-3 l: jsvlzrm +8-16 z: sbzzqzxzzzskzzxgrzcz +7-10 k: kkkkjklkkt +9-11 f: ffffwfffwflnwf +1-8 c: cmccwcqzzhxccr +6-9 h: vnfxddhrhbdqkqr +8-9 t: tzttdtttvvtb +6-9 q: qqqqqqqqqqqqq +15-17 k: kkkkkkkkkkkkkklkqk +3-10 p: pprppppppfp +5-11 d: nhgkdjgvmdddt +7-9 d: rdddddddpd +1-3 r: rrwrr +5-16 t: gttwtrqqmwwljhfn +6-9 q: qqqswdzllqqf +7-13 b: mxpxbjgvsncqwv +7-8 d: dddddrddds +3-4 z: zzqzz +10-18 z: zzzqzzzzbzzwzzpzzzz +8-9 p: pppppppppp +13-16 f: fffffffffffffxtf +8-9 w: fwgwwwlsfpww +4-5 g: grgmcpdqggwckq +16-17 g: gggggwgggggggggln +3-13 j: jjmjjjjjjjjjbjjjjjj +9-13 x: xxxxxxxxxxxxx +5-12 b: bbrmbhbbsgbbbpbbz +14-18 z: zzzszzszzzzzzzzzzzh +1-13 k: pkkkkkhgfkfbtkkpkf +3-14 v: vvvpdlvvvvdfvvjvvsv +12-13 m: mmmmrmbmmmmmmrmmm +12-14 v: vvvvvvvvvcrlvkvv +18-19 p: mxpppgpwcphkzppktppk +4-10 x: xxxxxxxxxxxxx +4-5 k: kklkkk +11-13 m: mmmvmmwmzwmmmnvgmm +7-11 p: qdppjspwtcpppp +4-8 l: lllllllll +12-16 j: jjvjtjjsstfjjnjjk +15-17 h: phhhhhhhhhhrhhhhh +4-7 j: sqfjjjj +3-20 m: wzmqhwmjmclzmmmdlzqm +8-13 m: jpmmbmtgmnprgt +8-13 h: hhhhjjhchhbhqshh +15-20 b: mbbbgbbzmkbbkbbpffqb +2-3 t: tdlt +10-16 l: llllkgllrnllllll +2-4 p: phpf +3-5 d: ddddd +5-6 h: hhhhhhh +2-3 j: cjjrj +7-10 g: hgwtggfgbcpgd +3-4 d: dddk +4-6 t: mltdtf +8-9 h: zhljxshhh +2-3 p: vqjgbsp +6-7 x: gcxvjxp +15-17 s: sswgssdsgssjlssss +1-3 m: qvswmm +1-7 v: svbrvsjv +3-5 j: vjhjdq +15-16 b: bbbnbbbmbbbbbbbdbbmb +6-19 k: spkgcpkhlkkthkgkfzkj +1-2 c: dxqxnrrlfnnc +7-11 j: qjjjjjkdrjjjjj +5-11 g: ztdgvvgwhrlgnq +3-4 c: fcmqglp +4-5 q: qqqqqqq +6-7 c: cccccrc +7-11 n: nnnnbnnnnnn +9-13 x: xxxxxbdtqxdwxsx +9-15 j: ljjjjjjjjjjjjjz +2-11 j: pjjhzmtwlgjwpkjjdwq +5-6 k: kkkkkk +12-13 q: qqqqqqqqqqqmg +3-14 j: nwkjjlbbrnqvqm +3-4 h: hhhhshhhhhhmrh +2-4 l: djkxl +1-9 t: tttttfttl +9-10 g: ckggggtggggggv +3-12 l: cqlclvwhpxwlnzzsqgs +8-14 d: ddddddddnddfdh +1-5 v: vvvvxm +2-5 q: mqqqqlqk +3-4 j: tkjpj +13-16 w: wwwwwwwwwwwwwwxww +13-18 m: mmmmmmmmmmmmmzmmmmm +2-4 x: xxfxx +1-2 d: ddvddddkdddd +3-5 c: cctdc +2-10 q: tqjkqqpsctx +2-18 n: nlnnhnxnnnnnnnnnnln +3-7 k: rkkkbkk +3-4 n: ngnn +3-11 d: dqdbwtbghbdj +3-5 q: fqqqq +5-10 x: xxxxfgxxjbxbhxx +5-6 m: mmtmcn +4-6 x: xxxkxk +17-19 b: bbbbbbbbbbbbbmbbbjbb +5-6 k: kkkkhk +10-12 k: kkkkkkkkkpkgk +3-4 z: zzzz +18-19 p: plcppppksppcnptppvmp +3-6 t: tdtrltmn +3-4 q: qqqq +10-19 v: vvzrvvvvvvvvvvvvvvhv +11-16 d: kjdtddddkdvcdddpd +12-16 l: lllllllllllllllll +4-10 b: dbvbqfqlrb +10-11 k: kbkvkhlkqrv +1-9 x: sbqnkxdmxpc +5-10 l: ldlllkllrln +9-13 j: bpjjjjjjjkjzjnj +11-12 j: jjjjjjjjdjjj +2-8 l: jllzbhjlqlwcltllq +4-5 s: gsssd +2-4 s: kswn +1-18 p: bpppppppppppppppptp +9-11 v: vhvvvvvvvvvv +2-5 v: vvkvvv +8-11 p: plplqpjhdzlfpppppl +11-18 g: ggggglgvgcgggggggg +9-11 r: rrrrwrrrmrzp +3-12 g: tggggmggwnpzvgpnp +13-17 t: tnvvttxttttvtftptgt +5-16 c: cccqccccjvcccccccczc +2-4 f: tfbfrjftf +2-4 s: ssssx +3-9 v: vvspvvvjv +3-4 h: hhxh +15-17 l: lllllllllqllmlvwblll +4-9 j: rjljjjjfjjskdkwttbjt +9-10 m: jmmmmmvmhh +1-8 w: wwwlcwgwwwp +1-8 j: mllsjncl +3-4 b: tfbkbssb +1-7 g: qvdbrjkdgggb +1-3 l: wlbll +4-6 v: jvzqbvvvg +2-3 w: vjlwx +10-12 c: ccvcccrccjfhgccdw +10-18 b: bbtbbbbbggbbbbbbbvb +8-9 j: jjjjjjjjjpjg +5-15 c: ccbccccccccccvccc +16-17 t: ttttgtttttttttttthtx +13-15 t: tvsmjtjttktztrt +9-12 c: jzrpnzdncldmxqjmvccb +6-7 v: jjdvpdhv +4-5 c: ccccccccccccc +6-7 t: ttzttttt +10-11 q: qgxqqqqqqqqqq +14-15 h: hhhhhhhhhhhhhhh +3-8 b: bbbbmbbbbb +11-12 r: rhlrsrrrrjrr +2-6 v: vrvvvhv +4-5 n: nnnhn +3-5 p: pqhmnjp +7-13 h: qhhcwhhhhqhhfq +10-11 d: dddddddddxh +10-11 d: gdcdcdddcddtddsddd +1-5 f: bffspf +5-8 s: skssblsg +8-11 m: mmmcmmmwmzmmmvm +6-8 q: kqqkmqhqq +2-8 q: nqnqbdgm +6-11 b: bbbbmbbqbbb +5-14 q: qqqqpbqqqqqqqgqq +2-5 p: prprwh +13-14 k: kkkkkkkkkkkkkkkk +2-7 v: vnvvdlwvd +2-3 t: hpsqzxrltrwbttwgbz +1-5 n: srnlwnnkjnnwhnf +2-3 r: dtlcv +2-5 h: hhthhdcm +2-11 d: rdxfbdhqpbdjjlhf +1-4 b: bxbshbjr +4-10 s: sthspqlnsst +1-10 h: mhwpfrbhhbn +16-18 g: gggggggglgjgggqcgzgg +3-4 d: dddd +12-16 h: dhhhhhhhshhhmnlhhhh +15-19 q: qmqkqqzqtqdqnqqzqqz +14-15 p: kgjpqpppppqpdpph +4-6 z: zzlzzztbbzzr +11-14 l: blllwlqmhlllldllll +2-4 q: qqrqc +5-6 r: qrrvrrr +2-4 f: fffv +13-15 v: vkvvvpvvvvvvvhvvvv +3-8 k: kzqkkkkkk +4-10 w: wvkwwcwxkwv +2-6 t: tvtttttttt +3-4 t: tttt +11-12 p: pzpzppplplppppk +6-12 p: pppppdpppppgp +5-9 w: wwwwwwwzwwww +4-6 m: mmmmmhmmq +4-9 j: xsqjsllnjj +6-9 c: zmcdccgtfccbccfc +4-5 p: vwpzhpp +15-16 v: pjtmwtrxmjnjfkvgrv +9-10 p: pppppppspp +2-10 f: vffzxnfnxfcfcsmtrncz +5-7 v: blwvvvvfvvh +12-16 z: zzzzzzzzzzzzzzzr +5-6 z: zkvhpz +9-13 w: wwnwwwwwwwwww +5-6 p: wmlhpptppmfvngh +9-11 r: rrrrrgsrrdrmrrrr +2-5 b: bbbbzb +13-15 r: rcrrrrrlrrrrqgfrrnr +5-7 k: klkmkkk +3-4 f: zfffgdnfff +3-4 q: qjbjhzltvl +17-19 w: wwwwwwmwwwwwwwwwqwqw +7-9 l: nlrldrlvlnvllllvf +8-9 m: mmmmmpmmm +11-16 k: kkmkkkwkkkkbkkkkd +11-14 s: mvsdsnsncsssrs +6-17 j: jjjjjgzjjsjjjjjjjjd +19-20 p: ppppppppppppppppppkp +1-16 k: nkkkkkkktkkxkkxz +2-4 c: xkcccvvcv +3-4 v: vvvvvkn +11-13 q: qqqqqqqqqqsqj +10-13 g: gxggggggggggg +3-4 x: xxpx +4-7 d: dvbddcdhdd +17-18 g: gggggggggggggggglbgg +18-19 m: mmmmmmmmmmmmmmmmsmtm +4-6 g: xbtgrgbgggmgcrx +8-13 w: wtwcwnwwwcwssxwpbw +2-3 v: vcsv +4-5 g: gggpt +2-3 g: tggtpgkg +3-4 p: pglt +9-12 v: vvvvvvvvvvvvn +11-15 f: fhffffffffnfffq +2-5 s: snssk +2-3 m: mmmm +10-14 x: xxmjbxbxkbwjxxxxj +5-14 l: lmlmlczxfsllzpkljt +6-12 n: nnnxpjtbjjdnrnsvxnwt +5-9 s: ssssfsssb +3-11 f: bffrlbwzfpf +3-4 t: twtt +1-4 r: rkxrsrlrr +7-8 x: xxxxxxlf +9-15 d: nddbddddxdddrdntdd +16-18 v: vrxvwgbqtlkzprlvwvrk +9-10 l: lllllllllzlll +3-18 l: mfllwjggswwjjgrnrl +5-7 j: jjjtjxjvqjjltjj +5-14 n: nnnnnnnnnnnnnnqn +3-12 l: pllqlhpllpklcds +2-5 f: fsgfrpfflq +4-8 q: xqsfqqqrqhqjsqndz +1-5 c: hcttt +13-14 r: rrrrrrrrrrrrrgrr +4-6 d: dddddt +3-4 d: tdqgdk +14-15 s: snskdsjxpsgmbsssssf +3-5 m: mhlcxmmmw +2-12 c: ccmccchbrrscv +14-16 c: ccccccrccccccccmc +8-17 w: pwqmtwwwwrwxwtmmww +5-8 h: hhhhmhhmlb +10-12 b: bbbqwbbbbbbb +6-7 n: nxnnnnl +7-10 v: vcvgvtgvvkwvtlvcv +10-11 t: ttttttktttttttt +2-5 t: tzdtkpsf +4-5 r: rrrmhr +9-10 w: wcdwxgxrwwwk +1-6 g: jggggcg +1-7 v: vvvvvvvmv +12-15 q: rqqqqkqqqjqqbqqqqqrq +3-10 w: vwwgwwwzwwwwxwwxsw +3-4 c: mmhfccccjclccrdccc +1-5 m: mmmmm +4-5 h: vhhxh +13-14 z: zzbzzzzzzzzzbcz +9-11 k: bkkskkkkkkk +1-6 j: jxvjrm +4-6 f: ffffff +3-5 m: mmmmmm +1-3 x: xxxxxxxxxxx +16-17 f: fffffffffffvfffrxf +3-4 f: fwff +2-11 j: zvbdwnthjfh +9-10 f: gffffffffff +1-3 z: zmrnxvs +5-16 k: llkdkrkvkkhkktkktlkd +9-13 z: mvjzzzkhzvzxzqmf +4-5 d: flgsdd +2-6 p: mftwthqkqqkp +2-4 f: vfff +7-12 w: swwwwwwwfwwwwqwfvw +10-13 c: csdkvcctnccncczc +12-15 q: qqqqqqhvqqqmqqcfqq +2-8 v: gvkfgbzvvmfmg +3-14 m: txwnzwhmcrnnltc +8-13 v: zsvmsddwnkvrkgmx +12-13 f: fffffffffffff +1-16 g: trrkggqglgbbgljx +13-14 c: ccxcccccccmccd +9-12 x: xxxxxxxxcxxlxx +10-14 q: qqqfcqwqqpqqqs +11-16 l: xllllllllllllbll +12-13 v: vvvvvvvvvvvvvv +17-18 g: gggggxggggggggggpcg +1-5 x: xxrxxklxgw +4-5 f: fffqt +10-11 l: llllbklllsgxllr +6-9 r: crfmrsjhpf +4-8 h: hhhchhhx +6-12 v: cvlvvvtbqcsvvzvlztv +2-3 x: bsgfvxdl +2-5 j: njzjjj +13-14 s: ssssssssssssfw +8-11 l: jllfllllllmlllll +2-11 p: pxppppppphq +6-9 f: crtfxvfmwwdvt +3-5 n: nnnnnn +3-4 h: hhhh +3-5 d: kldhd +18-19 x: xxxxxxxxxxxxxxfxxbs +4-5 k: kkkct +9-12 n: nxlnnpnnwnnb +2-4 g: gqggz +15-16 z: zzzzzzzzzzzzzzzz +8-10 p: kpcppjbrzqpfcpgppp +5-6 g: qggggrg +7-8 c: cccfncccccc +2-8 k: hgnsbkckkkqktkstks +3-14 x: xxlxjxxxxxxxxvxfbx +1-8 l: lllllllll +1-2 p: ptbmvp +10-15 k: jkkkkktkkkkkkkkkknzg +6-11 k: kkkkdgkkkkk +7-8 m: mmmmmmmm +13-19 z: zzzzzzzkzzzzkzzzvzxz +2-4 g: tghm +3-8 b: bbbbbvdb +6-8 d: dddddrvxdddfdd +5-10 m: mnmnsmmmmxmd +1-8 r: cgcnqrvfb +16-17 l: mhjqbmhszwllqqllr +2-4 s: csssts +7-10 j: jjjjjjzjqt +1-12 x: xmxtxxxxxtxxzdxx +5-6 w: wwnwmwrw +10-11 p: lpjpgpqpkpprdpppp +8-9 k: zhkkbkfkk +1-2 j: klhz +6-13 d: dmstddpddtddddddd +1-8 h: khvcwhhhhlj +8-11 s: bsssbzsfdrsssss +1-18 s: xsssssssssssssssstss +8-15 l: xjllsmjtlllmsxll +1-5 m: mmmmmm +17-18 k: kkkkkkkkwkkkkkkkbmk +1-7 t: tttttgtdclpkx +4-14 k: tgvzgdwkgtcdrd +2-3 z: tzprzcdzhnnll +2-4 j: rntmnjxbwq +5-6 r: rrnjnr +5-9 g: lrggvfggp +4-5 s: sssdl +4-18 h: hhhhhghphbshhhhhhhhh +4-6 s: sfpjvsk +1-10 m: fwgstfsjmtp +4-8 w: wpwwwwwmwsh +2-19 l: lnllllllllllllllllwl +4-15 v: vmwhvvwvvvvsvtdvvkv +5-6 p: lpppslppjppp +5-7 p: ppzppcmdppt +14-18 f: mffxfftfwffdffffffff +4-7 v: kvvdvjvvkmh +1-7 p: rdkzpkfdpzrxq +2-3 h: cdhhngnnjslfjbh +3-6 q: qqzqqwqt +5-10 s: kpcsszfcwsh +11-12 g: gggggggggggw +14-15 w: wwwwwwwwwwwwwsp +6-10 h: bhkzhhhsbhhh +3-4 l: fcnvfxtln +2-7 j: jzsjfrjjjmxqjxjjss +6-9 s: nvdhnsbhsdwxhlj +1-2 v: vvrp +2-5 h: qhnbhfbsdhs +3-4 x: xqvzps +3-4 m: mcmm +9-11 l: srdlflnwlrl +1-8 x: cxjgmlgwvqdpnbzn +3-4 q: qqqk +4-5 r: wsdlmbdv +1-3 d: tbtdddp +3-8 g: gsggsggvgggpgrgx +5-7 t: ktzrvktqpllxwzt +1-2 s: spss +6-19 d: dtjdmqdldddbdcnzkqpd +9-11 f: fffffffffzf +1-12 g: wggnvsgcrgmx +5-7 f: qfpzfmkfmfjc +14-15 j: jhjjjjjjxqjdvvfj +6-7 v: vvtvvqs +4-11 q: qqqxqcqjqqmqqgt +1-3 l: gbkhxlzld +1-4 s: pssz +13-16 x: xxxxxxxxxxxxfsxpp +3-6 p: mlptcpvcrppn +13-15 x: xxxxxxxxxxxxxxxxx +13-14 f: ffffffffffffff +2-5 j: jjpwj +2-7 r: xrrzrvrkjr +8-9 m: mmhlmhmmmpzpmmhgmvz +3-4 g: zgggdwgggdl +6-9 t: tttttxjzttttr +1-4 h: njzthhch +3-14 x: xprxtxbpxxxxlg +9-15 q: qqqqqjqqqqqqhqqqqq +4-6 w: wwfwwwrb +6-8 w: wwwwwwww +10-11 k: kkkkkkkkksl +3-4 n: nnqfvfn +11-13 c: ccccccccccccc +5-9 n: vnvnmnnnqfnq +13-14 f: ffpzrfflffffffqffff +17-18 p: ppppppppppthpppppzp +3-8 m: hsmzgwdmm +4-7 z: zlzhtzcnzzzz +6-13 b: bvbbbhbbbbbbgbb +11-16 x: lpxtdgxvzbxpcwxc +10-14 d: dddddddddrddddddd +2-5 j: lhjnv +2-3 p: pdkp +3-10 l: lnllqjpgqfl +1-4 t: ttttttt +4-8 q: qxzqqqfczksrwmmzx +1-4 l: lllll +5-19 z: ttzhzcbczmjxzrjzpwz +4-7 s: sgssssjs +12-13 s: sssssssssssbq +9-12 h: hhhlchhhvhwb +5-13 n: fncqnnnnwkhnn +10-13 g: ggggjggggrgcqgg +8-12 q: qqxqvqqmqrpdrxqq +5-6 l: ldwlvnllwq +12-15 v: cvvvkvvvvvvvvrvvvl +6-11 x: kxmthvnkgxq +6-9 n: nfdfnkmnln +3-5 x: nqcxt +2-7 p: tpgkbpwxhpzldtmrqd +8-9 r: rrrsrrzrrmrr +3-10 x: fmmjlxbqlz +1-10 g: cngggggqghf +10-11 r: frrrrrrrrgj +2-5 q: sqgqq +7-8 x: cxxxwxsvjgxx +8-16 t: ttttttgpttqttttt +4-8 n: ndznlllnqwpmnnfwvxb +4-15 j: jjbszvrjjjjfjjjwjjcj +4-5 c: ccvrlc +17-19 f: ffffkpfffjxffwffcff +3-4 z: qfzzz +7-9 s: szssssjsm +13-18 q: lngqqpvqqdjvcqdqvlq +7-8 b: bbbbbbbb +2-4 n: lnqr +11-13 k: kkkkkgkkkqxkhfk +2-4 g: tggqzdxp +3-5 t: ttvtft +2-4 v: pzbbr +1-4 h: thhhh +2-5 m: mqxdt +8-9 k: kkkkkkkkk +2-6 w: jqfwlhv +17-18 x: xhxxxkxxxxxxxxxxxbxx +9-10 p: ppwppdpxvvjzpp +10-16 h: hmhjpxmhvnhqhjfmb +11-15 k: kkxkkkkkkgckkkcs +5-9 b: cwcbjsqbdwmbw +10-11 z: zzzzzzzzzzz +14-16 w: wptvwbwdwwwwwwww +8-10 c: xccclcchcrvtqc +7-12 r: rhnrrrrrrrkqrrtm +3-5 h: hhrhph +7-10 c: wblrcccpctnhvdc +15-17 n: nnnnnnnnnnnnnnnnn +5-13 s: ssssssssrssmslsssv +8-19 k: pvqbhlzkwpnkcgkvkwk +4-5 s: pkrxgskxsswbqwlfxsvw +5-10 d: ddsbdcdsdd +12-13 q: hwrkqrhqrrxmw +5-15 b: blcbfqbgbnghjbnglbbb +1-3 z: zzczzz +3-14 s: jsxssskvsssptw +8-13 n: nnnnknnnnnnnnnn +3-11 c: ccccccccccbccccc +1-6 n: nnnlbn +9-12 k: qkkkkkkkkxwkkk +19-20 w: wwwwwwwrwwwwwwwwwwww +10-15 n: nnnnnnndnnndfnnnn +8-14 c: cvndjxlcsccwxl +1-3 v: vrvwv +8-10 s: rshsssjssss +2-10 n: nnjnnnnnnhnkm +1-2 c: ccbcflcp +3-6 v: jtntcsvvvhp +3-5 q: qqqql +17-19 p: ppppppppppppppppmpg +10-11 k: kkkkkkkkktrk +2-4 f: tgprtftkfx +8-9 x: xxxxxxxld +4-6 l: lhzllllzhv +8-9 g: bhgkfgsggxg +5-9 d: dkdddddmdwd +2-13 s: sdffzhrpbnvtswxsbrcs +7-8 q: qjqpdqvwqqdtxpq +5-8 n: lncnfnzxtsn +8-9 p: khtrxgvhtqwrfpqrd +2-4 s: zhln +5-6 q: bqqqddp +7-13 g: gggjggggggggg +10-12 w: wwwwwwwwwkww +1-4 b: bwbbdbhbl +9-18 j: jjjjjjjjjjjjjjjjjjj +10-18 j: jjjvjjjtjjqjjjjfbjd +11-13 m: mmdmmmmmdmmmqm +6-9 n: nnnndtnvfnn +2-3 q: qckq +16-17 x: xcxxxxxxxxxxxxxpxx +14-17 k: kkkkkkkkqkkkkkkck +3-8 l: llkllllvl +8-13 p: nkptlpntkcknppwpdhb +6-12 s: ssssssssssss +8-14 c: ccccccccccccccccsc +6-9 p: cpppdnppztxbpp +8-12 w: vshmsmbckwjmw +1-10 g: qqtfmmxnbg +1-6 m: mmkmmmfmw +5-8 v: vvvwxvvdqv +7-8 f: ffffffff +2-10 k: kkkkkkkkkk +1-4 g: wjhxhq +3-4 w: znpwwmwcwjgs +5-9 d: ddddrdddwl +6-8 j: kjjhvzrbrwcjjm +2-5 j: jhjjxjjsj +2-6 t: ccwdcm +4-12 q: qlqrsgqqhqqf +13-16 w: mwwwwwhwwwwwwwwwww +9-10 g: ggggggggggmtgwj +1-3 x: xxxx +1-3 n: jxtqjbhpkgrcrdrptvd +14-15 w: wwhwwwwwwwwwwww +7-10 d: wddddzvdddkdm +1-4 p: lzph +6-9 w: wwwzwswwr +17-18 t: kjtktrtfgkhpzthvsjt +12-13 j: jjjjjjjjjjjxs +8-9 r: srrzrmrxnhrrr +1-5 s: spzsshkzfmkdss +1-7 z: zzsmzzhzzxzzzzz +1-2 d: ddvx +2-9 h: hhhhhhhhhhh +6-8 p: ppppppppx +4-8 v: bqvvxmvtvhfvv +3-4 z: zzzz +2-4 r: rrrrrrr +4-5 r: mhrrrrrrq +5-6 b: nkhgfjrzqldbbbbmpx +7-8 n: nnnsnwnncdnn +13-15 p: pppntwcpppppppv +5-11 r: tmkrdcmrpcrrkrl +3-4 v: vvgf +4-5 j: jjvtcj +3-5 p: ppppp +1-3 r: mrrr +13-14 v: vvvvvsvvnvvvhxvvv +10-14 z: ltwsklmfdpvxmxgq +16-17 b: bbbbbbbbbbbbbbbqqbbb +3-8 q: qbpqpvqll +9-10 x: xxxxqtxxzxxxx +8-12 d: pdddnddcbcdx +2-3 m: fmmmsfmvcmkc +9-10 x: slxtnxxtjnnxjnq +5-13 h: hhshhhhvhffhhn +6-14 t: wwwmqttttkpmqtrt +1-5 b: mbbbb +10-12 k: kfkkpkrkkkkkkkh +5-6 m: mnlmbvmm +5-6 x: xxxxvl +5-7 b: dbbbpbc +2-19 t: qhdtkxjzdcwjqjkglpzr +1-4 h: hhgqhnhhhhfhhh +1-10 b: bqbbbbzbbbbbbwb +2-3 b: dbbkgnxmbtpg +3-8 r: rrrjrgrrwq +4-7 s: ssrfwfgvskmssws +13-14 m: smdmmmmmgmfmmjs +13-15 h: hhhshhwhjhhhhhhhh +12-13 n: nnnnnnnnnnnnnn +6-14 n: ndnnpqwrlgfrmn +3-16 m: rldkmmmkhmsmbnqbmgs +2-3 m: rmmmmm +5-9 x: xxxxfxxstxxs +4-8 b: bgbbbbgbbbb +9-11 c: kwcclccccscxp +10-17 v: vvvvvvvvvvvvvvvvvv +13-18 n: nrnnnnnnnnnnfnnnnpn +3-4 c: hbcc +13-14 w: wwgwwwwwwwwwwc +4-6 z: fwmzzzz +12-15 h: vhhfhhhhhwhrhhlkmhhh +1-5 v: jqvvhvvbt +4-5 n: vnnscn +5-6 n: qnrvnnndnffnkknfrdt +6-7 w: wwwwwvznwwwwww +6-12 h: hvhhhdhhhhhr +4-5 m: vtmmmmdmp +8-9 f: ffffffffffffffffdf +5-11 z: zzzzjzhzgjwzzhlz +8-10 d: mdnnfwswns +4-15 c: rptccckzhgcvlccbh +4-5 r: brrrgtd +4-15 x: rxsfxqhhzxdsxqxgw +8-9 c: ccccclcccccccc +2-9 l: mwltgglzztlpllgf +12-13 g: nnjgzggjkgzgd +4-6 j: jjfjjnj +11-14 m: mmfqpmkmmmmmmmrm +6-7 c: cccccqccmccccc +6-9 f: ffzgcfcpfwztjk +6-9 r: sjgrxnrvnqmmlxdrsp +3-11 c: cchwcfcckcn +7-10 p: jpzdflzgkxnbhj +5-6 b: bblblp +7-8 p: ppppppllppp +10-13 b: bbbbbvbbggbbb +5-6 p: pppptp +2-6 t: qttttjtt +3-6 n: vwlhczrnwpnvrnl +8-9 r: jrrdrrrjwrrrrrs +3-4 n: nnwqn +4-8 b: mbscbwxn +10-12 v: tqbvxmlqvvvv +1-9 l: qcllllncllcllllrn +6-10 b: gbbxfblbbx +11-13 g: gggqgggtgggtgrgsg +2-3 f: fjkz +5-11 t: tttttttttttt +5-18 j: zjdxgjjpshjjkjbtjvg +9-11 k: kjkfkwkkrkgk +1-8 w: hwhcwwbffvcdwzwbww +7-16 l: rrljlvlmmlssllkllqj +1-4 d: hddldvddddf +7-9 b: bgbbbrmblb +2-5 v: ltvvvv +5-6 r: rgrrdvrrrrrrr +8-9 n: wnnnnnnnn +1-8 q: sfmbjqqwvqqq +2-11 b: wblbmlrcwffl +4-5 n: cfmnn +15-16 g: gggggggggggggggq +6-10 x: xxxxxxxxltxxx +5-9 g: gggbgxgggpgn +8-10 z: zzztjzzzqzp +4-5 x: xxxfl +6-10 v: vvvhvvvvvv +6-8 v: tdrvsnvpvzxbwvv +8-11 q: qqqqqqqqqqjqqq +12-13 z: zjzzzvzjkzzzz +1-8 b: bsqqmbnbcwhkphfh +1-5 z: zdjzzrm +3-4 m: vlmmtbmmxcdkmdmfb +7-14 k: kkwpcjfkkkrknzkk +1-3 f: cfbljmpfghhgxdbg +6-7 n: mrnhnxn +16-17 g: gggggggggggggggmr +7-8 q: qqqkqhqqwkpzshq +9-15 j: jjjjjjjjjjpjjjj +5-6 t: tttttl +4-15 h: hhhhhbsbphhhlzgh +4-6 h: qhhlhh +2-6 f: wfwdff +1-7 c: rczccfx +3-8 b: jkznbbbqlk +8-14 r: srtchmrjxmzznm +4-8 s: ssgskspsdsmclrmxzp +9-12 j: kjjjfcjjljjqjj +3-5 l: lllvllll +15-16 s: sssssssssssssszs +5-6 z: zzzzmfjz +13-14 v: vnvvgvvvvwvvfrvspv +7-8 t: ttttttkst +17-18 f: ffffffffffffffffhx +8-11 b: bbbkbswbbpbnbbbbx +7-14 s: ssjfssssssjsdp +6-8 s: sssssqsps +5-8 h: hhdhphhmhhhh +8-9 r: prrmrpsrrrvrzrrrsrn +4-17 t: ttttjttjttthtktttt +7-9 v: tvvwvpvrbnvvvv +8-12 j: plfsgrjjgjrjwcgc +2-7 r: krqzzprxrldwg +4-11 k: sfpkkkcwkwk +2-3 z: zzhp +6-9 h: xkjwshvmhbjhfjvkwcmh +4-8 d: dvndvmdzn +3-6 r: wrrrrr +6-8 g: kggdgfgzz +3-5 j: jjjjj +2-9 x: qkksvkxxvxbxx +12-17 b: kjpbpbmddcnwbbbxb +2-10 w: rwpbpbwrbmwgwwvghvg +1-12 f: fbfqmffffftf +1-8 z: qvbjgplznjztjvqjhv +1-5 b: bbbbbbbbb +7-11 p: kddppkdtqpjcfpp +14-20 z: zzzzzmzzzzzzzzzzzzzz +7-8 p: sjspdphq +11-12 w: wpwwwwwwwwwd +7-12 d: sdddddkdjddd +6-8 g: gggfzzhglgxqpgbnbgbx +10-13 c: hcccctjcccccccn +14-16 k: kkkkkvkkkkkkkkpxk +16-18 c: ccccccccclcccccccjc +2-4 r: llrh +11-13 g: ggggggggggggm +1-4 z: zfwzzz +4-6 s: ssssfs +5-12 t: tttttntttttt +2-6 n: gnghnp +1-3 q: qqgq +10-11 f: rdzfzffhtfffffff +4-9 k: kpfhvkkkk +3-10 t: twlkttptttt +4-10 d: dkdvgkdddwd +5-12 t: ttttnttghtthtvtt +4-5 c: ctczwcccc +17-18 l: llllllllllllllllmx +2-8 t: knmttnttdjbtttvtkt +1-2 j: jdjjjj +12-16 j: wmqlfjlnxnvlrjkmj +13-17 s: snsdsssssssssssss +8-14 h: hhhhhfhhhwhphhscphd +9-10 b: bbbgbbbbqcb +15-16 z: fjjcjrwjtrcnltzz +6-8 s: ssssxjshd +2-4 k: kkkw +3-6 s: xsfgbpss +13-15 x: xxpxxxxdxxxgjxgxxx +4-5 l: llqlllsl +10-15 g: jggxgsggggggjtgg +2-6 b: prpbjbkbbkcb +7-9 h: hhhhhkfhh +8-11 f: fzhftffvffwffnl +11-15 x: xxxcxxxxxngxxxcxx +11-12 k: skkkkkkkkkxhn +5-15 n: cnnnnqqbnnnncznnp +1-3 v: vqvxlfwpjvxtpkvlhxjv +3-8 b: gfbbbsfbb +3-4 z: qzzzbczk +8-17 t: cpttttttpttttttttt +11-17 l: lprllfllllnlllllnll +7-8 f: ffffffrd +2-6 z: hghjzzwpwz +6-13 m: thzmtmcsmtctf +2-4 c: dctc +10-17 s: sssssssspzssssssl +6-10 j: jjjjljljjjjjzj +5-7 b: bbxbvsxphgrmnqgzbbx +1-11 l: rlnlllllllvlllll +13-16 b: bbbbfbnbbbbbzgbwbb +5-11 p: bpjpnpqpppjpmppphrk +1-3 l: llll +11-15 l: llgllllcllllllllfll +2-7 x: kxsnzzx +18-19 g: gglgggvqkjzgkgggzgg +3-5 j: fqvjjcjjhb +6-7 c: fccccccct +13-16 m: mzmtcgmcmmmkdmlk +5-9 w: wwsjwwwww +1-2 m: jzmj +16-18 m: mmmmmmvmmmmmmmmqwn +11-12 w: wwwbrwcwwxwwmwwrdww +3-4 v: nsvddwnvvvm +5-8 m: mjmrbpmh +2-3 t: xdrtzgdl +2-6 n: fnwwgnnzwsp +7-9 p: jpppppvppsqt +1-8 k: gkkkkkkkk +2-9 q: jqqqwfzxhqqqqsxqm +2-4 t: jtwt +6-20 d: hqdkcmkdndjrftmgjgqc +2-9 r: crgmrqpwrrr +9-15 p: pwmjlrgnrppwphg +3-4 t: ttqttttnttttt +1-5 v: hvvvv +1-2 x: ggxxxxt +17-18 m: mmmmmmmmmmmmmmmmcl +4-10 d: dxtmsjvhczfjd +8-10 x: xpbxsxpxgxqxxqxxk +6-9 f: ffffmffdwkfrlffx +8-10 m: ldmmgxxmbmnqftt +12-13 p: ppxpxhppgppqqpvppp +4-12 k: kkkkkkkgklkkjkkqvkk +3-4 x: xxcp +7-8 k: kkkkkkkr +11-14 d: dddkpddvdddddg +3-8 l: lsgmlqll +12-13 z: znzzzzzzzzzzrz +3-5 h: hhdphh +3-4 h: hqhhh +4-6 f: wfsfrffzf +8-12 k: ktkdmhvkxktkhr +2-6 d: dpdwdddd +7-12 n: nnnnnnpnnnnxn +1-3 v: vvvv +3-11 q: gmqqqqmqshpq +3-4 j: jjjjkjhjf +2-4 b: glbxb +13-14 s: ssssssssssrssds +16-18 d: dddddddddddddddddd +3-9 g: fgggzttsg +11-12 r: grrrrrrqrrrrrrr +2-5 q: cdqqv +6-11 l: lfclllslllxllll +2-3 d: dzdddg +2-4 n: tkwm +4-5 r: kdccjnrfrzrhplrz +4-16 j: tfxsmxlrjptjjrxw +16-17 p: stpsgsgwvqrzpblpsx +8-12 r: rrdrgrrgrrhrwqjmp +5-8 j: jjqjjkjjjjnv +2-7 n: wzgnnnnnn +1-3 v: vvvv +4-5 l: hlgnx +8-15 c: ccccpccczvcsccc +3-15 f: ffnfffffffffffv +4-5 w: wwjgww +10-15 d: ddddbcrddmddddld +7-11 w: wwwwwwwwwwz +3-4 h: hhhh +4-9 v: vvpgvvnvtv +8-11 q: qqqqvqqqxqcqnmq +2-5 s: lsnpdqqqsj +8-9 g: ggsgggggz +6-10 s: sssssbsbbtss +12-16 z: zhzzzszzzzznnzbwz +9-10 p: ppnpdpgldl +10-11 r: rrrrrrrlrtfrr +1-13 h: xhhrhhhhhhhhchhhhcp +5-14 m: mmmmmmmmmmmmmqm +8-9 h: hhhhchhhhhkt +3-4 f: fflf +7-13 s: ssssssssscsssjs +2-3 t: twlcfmbmbxtt +4-6 v: vdvhvf +1-7 c: bccccccccccc +13-14 r: wrrvrvrtrrrrrrrrrrr +1-3 b: sjvfpdrbcnwr +1-7 z: xzzzzwjz +6-14 j: jfrxjjjrqcqjwmbfjjjm +11-14 f: ffffffffffqffzqf +6-8 z: zzzzzrzw +1-5 j: jjjnjjjjj +9-10 g: ggggggxggg +7-9 r: rrrvrrbrdr +9-18 j: jjjjjjjjnjjjjjjjjfjj +14-18 q: kjtxqqqqltlpgqshdx +8-12 k: kkkkkkwjkkkfkkk +2-4 s: ssvs +3-5 z: zzfjk +9-10 m: rmmlmsmfmbj +14-15 z: nlzzzzzzzzzdzzzzzz +8-12 r: zrrrrprrxrrrrkrhk +1-2 z: qlfzd +1-6 j: kqjpjzpsgjjqz +1-5 s: qfssks +2-5 r: nrrzrr +4-6 g: kggggg +6-7 c: cccccdqcc +2-6 x: vjkxbrfwnj +16-18 s: kssssssswssssssssssb diff --git a/2020/Day 3/Solution.py b/2020/Day 3/Solution.py new file mode 100644 index 0000000..b524718 --- /dev/null +++ b/2020/Day 3/Solution.py @@ -0,0 +1,36 @@ +input_file = "/tmp/aocinput" + +map_table = [] + +with open(input_file) as slope_map: + line = slope_map.readline() + while line and line != "\n": + map_table.append(line) + line = slope_map.readline() + +def check_for_trees(direction=(3,1)): + x_pos = 0 + y_pos = 0 + + width = len(map_table[0]) + height = len(map_table) + + tree_count = 0 + + while y_pos < height-1: + x_pos,y_pos = ((x_pos+direction[0])%(width-1),y_pos+direction[1]) + if map_table[y_pos][x_pos] == "#": + tree_count += 1 + + print(f"We came close to {tree_count} trees by going {direction}.") + + return tree_count + +def check_multiple_directions(directions): + result = 1 + for direction in directions: + result *= check_for_trees(direction) + + print(f"Result is {result}.") + +check_multiple_directions([(1,1),(3,1),(5,1),(7,1),(1,2)]) \ No newline at end of file diff --git a/2020/Day 3/input.txt b/2020/Day 3/input.txt new file mode 100644 index 0000000..a3ac506 --- /dev/null +++ b/2020/Day 3/input.txt @@ -0,0 +1,323 @@ +.#......#..####.....#..#....... +#.#...#...#..#.#...#.#...##.##. +#.#....#..........#...##.....## +#.#.#.....##......#.#.......### +..#..###....#.#....#.#.#..#.... +.......#.#....##..##...#...#... +..#..#..#..###.......#.....#.#. +.#.......#...##...##.##......## +#.#.##..##.#..#....#..###..#.#. +#.....#.#.........#.....##.#.#. +..#.#....##..#...#...##........ +......#....#..##.#.#......###.. +.......#.......#......##...#... +.##.....#.......#...###.....##. +.#...#.##..##.#..##....#....... +..#......##...#..#...#.#.##.### +.##.##.....##....#..#......#.#. +.#.....#..###..#.##.#.....##.#. +......##..........#..........#. +.##....#.....#..##.#..#.#..###. +..##.......#....#...##...#..#.. +.##...#.....#.###.#.#..#...#.#. +.....##.#.##..##...#........... +..#..###.##.#.#.###...###..#.#. +.#........#..#.#........#.#...# +....##.......#....#.#.##.#..... +....##........######..###..#.#. +#.#.#............#.......#..#.. +...##...#.##.....#.#..#......#. +......#.##.#....##..#.#..###... +##.....#.#....#....#.##.#.###.. +#..#..#..##.#..##.##.##.#.##... +.###.####..#..#........#.....## +.......##..#.......#........... +.##...#............#.#.##...#.. +....##.....#...##..#..#.#..###. +...#.....#####.#..#...##....##. +#.....#.#.#....##.......##.#.#. +......#.#..#.##.#######......#. +#.##...##....#..###.#.......#.. +.....##...#....#...#....##.##.# +....###......#...###..#......## +..#...##..##.######..#.#......# +......##....#....##..#......##. +.#...#..##..#.###.#......#....# +##....##..#..####.#.....#...#.. +.#.......#...#.......##......#. +......#...#...#........#....... +.#........#.###...#..####.#..#. +##...#.#............#.....###.. +.....###.#.##...........###..#. +.#.#...#.....#.#.##..##...####. +..##.......#..#.##.#....#.....# +.#..#.#..####.....###.#.....#.. +..#..###.....####..#.##.#.#.##. +.###..#.....#......#...####.... +...#.#..#.#..#...#...#....##.## +..###....#.##.....#..........#. +###...#####......##............ +..###.....#........##.#...#..#. +..##.##.#.....##........##..#.# +##..#.#...#.#..#..###.#....#..# +....#..#.#.....#..#####...#.... +....#.........#......##.##..... +.#...####.##......##..##.#..#.# +...#...#.##..#...##..###...#... +###...#.....#.##.###.###..#.#.. +..#......#.###.....#..##.#...#. +#.....##.########...#####....#. +........##..#..##..##.#........ +....#.######....##..#..#.##..#. +#.......#..##..#..#.#.#..##.##. +...#.#..#..#.......#......###.# +.#.#..#.#..#.##.#.............# +#....#.##.#.#.....#..#.#..#.... +...###..#...#....#.........#.#. +.#..#.....##..#.#..#.#.......#. +..#...##...#......#......####.. +....#..#.......#.......#.#..#.. +#...#..#...........#.#..#.....# +#...#.#.......#...#....###....# +.#..#.#.##....#......#........# +..#...#..##..#..#..#..#...#.#.. +..#.#.........#....#....##..... +##.....##.#.#.#.........##..... +.##...#.##...........#...#...## +.##..##.#.#..........##..##.... +#....#....#.#...#.#..#....#.#.. +####....##.....#..##.###....... +#..#....#......##.#.#....#..... +.....#....#.###.##.........###. +#.......#.####..#..#..##....... +##.#.......#..##..#....#..#.#.. +..###...#.#...#.....##.##.####. +....#...#.#....#..#..#.....#.## +#.....##.#.#..#.##..#..##...... +................###..#....##... +..#.##.....#..........##.#...#. +..#.#..#.#....#.#.#..#..#..#.#. +#...#..##.#.#...#..#...#..#.... +#..#.#.........#..###........#. +.#...#.............#..###..#..# +#.........#.#..#...#.#.....#..# +....#..#..#.#.#...#...#.....##. +##...###.#.####..#......#...#.. +..#..##...#.#......#.#.......#. +#......###....##.#.##.......... +#####....###..#...............# +##.#...####....#....#...#....#. +.#.......#..#.....#...#.....### +...#..#.#.#....##......##...#.. +...#.....#...#.##.#..#.#....#.. +#...###....#...#.#....#........ +.#.......#........#...##.##.##. +.....#....#...##.....##...###.# +....#....#.#..#...##.##.##..... +.......#............#...#.#..#. +.#............#.....##.......#. +........#....#....##......##.## +.......##..#.#..#.##..###..##.# +#..##..##.........####.#.###... +#....#..#...##...#............. +#...#...###..........##..#..#.. +....#...#..#.....##...#........ +#.....#......#.#.....#...#..#.. +..#.....#.....#....#..#........ +..#..#.....#.#.........#..###.. +................###..#.#....#.. +#.....#.....#.#.#.#.#..#...#.#. +#....#....#.#..........#.#....# +....#..#......#..##.#...##..... +..#.#...#.####....#.#..#.#..#.. +.........##......#.....##...... +##.#.###.#.....#.....####.#..#. +.....#.....#..#....#..###.#.... +##..#.#...#.##....#....#....... +.....#......#.#...##..#.#...... +....##..#...#...##..##.#....#.# +............#..........##.#.... +##..#..#.##..##..#.#....#.#.#.. +.......#.#...#...#.#...#..#.... +#....#.#...#...#........#..#... +...........#.......#...##..###. +.#..##......#.##.........##..#. +...#...#...###.#.##....##.#..#. +#...#..#.#.#.....##..#.......#. +.##..#.###.##......#.#....#.#.# +..#....#.......#..#..#.#.#.##.. +#...#...###...###.........#.... +.#.#...#.....##.#.#..#....#.##. +.........#.#.##.....#.#.###.... +...#.#...#......#...####......# +...##..##....##......##...###.. +###...#..#.......##.....#....#. +...#..#..#..###...##.##..#..#.. +...#......#......##..#.#.##..#. +...#.........#....#.#....#.#... +##................#..#.#.....#. +....#.##...#..#.##...##.#.....# +......#..##.##..###.#..#.##.##. +.#.#...###.....###.....##...### +.##.....#.#.#..#..###..#..#..#. +#.......#..#..#....##.....#.... +...#.#.##..#..#......##.##...#. +....##.#......#...#..#..#...... +.####.#..#.....#..##.#...##..## +..#..#...#..........###..#....# +.#.#.##.##...#............#.... +........##..##......#.##..#.### +...#.#....###......##.......#.. +..##...#...#.#..#.....#.....#.. +##..#...###..#..#.#.#...#...#.. +.....#..#....##.....##.....###. +....##...###.#..#.#....##..#..# +#......#...#....#......#...##.. +....#.##...#.#......#.#.##...#. +.......#.....#...#####...#.#... +...#.....##.#............#..... +...#.#........#.#.#..#......... +....###......#.#.#..#.####.#..# +#.....#.#.#.....#.#.#.....#..#. +..##.##......#...#.#........... +###..###....#.#####......###... +..##..............##.#.#....#.# +#..#...#..........#..#.#.#..### +##.###............#....#.#...#. +#.#..#.#..##.#.#....#...#...... +#....#...#..##.....#..#.#..###. +..#.....#.#....#.#..#.##.#..##. +...##...#.#.##...#....###....#. +......###.####.......#..#.#.#.# +.#..............##........#.... +...##.##...##....#..#.......#.. +.....#.....#....###...#..#..#.# +.#.....#..#.....#......#.....## +#.#.##.#..#..#.....#.##..###... +..#......#...##.###..#.#...#..# +......#.....#...##......#...... +##.#........#..........#.....#. +#........##.#............##.... +...#......##...#.#.....##...... +...##.......#....#.#..#.#.###.. +..#....##..##.##.....###....#.. +..#...#.#...#.....#..........#. +......#...#...#.#.##.#...#.#.#. +.#...#......#.##........#...... +.##.##..#....#...#.#...##...... +#..#......#.#...........#....#. +....##.#....#...#..#....#.#..## +#....##.##....#.#..##.#........ +.##.##.#....##.....#..#....#..# +...#...#.....###.#.##.......... +....#...#....##.......###...... +#.........#......#.#.......#... +#..........#..##..#.#.......... +.....#.......#..##.##....##...# +........................#.#.... +#..#.........#.............#..# +#..#.....#.......#....#....#.#. +..##..##.......##....#...#..... +.##......#..##......#.###...... +...#.#........#.......##..###.. +..##...###.###......#...#....## +#...#...#.....###.#.#.#..#..... +#....#.........#..##...#...##.. +#..###..#.#.#.##.#..#.#....#.## +#...#.#.....#.###.#.......#.... +..##..#..#....#.#...........#.# +#.........#.#......#...##...... +.######......#..#....#.#.#....# +##..#.#..####.###.........#.... +###########.....##.##...#..#... +#...##.#.#....#.#....#......#.. +...#..##..#..##..#......#....#. +.#....#...#....#.#..##....##... +#..#.#............#....#.#...#. +...#...#..#.#.##......#..#.#... +#.#...##.....#..#.##......####. +.#.#..##..#.....#.#..#.##...... +#.#.##......##.....#..#.#..#... +#..##...#.##.#.......#.##...... +..#.......#.#.#...##..##...#... +.#...#..#..#.#.........#..##... +#..#.......#....#.#...#.###...# +.......#..#.......##.#.#...#.#. +.#.................###.#..###.. +..........#.#.....##..#####...# +#......#.#..##.#.#...#.##.#.... +#......#.#..##.##.#...#....#... +....#..#......#....#....####### +.#...#......#....###......#.### +#.#....#.#...#.###......#..#..# +.###......#.#...#.####.#..####. +######.#.....###.#...#.#.....#. +.#.###....#..#.#.....#.....#### +.......###.#.........#..#...... +#...#.....##.#......####....... +..#.#..##.#.#...#...#..##..##.. +.....#...##.....#...##......##. +##..#..#.##..#.#......#.....#.. +##.........#.#.##.#..#.#....#.# +.#........###...#.........#.... +...#..#.#..#....####........... +#.#....#..##..####.#...#.##.... +.#.....#.......#..........#..## +...#.......#...###..#.....#..## +.........#.###.#..##...#.##...# +.#..........##..####...#..#.#.# +.#...##...#............##...#.# +...#....#.#..........#.#..#.#.. +.#.#...##....##.#.#.#....#..... +....#..#.....#.#..#.#..#.##.### +.....#.#.....#..#......#.#.#... +.....#.#.#..###..#.#..###...#.. +#.......####...#.#..#......##.# +....#..#..###......###.##....#. +##.....#.....#.............#..# +#..#..#...##.....##..#..#.#.... +.....#.#.###...#............... +#.#.#.....#.#..#.#...#.......#. +..##.##............#....#..##.. +#....##...#.....#.###...#.#.... +#...##.#.........#...#....#.... +##.##.#...#.#...###..#....##..# +....#....##..#..#.......#...##. +.#...#...#..#.....#..###.#..#.# +....#..###......#....##....#... +#.#.....#....##.#..#.#...###... +.......#............#......#... +.##..#.###.#.............###... +..##...##.#.#.#.....#........## +....#.###....#..#..#...#...#..# +.....#...#...#..#....#.....##.. +###.#.#.....#......####.....#.. +#.#.###............#......#.... +..#.....#..#..#..#....#......#. +#...######...#....#.##...##.#.# +##.#.#.#..##......##.#..#.#...# +............#.#..#.##....#..... +......#............#.#...#..#.# +.#..##...##..#.#.#..###.....##. +#.###.#...........#...#....#... +....##.....#...##...#...###.#.# +.####.#.#.....#.#..#.#.##...... +.#...##......###...#..##..#.#.. +.#......#...#....##.....##..#.. +..........##.....###.##.#...#.# +.#........##.#..............#.. +#...###..#...#.....#....#.....# +...#......#..#...#...#..###.#.. +.#...##..#........#.......#.#.. +.#.#.##.........##.##......#..# +#...#.#.#...#.....#.#...#.#..#. +#.#..#...#...#...##..........#. +.#...........#....#..#.#..#.#.. +#.......#......#..#...#........ +.....#..#...##..###..##........ +......#...#.....#..#.#.#....##. +....##..##..##....###.##....... +.#........##.#.#...#..#........ +.....##...##...#......#..#...#. +..#.....#....###.#..##....#..#. +......#..#...####.#.....##.#### diff --git a/2020/Day 4/Solution.py b/2020/Day 4/Solution.py new file mode 100644 index 0000000..ddd8b25 --- /dev/null +++ b/2020/Day 4/Solution.py @@ -0,0 +1,78 @@ +import re + +input_file = "/tmp/aocinput" + +height_re = re.compile(r'^([0-9]+)(in|cm)$') +passport_id_re = re.compile(r'^[0-9]{9}$') +color_re = re.compile(r'^#[0-9a-f]{6}$') + +def check_limits(to_test, min_valid, max_valid): + return False if (to_test < min_valid or to_test > max_valid) else True + +def validate_passport(record): + for field in record: + if field[0] == "byr": + if not check_limits(int(field[1]), 1920, 2002): + return False + elif field[0] == "iyr": + if not check_limits(int(field[1]), 2010, 2020): + return False + elif field[0] == "eyr": + if not check_limits(int(field[1]), 2020, 2030): + return False + elif field[0] == "hgt": + regex_match = height_re.match(field[1]) + if not regex_match: + return False + if regex_match.groups()[1] == "cm" and not check_limits(int(regex_match.groups()[0]), 150,193): + return False + elif regex_match.groups()[1] == "in" and not check_limits(int(regex_match.groups()[0]),59,76): + return False + elif field[0] == "hcl": + regex_match = color_re.match(field[1]) + if not regex_match: + return False + elif field[0] == "ecl": + if field[1] not in ["amb","blu","brn","gry","grn","hzl","oth"]: + return False + elif field[0] == "pid": + regex_match = passport_id_re.match(field[1]) + if not regex_match: + return False + + return True + + +records = [[]] + +valid_passports = 0 + +with open(input_file) as passports: + line = passports.readline() + current_index = 0 + while line: + if line == "\n": + records.append([]) + current_index += 1 + line = passports.readline() + continue + + for raw_entry in line.rstrip().split(" "): + records[current_index].append(tuple(raw_entry.split(":"))) + + line = passports.readline() + +for record in records: + if len(record) == 8: + if validate_passport(record): + valid_passports += 1 + if len(record) == 7: + is_north_pole_credential = True + for field in record: + if field[0] == "cid": + is_north_pole_credential = False + break + if is_north_pole_credential and validate_passport(record): + valid_passports += 1 + +print(f"There are {valid_passports} valid passports out of {len(records)}") \ No newline at end of file diff --git a/2020/Day 4/input.txt b/2020/Day 4/input.txt new file mode 100644 index 0000000..242437a --- /dev/null +++ b/2020/Day 4/input.txt @@ -0,0 +1,1029 @@ +iyr:2015 +hgt:59cm byr:2029 cid:219 pid:9381688753 eyr:1992 hcl:#b6652a +ecl:#7a0fa6 + +ecl:blu iyr:2018 pid:943614755 cid:335 +byr:1968 +eyr:2026 + +pid:067285985 hcl:#ceb3a1 cid:281 +ecl:#07219a eyr:1944 +iyr:2025 +byr:2029 hgt:64cm + +hgt:185cm +ecl:gry cid:222 +iyr:2016 +hcl:#866857 byr:1970 pid:269105457 eyr:2026 + +pid:260043570 hcl:#b6652a cid:275 byr:1990 ecl:brn +hgt:163cm iyr:2012 + +hgt:181cm pid:604983466 +iyr:1930 eyr:2039 byr:1950 ecl:#906548 hcl:#b6652a + +iyr:2025 eyr:1956 hcl:z pid:#1c42cc byr:2006 +cid:327 hgt:141 ecl:#f2affc + +hgt:178cm byr:1939 pid:595705064 ecl:oth +iyr:2020 eyr:2026 +hcl:#888785 + +hgt:159cm iyr:2016 +hcl:#efcc98 pid:139063139 byr:1980 ecl:brn +eyr:2020 + +pid:646870519 hgt:179cm eyr:2022 iyr:2011 hcl:#602927 +ecl:brn +byr:1997 + +hgt:170cm hcl:#ceb3a1 iyr:2014 eyr:2023 ecl:oth pid:243067344 byr:1962 + +hcl:#866857 +ecl:oth pid:704529614 +byr:1941 cid:94 +eyr:2026 hgt:180cm +iyr:2010 + +iyr:1924 +pid:36196401 +hgt:74cm eyr:1921 +ecl:#3acf57 hcl:a4e4c0 byr:2024 +cid:153 + +pid:770262094 hcl:#866857 +eyr:2020 hgt:151cm +ecl:blu +iyr:2012 +byr:2002 +cid:242 + +pid:984364862 ecl:dne +iyr:2020 +hgt:151 eyr:2023 cid:314 hcl:z byr:2012 + +hgt:178cm iyr:2020 hcl:#6b5442 ecl:grn cid:323 eyr:2030 byr:1925 pid:285882039 + +iyr:2019 pid:986123633 +eyr:2024 byr:1990 hcl:#7d3b0c ecl:hzl hgt:192cm + +hgt:90 +byr:2025 iyr:1933 +ecl:dne eyr:2040 pid:8194347544 + +hgt:163cm byr:1934 eyr:2026 ecl:amb hcl:#eec6fb cid:303 pid:721792159 iyr:2013 + +iyr:2019 +byr:1920 hcl:#a97842 +cid:186 eyr:2020 +ecl:oth +hgt:167cm pid:217112082 + +pid:#55ce6b hcl:d30f6b eyr:2040 hgt:60cm ecl:dne iyr:1920 +cid:107 byr:2029 + +ecl:amb eyr:2024 pid:644304174 hcl:#6b5442 iyr:2018 +byr:1935 +hgt:182cm + +ecl:hzl pid:559383552 +hcl:#ceb3a1 eyr:2024 hgt:161cm byr:1968 iyr:2010 + +iyr:2018 +hcl:43fafb +hgt:65cm eyr:2027 +byr:1937 pid:#4bff3e ecl:grt + +eyr:2024 +iyr:2014 cid:163 byr:1924 hcl:#18171d +hgt:166cm + +eyr:2026 pid:955203781 +iyr:2016 cid:52 hgt:167cm +ecl:grn byr:1963 + +pid:479898570 hgt:165cm eyr:2024 byr:1932 +iyr:2010 ecl:grn +cid:88 +hcl:#c0a76e + +cid:241 hgt:178cm ecl:blu pid:069760797 hcl:#623a2f byr:1925 eyr:2029 iyr:2019 + +hgt:172cm eyr:2036 +iyr:2016 pid:#98caec +ecl:dne hcl:z + +ecl:#510672 iyr:1938 byr:2018 hgt:172in hcl:z cid:339 eyr:2039 +pid:#6c1216 + +hcl:#efcc98 +byr:1972 ecl:brn iyr:2011 pid:190911803 eyr:2025 hgt:171cm + +pid:0636917222 byr:2009 hgt:96 +hcl:z +iyr:1997 ecl:hzl eyr:2026 + +byr:1989 iyr:2011 pid:071588682 cid:155 ecl:grn +hcl:#ceb3a1 eyr:1955 hgt:170cm + +cid:266 hcl:#a97842 byr:1964 hgt:175cm +iyr:2017 ecl:brn + +pid:930133867 ecl:grn hcl:#733820 hgt:63in byr:1995 +eyr:2021 iyr:2014 + +eyr:2025 pid:284329794 +ecl:blu hcl:#ceb3a1 iyr:2012 +hgt:65in byr:1961 + +iyr:2010 byr:1998 +hgt:160cm +eyr:2029 hcl:#cfa07d +pid:253052921 +ecl:amb cid:324 + +pid:026835791 byr:1999 eyr:2022 hgt:162cm +hcl:#7d3b0c ecl:brn iyr:2014 + +pid:672752198 eyr:2030 byr:1952 hgt:65in iyr:2016 ecl:amb +hcl:#cfa07d + +hgt:193in +byr:2019 hcl:z pid:#cbc08c iyr:1951 ecl:#3e9f2f eyr:2002 + +ecl:utc pid:571477176 +byr:2012 eyr:1929 cid:240 +hgt:175in hcl:f4ef32 + +cid:93 hcl:#a5db2a +pid:274721479 byr:1940 eyr:2022 ecl:gry +hgt:157cm iyr:2012 + +pid:540858450 iyr:2014 cid:95 byr:1964 +hgt:156cm hcl:#866857 ecl:brn eyr:2026 + +pid:532626994 byr:1939 iyr:2017 +ecl:blu eyr:2026 +hcl:#fffffd hgt:184cm + +hgt:70 pid:404622083 +iyr:2026 +byr:2022 hcl:c1ba7f eyr:1979 ecl:lzr + +pid:931910908 +cid:177 hcl:#6b5442 +ecl:gry hgt:184cm +byr:1963 eyr:2020 +iyr:2014 + +iyr:2019 eyr:2022 hcl:#ceb3a1 hgt:191cm ecl:gry pid:954124659 cid:123 byr:1939 + +pid:411032659 byr:1950 +hgt:153cm eyr:2020 iyr:2014 ecl:hzl + +hgt:156cm eyr:2023 pid:29836124 byr:2017 hcl:56de83 ecl:zzz cid:179 +iyr:2018 + +hcl:#866857 iyr:2014 hgt:190cm byr:1998 pid:565524574 eyr:2020 + +byr:1973 hcl:#888785 iyr:2016 eyr:2028 hgt:173cm ecl:blu + +byr:1987 +pid:028825120 hcl:#7d3b0c +eyr:2023 hgt:190cm ecl:oth iyr:2014 + +eyr:2036 pid:172661617 +ecl:#ae607d byr:2017 hcl:z +hgt:82 cid:153 + +pid:202888577 eyr:2028 iyr:2013 +byr:1933 +hgt:68in cid:151 hcl:#b6652a ecl:brn + +iyr:2020 +ecl:amb eyr:2025 hcl:#a355be hgt:63in pid:146650894 + +iyr:2016 hgt:192cm pid:531372965 hcl:#fffffd +ecl:blu eyr:2025 + +eyr:2025 ecl:blu byr:1961 cid:224 iyr:2016 hcl:#6b5442 pid:368694418 +hgt:169cm + +pid:43707504 iyr:1945 +ecl:grt byr:2010 +eyr:2026 cid:273 +hgt:165in hcl:z + +hgt:159cm ecl:gry +hcl:#6b5442 +eyr:2030 pid:915819272 iyr:2015 + +pid:808392314 ecl:gry cid:285 hcl:#efcc98 byr:1923 hgt:161cm iyr:1941 eyr:2020 + +iyr:2017 +hgt:161cm +eyr:2025 hcl:#602927 ecl:oth pid:081917611 byr:1983 + +eyr:2028 pid:831032131 ecl:brn iyr:2013 hcl:#341e13 cid:198 byr:1991 hgt:67in + +hgt:181cm cid:320 pid:032769757 ecl:grn hcl:#733820 +eyr:2022 byr:1992 + +iyr:2010 cid:128 hgt:171cm byr:1932 pid:923377839 ecl:brn +hcl:#18171d eyr:2020 + +ecl:hzl iyr:2021 byr:2008 pid:569583509 hcl:f74823 +hgt:188in + +iyr:2016 hcl:z eyr:2021 ecl:#24ceee pid:349492243 hgt:67cm +cid:144 byr:2010 + +ecl:gry +byr:2029 hcl:3a0c30 hgt:163in eyr:1962 + +byr:1927 hgt:180 +cid:87 +ecl:#7ea777 +hcl:#623a2f iyr:2024 pid:597098940 eyr:2027 + +cid:89 hgt:193cm hcl:#623a2f +iyr:2010 eyr:2026 +pid:374988952 ecl:hzl byr:1973 + +eyr:2023 iyr:2013 byr:1977 +cid:329 pid:711256829 ecl:grn hgt:154cm +hcl:#866857 + +pid:212535692 ecl:brn +hcl:#b6652a hgt:169cm eyr:2025 byr:1920 iyr:2019 + +ecl:blu +byr:1962 +hgt:157cm iyr:2020 eyr:2027 pid:451039029 +hcl:#6b5442 + +hgt:187cm pid:187808959 eyr:2026 iyr:2020 +ecl:oth +byr:1956 hcl:#733820 + +byr:1959 hgt:160cm ecl:blu hcl:#6b5442 +cid:193 eyr:2026 +iyr:2014 +pid:812555315 + +hgt:153cm iyr:2011 +ecl:grn hcl:#ceb3a1 +eyr:2026 byr:1966 pid:503356330 + +ecl:#95d8a9 +eyr:2024 pid:382174744 +iyr:2025 +hgt:152 hcl:#888785 byr:2012 + +eyr:2028 +iyr:2017 byr:1938 +cid:279 hcl:#733820 ecl:amb pid:497365268 hgt:191cm + +cid:335 byr:1982 hgt:171cm iyr:2013 +ecl:hzl eyr:2030 +hcl:#efcc98 pid:018900639 + +eyr:2029 hgt:175cm pid:530128340 +hcl:#888785 +ecl:gry +byr:1947 iyr:2019 + +hgt:183cm +hcl:#6b5442 eyr:2023 ecl:grn +byr:1934 + +hcl:f8ed45 cid:54 iyr:1997 +hgt:69cm eyr:2037 ecl:gry +pid:184cm byr:2012 + +ecl:grn hcl:#733820 byr:1928 pid:002528194 +iyr:2014 eyr:2021 hgt:157cm + +hgt:163in +hcl:#c0946f byr:2018 eyr:2021 +iyr:1955 ecl:#216920 pid:87155266 +cid:298 + +eyr:2026 byr:1945 cid:161 iyr:2017 hgt:170cm hcl:#fffffd ecl:hzl pid:649441221 + +byr:1930 +iyr:2014 pid:151910079 hcl:#18171d ecl:oth eyr:2029 +hgt:169cm + +ecl:blu byr:1950 iyr:2010 cid:260 hcl:#cfa07d +hgt:167cm +pid:910685738 eyr:2021 + +hgt:182cm byr:1993 +eyr:2030 pid:073035999 hcl:#341e13 +cid:117 + +byr:1981 +hcl:#866857 +eyr:2028 iyr:2012 ecl:blu pid:620133246 hgt:157cm + +hgt:191cm +iyr:2010 pid:089995590 eyr:2023 ecl:amb byr:1986 hcl:#733820 + +iyr:2019 ecl:gry +hgt:165cm pid:910093364 hcl:#efcc98 byr:1997 +eyr:2028 +cid:153 + +hgt:83 hcl:174774 eyr:2032 +ecl:xry iyr:2017 byr:1940 + +byr:1943 +pid:980352645 +iyr:2015 hgt:66 eyr:2023 hcl:#b6652a ecl:oth + +ecl:amb byr:1980 hgt:164cm pid:775303596 hcl:#671bed iyr:2013 eyr:2030 + +hgt:173cm byr:1947 eyr:1947 iyr:1940 ecl:gmt hcl:7e515c + +hcl:#b6652a +iyr:2012 +eyr:2030 hgt:185cm ecl:grn + +ecl:amb byr:1940 hcl:#2943a5 iyr:2015 +hgt:185cm pid:931660417 +eyr:2021 + +eyr:1957 hcl:#623a2f +ecl:grt hgt:62cm pid:#af106a iyr:2012 +cid:59 byr:1985 + +ecl:amb eyr:2025 +pid:351412754 iyr:2014 byr:1941 hcl:#6b5442 hgt:174cm + +pid:5621200134 hcl:6ef9ba ecl:#ef68f5 eyr:1924 +hgt:63cm cid:188 byr:2004 + +hcl:#a97842 byr:1976 eyr:2020 hgt:171cm pid:041926354 iyr:2019 + +cid:234 +byr:2025 hcl:98619a pid:181cm eyr:1941 +iyr:2021 +hgt:167in ecl:#f5e651 + +hgt:73cm eyr:2028 byr:1985 iyr:1949 hcl:z ecl:utc cid:207 pid:#ee9f95 + +pid:179cm eyr:2030 hcl:b8e142 +hgt:69cm +iyr:1933 +byr:1934 +ecl:grn + +iyr:2028 eyr:1954 hgt:111 cid:180 pid:183391861 +byr:2030 hcl:1fb30f ecl:#0d0160 + +ecl:#0b3b2d hgt:191cm byr:2023 pid:727024676 eyr:2025 hcl:#b6652a + +hgt:66in +byr:1923 eyr:2023 ecl:gry +pid:454789451 iyr:2013 hcl:#cfa07d + +eyr:2020 +pid:339972685 +ecl:amb +iyr:2017 byr:1926 hgt:154cm +hcl:#18171d + +ecl:oth cid:302 +byr:1946 +hcl:#ceb3a1 +pid:622779476 eyr:2024 iyr:2012 hgt:158cm + +byr:2012 +pid:748786877 hgt:135 iyr:2016 hcl:b6e962 ecl:gry eyr:2011 + +byr:1997 +hcl:#a97842 +eyr:2022 pid:325672898 ecl:amb hgt:190cm iyr:2010 + +cid:210 hcl:#c0946f byr:1957 eyr:2022 +iyr:2020 pid:374646087 ecl:blu hgt:184cm + +eyr:2029 ecl:#353e0f +pid:#66ec82 +byr:2023 hcl:10d9d8 cid:271 + +pid:816485054 +eyr:2019 ecl:grn +hcl:#efcc98 hgt:185cm iyr:2013 +byr:2014 + +hcl:#866857 iyr:2014 byr:1953 eyr:2022 ecl:blu hgt:166cm + +pid:162cm hgt:59cm iyr:1981 +eyr:2025 byr:2009 +ecl:gmt hcl:116742 + +eyr:2028 hgt:67cm hcl:3d1f34 byr:1963 pid:62859332 +ecl:dne +iyr:2023 + +iyr:2013 +pid:271450754 eyr:2016 hcl:e20882 cid:186 hgt:157in ecl:utc byr:2023 + +pid:702200026 eyr:1968 ecl:gmt hcl:#888785 iyr:2018 hgt:193in byr:1943 + +eyr:2025 byr:1989 ecl:amb hcl:#866857 cid:119 +hgt:191cm +pid:556011434 + +hgt:178cm iyr:2013 +pid:928476807 +ecl:amb hcl:#623a2f byr:1996 eyr:2026 + +cid:222 +pid:325218825 eyr:2021 byr:1983 hgt:155cm ecl:brn iyr:2011 +hcl:#fffffd + +pid:949344785 ecl:grn eyr:2025 cid:182 byr:1974 hcl:#ceb3a1 +iyr:2011 + +cid:269 pid:669599426 hgt:176cm ecl:blu byr:1957 +iyr:2015 hcl:#623a2f eyr:2025 + +eyr:2023 hcl:#888785 +pid:178525132 iyr:2018 hgt:186cm + +ecl:hzl +byr:1940 iyr:2013 +hgt:185cm eyr:2028 +hcl:#7c73a3 + +hcl:z +byr:2001 cid:292 ecl:#d56bbd pid:93473192 +iyr:2003 hgt:150 +eyr:1922 + +eyr:2021 pid:786485899 +hgt:170cm hcl:#efcc98 byr:1955 +iyr:2010 ecl:brn + +hcl:#733820 ecl:hzl hgt:157cm byr:1944 eyr:2027 pid:906803629 iyr:2015 + +hgt:151cm ecl:blu iyr:2016 +hcl:#02ffd7 byr:1995 +pid:369315941 eyr:2026 + +cid:330 ecl:#18e883 eyr:2038 +hcl:z iyr:1929 +hgt:193 pid:33765426 + +pid:743094345 eyr:2027 +iyr:1949 byr:1955 +ecl:gry +hgt:160cm hcl:8dae67 + +cid:167 hcl:#18171d +iyr:2016 pid:214065645 byr:1942 eyr:2030 hgt:183cm ecl:hzl + +ecl:brn hcl:#623a2f cid:171 byr:1971 +iyr:2011 eyr:2028 +pid:607344613 +hgt:153cm + +byr:1921 pid:677007802 hcl:#341e13 ecl:brn iyr:2012 hgt:188cm eyr:2028 + +hgt:162cm cid:319 hcl:z iyr:2025 +byr:1989 eyr:1939 pid:67311222 +ecl:utc + +iyr:2014 eyr:2025 hgt:171cm +cid:302 byr:1997 +hcl:z +ecl:amb pid:101363367 + +ecl:oth iyr:2010 +cid:96 hgt:164cm hcl:4bc20a byr:1947 +pid:166115442 eyr:2030 + +byr:1964 +hcl:#6b5442 hgt:156cm eyr:2022 pid:426807062 ecl:brn cid:321 iyr:2012 + +byr:2012 hcl:#888785 cid:298 eyr:1920 ecl:zzz hgt:169cm pid:0660316558 iyr:2019 + +hcl:579266 byr:1931 pid:#aa5fd0 ecl:gry eyr:2017 hgt:60 iyr:1965 + +iyr:2011 +pid:610896691 hcl:#733820 +byr:1936 +ecl:gry eyr:2021 hgt:161cm + +pid:443246791 iyr:2015 hgt:158cm hcl:#18171d +byr:1928 ecl:brn cid:207 + +byr:1950 pid:644579904 hcl:#b6652a +eyr:2027 iyr:2017 +ecl:brn hgt:171cm + +iyr:2011 byr:1960 +eyr:2023 +hgt:171cm ecl:hzl +pid:331465564 cid:205 hcl:#18171d + +hgt:61cm eyr:1987 ecl:#9f458c byr:2023 pid:162cm hcl:z iyr:1997 + +hcl:59e376 pid:065607649 +iyr:2020 +byr:2010 ecl:blu + +pid:167cm byr:2022 hgt:150cm ecl:#06650a hcl:caa145 eyr:2032 +iyr:2015 + +byr:1932 +hcl:#419d73 +cid:203 iyr:2017 +pid:105921085 +ecl:gry + +pid:501585534 hcl:#418895 +iyr:2018 +hgt:157cm byr:1940 ecl:hzl eyr:2027 + +cid:220 hgt:171cm hcl:#623a2f +ecl:gry +iyr:2017 +pid:085309709 eyr:2024 byr:1932 + +hcl:#733820 eyr:2028 cid:93 +iyr:2017 +byr:1974 hgt:163cm ecl:grn pid:630322998 + +hcl:#602927 cid:97 hgt:166cm eyr:2025 +ecl:hzl iyr:2016 byr:1964 pid:355325363 + +iyr:2016 pid:402228657 hgt:174cm byr:1993 +eyr:2020 hcl:#733820 ecl:grn + +iyr:2020 hgt:171cm ecl:amb +hcl:#c0946f +byr:1939 +cid:316 pid:782384470 eyr:2030 + +byr:1983 pid:839608616 +eyr:2026 +hcl:#ceb3a1 cid:242 +hgt:192cm ecl:hzl + +pid:701022732 byr:1931 ecl:amb +hgt:70in hcl:#341e13 eyr:2030 iyr:2013 + +eyr:2027 +pid:740692321 byr:1940 +hgt:179cm ecl:blu cid:153 iyr:2010 + +iyr:2024 hcl:z ecl:zzz hgt:181in pid:#c38620 eyr:1976 cid:97 +byr:2029 + +byr:1999 ecl:lzr hcl:6f29a6 eyr:2023 +iyr:2018 cid:209 pid:401606571 hgt:163cm + +ecl:amb +byr:1996 hgt:181cm iyr:2018 hcl:#6b5442 pid:022285219 eyr:2021 + +cid:93 pid:807990476 +hgt:61in eyr:2027 hcl:#cfa07d ecl:oth iyr:2017 + +hcl:#7d3b0c pid:225151503 iyr:2013 cid:68 +eyr:2029 +ecl:brn hgt:64in byr:1959 + +eyr:2028 hgt:172in +iyr:2014 byr:1950 pid:187cm hcl:z ecl:brn + +byr:1982 +pid:978263388 eyr:2021 hgt:175cm iyr:2014 ecl:brn hcl:#a97842 + +hgt:162cm +eyr:2025 +pid:6533951177 byr:1993 iyr:2011 hcl:#c0946f ecl:hzl + +pid:182cm +iyr:2025 eyr:2035 hgt:59in +ecl:#799f29 hcl:z +byr:1920 cid:202 + +hcl:#733820 +eyr:2022 hgt:185cm byr:1989 pid:195276207 +ecl:blu iyr:2017 + +hcl:#7d3b0c +cid:257 ecl:gry +pid:123065639 byr:1951 iyr:2013 + +eyr:2039 ecl:#a82e90 byr:1927 pid:719738468 hgt:73cm + +hcl:605223 +hgt:162cm pid:50424035 +ecl:oth cid:343 byr:2025 iyr:2023 eyr:2024 + +hcl:699116 iyr:2001 +eyr:2022 +byr:2013 +hgt:171cm pid:8900968325 + +hcl:#efcc98 eyr:2029 ecl:grn pid:568953221 +byr:1986 +hgt:178cm +iyr:2020 + +pid:452235579 byr:1932 +ecl:grn +iyr:2010 hgt:189cm eyr:2028 +hcl:#602927 cid:258 + +ecl:xry iyr:2009 cid:334 pid:189cm +eyr:2032 byr:2005 hgt:172in hcl:z + +hgt:159cm hcl:z pid:166cm +ecl:oth eyr:2026 iyr:2020 + +eyr:2023 ecl:blu byr:1935 iyr:2015 +hcl:#866857 pid:542611829 +hgt:168cm + +pid:#ec3d53 +hcl:#ceb3a1 +byr:1999 eyr:2024 +hgt:188cm ecl:oth iyr:2018 + +byr:2003 hgt:167 +hcl:486800 +ecl:#29bdd6 eyr:2037 cid:169 iyr:2010 + +byr:1983 +eyr:2026 ecl:gry +pid:203934984 +hgt:181cm iyr:2020 hcl:#a97842 cid:184 + +hgt:180cm +iyr:1934 eyr:2038 hcl:#a97842 ecl:brn byr:1942 pid:427001597 + +hcl:#18171d byr:1988 +cid:267 hgt:188cm +ecl:amb +eyr:2028 pid:696617232 + +eyr:2024 hcl:#cfa07d +iyr:2013 pid:176cm hgt:189cm byr:1990 +ecl:gry + +eyr:2025 iyr:2015 hgt:153cm hcl:#ceb3a1 ecl:grn pid:686467422 byr:1961 cid:282 + +byr:1931 hgt:185cm ecl:oth +eyr:2022 +pid:561083684 hcl:#efcc98 +iyr:2012 + +byr:1948 cid:327 hgt:151cm +iyr:2016 hcl:#733820 ecl:oth pid:341978822 + +hcl:#ceb3a1 +byr:1978 iyr:2020 hgt:172cm +eyr:2022 ecl:oth pid:093317990 + +eyr:2029 +pid:096891409 iyr:2018 +hcl:#d82822 hgt:174cm ecl:hzl +byr:1988 + +hgt:170cm iyr:2018 pid:588142771 eyr:2022 hcl:#733820 +cid:273 byr:1940 ecl:#a608fe + +iyr:2029 eyr:1980 hcl:#341e13 byr:2027 ecl:grt +pid:443809337 hgt:180cm +cid:205 + +ecl:#f89df0 hgt:144 hcl:2f26ab iyr:1982 pid:#3b43c1 eyr:2032 byr:2012 + +ecl:hzl byr:1971 +pid:030850749 +hgt:170in +hcl:#ceb3a1 eyr:2023 iyr:2018 + +byr:1940 iyr:2020 +eyr:2026 pid:437820254 +hgt:179cm ecl:gry + +byr:2028 +eyr:1986 hcl:z +hgt:185in pid:773739744 ecl:dne iyr:2020 + +hcl:#a97842 +hgt:186cm cid:64 iyr:2016 +byr:1947 eyr:2021 + +byr:1988 hgt:160cm eyr:2023 hcl:#866857 pid:788805179 iyr:2022 ecl:amb + +hgt:164cm byr:1996 cid:338 hcl:#efcc98 +eyr:2029 pid:208596014 ecl:blu + +pid:357680064 byr:1960 eyr:2029 ecl:gry hgt:192cm hcl:#c0946f + +ecl:#d32320 +hgt:167in pid:19531341 +hcl:z +cid:346 iyr:2024 byr:2006 eyr:2035 + +pid:843729120 byr:1987 hgt:185cm eyr:2022 +ecl:amb +iyr:2012 hcl:#c0946f + +eyr:2020 byr:1961 iyr:2011 +hgt:162cm cid:54 pid:891397982 ecl:brn + +ecl:zzz byr:2019 iyr:2015 eyr:2028 hcl:43d56d +hgt:152cm +pid:182cm + +hcl:#18171d byr:1979 hgt:174cm +iyr:2013 cid:228 eyr:2022 ecl:amb pid:82422450 + +cid:156 iyr:2017 +byr:1924 +hcl:#b6652a ecl:gry hgt:184cm eyr:2027 pid:451347151 + +pid:850192502 hgt:65in +iyr:2011 hcl:#7d3b0c +eyr:2023 ecl:gry + +ecl:amb hgt:181cm iyr:2017 pid:233345009 byr:1934 +hcl:#341e13 +eyr:2024 cid:199 + +eyr:2026 pid:#4cb480 +iyr:1958 hgt:176cm ecl:dne hcl:z + +ecl:grn eyr:2027 hgt:178cm byr:1994 hcl:#341e13 +iyr:2016 pid:790075315 + +pid:140922484 +byr:1958 +eyr:2025 +iyr:2019 ecl:brn hgt:157cm hcl:#623a2f + +pid:466785488 hgt:160cm hcl:#cfa07d +byr:1947 +iyr:2010 +cid:198 eyr:2020 ecl:hzl + +ecl:oth +eyr:2022 byr:1963 +hcl:#fffffd iyr:2017 +hgt:171cm pid:463249115 + +hgt:73cm byr:1968 +pid:470317690 ecl:blu +iyr:2015 hcl:#c0946f cid:54 eyr:2029 + +hgt:162cm iyr:2014 +byr:1951 hcl:#b6652a eyr:2029 ecl:blu + +ecl:oth +hgt:176cm hcl:#888785 byr:1963 +iyr:2017 pid:453133253 eyr:2025 + +hcl:#efcc98 +eyr:2024 iyr:2020 cid:330 byr:1950 pid:937122408 ecl:gry hgt:162cm + +hgt:168cm +pid:745867335 +cid:165 hcl:#c0946f iyr:2018 ecl:grt eyr:2030 +byr:1932 + +byr:1949 pid:116003343 +hcl:#c0946f hgt:178cm eyr:2028 iyr:2020 cid:220 +ecl:hzl + +iyr:2013 +cid:314 pid:186cm hgt:74cm eyr:1973 ecl:hzl byr:2007 +hcl:180e0c + +pid:486330019 +byr:1999 ecl:oth hgt:154cm iyr:2019 eyr:2026 +hcl:#efcc98 + +eyr:2030 iyr:2018 hcl:#18171d byr:1950 +pid:648616604 hgt:160cm ecl:gry + +hgt:173cm +ecl:oth byr:1993 eyr:2029 hcl:#fffffd iyr:2010 pid:317451887 + +ecl:brn hgt:157cm +byr:1963 eyr:2023 pid:005387570 hcl:#866857 iyr:2012 + +pid:419695212 eyr:2020 byr:1957 cid:198 iyr:2015 hcl:#888785 hgt:168cm ecl:amb + +ecl:amb +iyr:2017 eyr:2024 pid:039995171 hcl:#a97842 +hgt:153cm byr:1983 + +byr:1979 eyr:2021 iyr:2011 hgt:157cm ecl:blu pid:110855542 hcl:#c0946f + +ecl:blu pid:948753945 eyr:2029 iyr:2012 hcl:#ceb3a1 +hgt:164cm byr:1988 + +iyr:2010 +eyr:2032 hcl:#fffffd pid:#175129 hgt:184cm +ecl:hzl byr:1985 + +hgt:189cm ecl:blu byr:1936 eyr:2027 hcl:#733820 +pid:728752361 iyr:2011 + +hcl:#733820 ecl:blu eyr:2023 hgt:172cm iyr:2017 +pid:013415387 byr:1947 + +byr:2012 iyr:2017 pid:#424ae4 +cid:172 hgt:166cm eyr:2022 +hcl:b1319b ecl:#6635d8 + +eyr:2030 +iyr:1928 hgt:185cm ecl:brn pid:#ac5a90 byr:1984 hcl:ac8f43 + +eyr:2027 +ecl:amb iyr:2014 hcl:#fffffd +pid:838758900 +hgt:177cm byr:1942 + +cid:166 iyr:2020 ecl:lzr hgt:70cm eyr:2040 byr:2004 hcl:#733820 + +eyr:2028 ecl:grn byr:2016 cid:61 iyr:2010 +hcl:#cfa07d +hgt:155in +pid:9594283803 + +ecl:gmt pid:984675198 +byr:1997 hgt:128 eyr:2037 hcl:#b6652a cid:299 + +iyr:2015 pid:733864914 eyr:2021 ecl:amb +byr:1971 cid:280 +hgt:181cm hcl:#054593 + +ecl:hzl hcl:#cfa07d eyr:2022 pid:832736421 +byr:1958 +iyr:2010 +cid:274 hgt:152cm + +eyr:2020 hcl:#6b5442 cid:223 hgt:155cm byr:1989 ecl:oth +iyr:2011 pid:549182194 + +iyr:2020 hcl:#cfa07d +eyr:2027 pid:093361240 byr:1941 cid:271 hgt:178cm ecl:brn + +ecl:blu cid:290 eyr:2027 +hgt:192cm byr:1945 hcl:#7d3b0c iyr:2020 pid:910713369 + +byr:1991 hcl:#ceb3a1 ecl:xry hgt:159cm pid:9496171384 +eyr:2030 iyr:2016 + +eyr:2020 pid:812617809 hcl:#7d3b0c +byr:1970 ecl:gmt +iyr:1971 hgt:157in + +pid:596027311 hcl:#866857 hgt:169cm byr:1945 eyr:2030 ecl:oth +iyr:2010 + +hgt:176cm +pid:213213359 byr:2012 hcl:be7b13 eyr:1971 ecl:gmt iyr:2011 +cid:64 + +pid:27107946 ecl:utc hgt:66cm byr:1928 eyr:2040 +cid:87 + +byr:1959 ecl:blu hcl:4e023b pid:9017609497 eyr:2023 hgt:68 iyr:2029 + +hgt:164cm eyr:2023 byr:2008 ecl:grn pid:420168481 hcl:#b6652a iyr:2012 + +eyr:1977 byr:1934 +ecl:brn cid:163 +iyr:2018 pid:2863284754 +hgt:150in hcl:#623a2f + +ecl:hzl eyr:2031 cid:145 hgt:186cm hcl:#cfa07d +byr:1941 iyr:2010 pid:722056139 + +ecl:blu eyr:2027 +hcl:#888785 iyr:2018 byr:1977 cid:278 hgt:156cm + +eyr:2039 hgt:82 byr:2007 +hcl:z iyr:2021 ecl:dne cid:191 +pid:#1cf69f + +pid:183cm cid:111 +hgt:66cm +iyr:1950 +eyr:1947 ecl:#016f6a + +ecl:hzl byr:1957 iyr:2015 hgt:186cm eyr:2029 hcl:#701e04 cid:149 pid:827898914 + +cid:214 pid:785688542 hgt:189cm byr:1974 ecl:brn +hcl:#18171d +eyr:2030 + +hcl:#866857 +cid:241 ecl:grn pid:389488422 byr:1959 iyr:2015 hgt:67in +eyr:2027 + +hcl:#6b5442 iyr:2011 hgt:193cm +eyr:2026 byr:1952 +pid:033382338 +ecl:grn + +iyr:2020 hgt:166cm byr:1927 +eyr:2029 ecl:hzl +pid:927006613 hcl:#623a2f + +ecl:gry pid:640783974 +hgt:71in byr:1945 iyr:2019 cid:268 hcl:#b6652a +eyr:2025 + +hcl:#733820 hgt:163cm +pid:1285584293 byr:1967 ecl:oth +cid:309 iyr:2020 eyr:2031 + +pid:910349085 iyr:2011 hcl:#623a2f byr:1956 +eyr:2025 ecl:gry +hgt:182cm + +pid:018283044 hcl:#602927 hgt:153cm ecl:gry iyr:2020 +eyr:2024 +byr:1990 + +hgt:184cm hcl:#866857 ecl:oth +eyr:2023 pid:405733635 cid:205 +byr:1987 iyr:2012 + +hgt:167cm +iyr:2015 ecl:brn +eyr:2025 +hcl:#18171d cid:313 byr:1960 + +hgt:165cm byr:1933 +iyr:2014 +cid:203 +hcl:#1cdbb3 +ecl:hzl eyr:2027 pid:747009469 + +hgt:169cm ecl:gry iyr:2014 +byr:1966 pid:621876532 hcl:#efcc98 + +cid:342 eyr:2029 hcl:#a97842 byr:1970 +ecl:oth +pid:137287449 hgt:180cm +iyr:2011 + +hcl:#cfa07d byr:1985 hgt:183cm ecl:grn +iyr:2013 eyr:2022 + +iyr:2023 +pid:164cm hcl:z byr:1966 +eyr:2021 ecl:utc + +hcl:#fffffd cid:60 +byr:1973 +pid:324648387 +hgt:177cm eyr:2022 iyr:2010 +ecl:oth + +pid:632056596 hcl:#efcc98 +hgt:73in ecl:brn byr:1928 iyr:2017 +eyr:2023 + +cid:144 ecl:amb eyr:2035 byr:1943 hgt:180cm +iyr:2012 +pid:155cm + +hcl:#6b5442 +pid:927492391 +eyr:2023 hgt:172cm byr:1958 cid:92 ecl:gry iyr:2019 + +iyr:2020 cid:82 +hgt:193in hcl:#b6652a +ecl:grn eyr:2034 byr:2026 + +iyr:1922 hcl:245cb3 byr:2015 +pid:151cm +eyr:2040 +ecl:lzr cid:136 hgt:101 + +byr:2025 +eyr:2029 +hgt:193in +cid:308 +ecl:gry iyr:2028 pid:9335153289 +hcl:z + +eyr:2030 hgt:163cm iyr:2014 +pid:147768826 ecl:blu byr:1922 hcl:#ceb3a1 cid:169 + +ecl:blu byr:2002 eyr:2028 pid:998185490 cid:165 iyr:2020 +hgt:188cm hcl:#c0946f diff --git a/README.md b/README.md new file mode 100644 index 0000000..3ecf2d1 --- /dev/null +++ b/README.md @@ -0,0 +1,8 @@ +# Advent of Code - trotFunky's pot O' code + +This is the repository where I'll be storing my solutions for the [Advent of Code](https://adventofcode.com) event run by [Eric Wastl](http://was.tl/). +The directory structure is simple : `year/day`, each day containing the input file and at least one file containing my solution(s). + +## Depencies + +Only Python3 for now !