diff --git a/solutions/day2/input.txt b/solutions/day2/input.txt new file mode 100644 index 0000000..e7267b9 --- /dev/null +++ b/solutions/day2/input.txt @@ -0,0 +1,1000 @@ +2-5 l: fllxf +4-5 r: rrrjmrrrrrrh +1-4 k: kkksk +7-8 k: tknsqknzkckrwkjkk +2-3 p: mpbstpxmsxmpnhbwlb +2-7 j: xkjjtjjjj +2-7 m: gczbmgk +15-16 q: qqqqqqqqqckqqqfqqq +7-14 d: dgdddlddddddrvfddnsd +7-12 r: rrrrrrrrbrrrl +2-11 p: zppjpwpqppbnppd +6-8 w: wqhwwnpwwwr +4-10 m: fmkmrrrdkmr +1-2 n: nnjvtnzk +3-8 t: tdxmzslxtvft +13-14 m: mmmmmhmmmmmmmm +9-10 l: lljllllllll +12-16 t: vdtbdtxtttttrctttkt +2-6 q: nqghxqgjqvzswbxww +4-6 k: khkkkkvrkgfwvbd +4-5 r: hrrpv +5-8 g: gggggggg +5-8 f: fjsfftfs +9-12 p: ppfpnxpvppfspp +14-19 x: lrxxxtxxxxxxxzxxxxx +4-6 b: pqbqbbx +10-12 x: mlxkxxxzctrkz +2-7 b: tmbzmsb +16-19 k: kkkdkkkkkkkmklhkkkkk +4-11 h: lpnhfccshxhg +4-5 n: nsnhgnk +1-7 j: jjjjjwsjd +9-12 s: snsssssskssss +7-8 w: wwlwwwhww +3-12 h: znhvqgfgjvlh +9-11 d: dddfddddddg +2-5 j: jjkkrndpdmscjfwvx +1-10 v: vfgbvzlwvvcc +6-15 q: mcqqqqbqcgltqqjz +5-9 q: qprqvzkqsqqt +4-6 l: kldtxl +6-14 j: jjjjjjjjjjjjjjjj +3-6 m: mmmjwwsm +6-15 p: pffpppppdqpfppbpppk +12-14 s: sssssssssssssz +7-13 b: xmbblmsksbbbwbb +4-5 q: dfqfmtqjcvqrq +3-5 l: kvrll +2-4 w: wsww +8-10 f: bfffzfpcfjhw +9-10 c: ccccjcccckc +11-14 q: vqqqpqtqqqlqqqqqxsft +2-4 l: xrzlkmcfl +7-17 c: cccccsccccccccccg +6-8 z: jzzljvmzzvzzgvzz +5-10 w: fwwwwxwmqwz +10-12 d: dddddddddmddd +1-2 k: lzptzkccbmnpqpc +3-5 j: bjmzzjt +4-10 q: qrjtfzgqdt +8-14 m: mmmmmmsmmmmmmm +12-13 b: bbbbbbbbbbbrz +2-4 p: vppzp +4-8 q: tqqqnvhqprdqrqd +6-8 r: gcrwjcrq +9-13 p: pgppvppppppsp +8-10 n: npnngnndvndn +3-9 h: hwmkhhhnnh +4-12 l: lnllwtrsctgl +3-4 b: bpbbkqddb +1-3 d: dbdsfhnzp +9-10 l: lllllftlllll +3-5 v: vvvvvv +3-5 p: dpvppp +1-4 z: zzzfz +6-7 q: qqqqqcq +4-6 p: pcppppbbfrcfbp +3-8 x: qqxfbxjtmqk +4-5 m: tmmmrmm +9-10 h: hhshhhhhhhhhhh +3-4 b: dbbvbx +2-5 s: sspzssckbzrjjsbbw +5-11 w: wbbzkwnnbpggqprbmzg +5-10 d: dddxdddddtdgdsdd +9-13 p: pnkrpxcspctmwphsh +17-18 b: bbbbbbbhbbbbbbqbbqb +1-3 r: blfcfnrrqkfh +2-5 j: jvjsjj +8-15 x: fxvxkxxxxvxxlxzxb +4-10 k: kkkktkkkkpkkkk +4-5 j: sjjjj +4-6 b: mbbtbb +2-12 p: ppfspvgmvzzpcf +4-5 h: crzbh +13-17 d: qdddddddddddddkdd +6-7 n: pnfzhbg +9-11 x: xpxxxtfhbxxxxt +5-7 d: ddzdxdw +12-18 j: zjlsrtflbpjjljfjjh +2-4 l: qclk +7-8 w: wwwgwwrw +4-5 q: qqqwq +3-6 z: fczcjzpsdddqmbqkz +7-8 z: mkhzjzzl +2-3 k: kdkp +11-12 d: qdqddxdwdbdddddddktw +13-16 w: wwwwcwwwwwwmwwwwpw +6-7 s: sxsjstsss +15-16 c: cccccwccccccccvc +13-14 v: xvdtvghjvkvmvbvvx +5-6 g: gggggpg +6-7 l: lllllzljl +4-10 z: nkczdqzhfz +2-10 x: xlxxxxxfxx +1-7 t: jttglvttttm +7-8 k: hkkkrkkk +9-12 n: wrnnnnnnpnnnnn +3-4 l: llgk +6-7 h: vhzhhghh +8-9 h: hhmhhhhjhmhz +3-4 m: gmrsmm +12-14 s: ssstxhsssssssjnsssf +10-19 l: lllllllllllllllllll +14-16 m: mmcmmmmmmmmmmqmm +11-12 p: fppppptppppqpp +7-16 s: ssssdssssssssssh +2-6 c: zcxcpm +5-10 h: hhhrhjjhhhhnhhhwl +14-15 x: xxxxxxxxxxnxxtxtx +3-8 f: fpffpfkzff +3-7 x: xxxxkxkx +8-9 n: nnnnnnnnnn +6-9 c: pccccqcccc +7-13 s: sssspsrsssssfss +3-6 q: qqqqqq +5-6 d: ddddfz +4-5 p: gpqppdbpcptfpczlpcbm +2-4 b: xbtbjmmxrbfbwbxb +1-7 w: vwwwwwx +9-20 w: wwwwwwwwwwwwwwwwwwww +4-6 d: cdwtdddwtqs +8-15 r: rrlrrndprzrrrrklr +4-19 h: rhhhhcxhhctknztthhf +2-11 r: pvchfrzhgcqxsjx +8-12 m: mqfmqmmmpmmmpmkvzsm +2-5 b: fbmnkrxh +4-5 q: qqrlp +3-4 r: kprrr +2-3 q: qzql +8-16 t: ctktlttttcktxqtqht +10-14 z: zzzzzzzzzpzzzzzzzz +9-12 z: zrvjkzzgkzzrzzqzzfm +2-4 c: ccdcp +4-6 z: zpzrzh +7-10 n: wnnlhdpntvsmrnbmps +14-15 v: vbvsvvvnvvvfvvfvvvv +6-10 w: xwwwwvwwww +1-6 n: nnnnnnn +2-12 g: pgmdgpgggsngpwgvjkg +12-13 g: ggggmgmggggggg +4-7 q: vthqqchfn +2-4 q: qpmqq +10-11 j: pjhjjjjjjjjjvj +1-10 l: lgdgqqgvmnscl +12-13 l: rlmnkmnltzlmlq +4-9 l: lllllgllh +10-16 v: xjjvvvdvvvvvvvvvvvv +1-6 x: glxzxfcxglrcwrwcgl +2-4 t: tttntd +9-16 w: wwwhmwwwwwwmwwwxww +9-11 m: mnmsmmmmmmmm +8-16 h: pnrsxhrhhjlqchnh +9-15 c: cxwmcpnjtrccrcn +8-9 s: rsssnsshnsksd +2-6 s: cfklcdd +6-9 m: qmmmmmmvxmwm +3-6 c: cwctccshc +3-4 x: xpkxffbfkzvjrxb +4-5 r: rrrnrr +10-12 j: jjjjjjbjjkjj +3-17 d: sndddlgljdjckpbldb +5-6 x: wzrxxgxwvdfxnq +7-9 l: hhlflqhxknlnbllkl +8-11 m: wmhmmmmnmmmmm +13-14 k: kknkfkkkhzkkkkkxkkk +2-4 s: skss +2-4 m: mmgtm +2-8 r: qrrdpppvgrrcrrvs +12-16 d: dddddddddrdddddczd +19-20 x: xxxxxxxxcxxxxxxxxxxl +7-10 b: bcfpbmlqnrpcnx +1-14 d: fdpddhdrddqdddqdd +5-7 d: ddddxdvdd +11-18 j: fjxjjjjjjjkmjjjjjgjj +3-4 t: zjtp +2-4 r: rrrdr +9-11 b: bbbbbqbjqgbbbbbhbjq +6-7 f: ffbfffgf +4-5 x: xxxqf +1-7 c: jcnbqbcwcc +13-15 q: qqwqqqqqqqgqrqj +13-14 h: kxkjzplvmhrrhl +6-10 j: jjjjjtjjjmj +4-8 v: vvvnvmvrhb +1-12 k: kkkdrkqhkkdkkhdk +2-5 n: lnfjb +10-12 q: qqqqqqcfqlqqqq +1-16 s: ssssssssssssssscs +12-14 l: nlllsllltllcllll +4-5 p: ppppcxwngtcgkjmpb +16-17 h: hhhhhhlhhhhhhhhnhh +3-4 x: xxxx +3-4 f: ffhff +5-6 t: tntthtth +15-18 f: jffffffnffffffffff +14-18 z: zzzzzszzzzzgmszzzzzz +3-4 n: nfnnnn +1-8 q: bmfhqhqqqqmqqqdz +4-7 q: kqqhtqqjqkqqrxvjzqc +4-5 j: jsjjjjj +12-18 v: vvvvvvvvvvvsvvvvvnv +2-10 f: nfffffffmmhn +1-7 z: zzzxzczzc +1-8 l: jpflllcllqdllckwvrb +7-10 x: xxxxxxxxxz +3-6 t: stftpt +1-5 t: tttzt +2-4 g: gggsgggggggwg +4-7 l: xlllvvlmrlrqfzx +8-11 q: qqqqqqzrqqq +1-9 f: ffcltnxdrdnfnk +1-13 f: ffffffffffffhfffff +13-18 g: gsggggggggggtggggg +6-12 c: xrcrcccccxckgcch +2-9 f: pfcdmnfzjdqjnl +4-15 r: wxrlrfrrgrrbrdvrr +8-9 l: llllllllxlll +1-2 d: dpdddd +4-6 w: wwwpwdnww +1-3 s: vhkzssg +10-13 x: xxxxxxxxxxxxxx +1-7 n: nnnnnnjnn +3-8 x: xvxxnxzx +12-13 l: lllllllllllll +15-17 l: lllzllllllllllklll +10-14 m: hmmmmmmmmmmmmm +2-9 m: mmmvmsntmmmn +6-8 z: zzzzzqzz +1-4 h: gqlhh +2-5 q: wqksgtqxgqgdhgqwcq +17-19 q: qpqqqqqqqqqqqqqqhqq +1-4 z: jzzzz +2-5 z: gznrz +1-5 j: wjjjjj +4-5 h: hhmglhh +2-12 w: nhqwwwtwdbwwmwwwzhw +10-13 x: xxxxxxgxxlrxmtxxpm +7-15 w: ktwhswwhwwwhsqwfw +1-3 h: hnwthhcd +2-5 c: rdcvh +10-13 x: fwxqxxzxnxtbx +3-10 m: dmjmzmqmhbml +8-15 s: wcsswxxbrsdsrpss +4-5 c: cjccvc +9-10 z: zzzzzzzzzz +2-3 h: hhhz +6-7 w: wwgzsjwwvwlgww +3-8 g: gtxgggggcgfg +2-3 m: gmmrsgkmsvslw +10-11 x: xmxxxxxxxmxx +2-17 r: bcrtchxrgrqvrqgnm +7-18 r: rrrxrrrrzfrjrwrrrrmk +7-11 z: zzzwzzwzzzzrz +2-5 j: jmrjj +7-11 g: gkgggqgglmggnggqglqg +2-5 l: rlbkllxctprqflhll +4-13 p: mppprjpnxhrzpbp +14-16 p: pkppppzpppppjppg +13-15 n: jdndnxnnhntnnndsnn +1-2 m: pqmm +4-13 j: jjwjfmmjjjjjjpg +3-4 j: nfht +7-11 f: vfffffzffcff +10-12 p: pppppppppjpj +3-4 b: bbbb +5-9 p: ppqppppppppt +5-7 g: ggggggvg +11-14 z: zvzzfzzzqzkzzzzzzzf +2-5 c: hcgpjqjkpvgcxxrf +9-11 v: vvkvvcfqqvvffgvvvvs +8-9 d: rldntbdcz +15-19 p: ppppppppnpppppppgppp +7-8 w: wwwzwpwzmkxcwwtgw +4-8 z: zzrzzfdzk +8-9 g: gggggggqn +1-7 c: czcccngw +3-12 t: btdtgfclmpttqttctstt +2-3 n: jjglbnnzrjgd +7-10 h: hmhhpxhhhhh +4-6 v: vvvvnv +9-11 m: mmdbmmmqgmrh +2-3 r: rjrrrrrrrl +1-5 q: qjjqfzfq +4-5 z: zbzzc +9-12 c: ccccccccqccc +6-8 d: kdfkdtrv +4-12 r: rrrzrrrrrrrmrrrrr +1-5 h: hhhhxh +9-10 t: cztttttttttttt +15-17 j: jjjjjjrjcjvjfjjjcjdj +4-5 t: tftvt +2-4 d: qddvrp +7-13 p: pdrspdzpcxdcpzzxpwtg +12-13 l: llllllljllllll +13-14 s: sssssssssssssn +5-7 f: lnfsffrfg +2-8 r: krtrhgqnn +3-5 j: jxjjjnflwcjj +6-7 r: rrrrrrmrxrr +8-9 t: tsttqcctx +4-5 v: vvvvcv +10-17 j: jjjjcjjjjwjjjjjjkzj +15-16 t: nttttsttttzttttt +5-7 c: cccclccc +3-4 x: kxkx +4-9 l: zslllldlnql +13-18 f: fffmflfffffhdffffwf +8-10 m: mvmmmmhmmvmh +4-6 j: jsjjjmfs +11-13 h: hfnhhhhhhhthhh +5-13 g: gsqgcgqggfggl +7-8 p: ppjqppppp +11-12 b: tbbbbbbbbbbdb +1-4 q: qqqzq +8-9 s: xssssssns +6-9 p: pppppppppp +3-8 j: jvjjjjjjrjj +6-17 b: bbbbblbfbvbxbbbbbt +3-7 j: jjgjmhjjj +4-6 v: njvgsq +17-18 h: hhhhhhhhvhhhhhlhshhh +8-9 m: mmmmmmjdbm +2-11 x: xxxjdgxpxxwxtvkxxxlm +9-16 n: nnnnnnnnnnnnnnnsnn +17-19 w: wwbwwwwwwwwwtwwwwwww +7-8 n: qwbxqsbmpnj +5-6 j: jjjjqjjjjj +2-4 s: fssg +5-12 l: dgnzdllptvvlx +7-12 x: xwxxxxgxxtxbkx +6-12 x: xkmxzgxlnnxq +2-6 h: vnshjh +2-5 x: dxxqxpvsm +13-14 p: pppppppptpppjp +7-8 h: hthhhxhph +5-12 j: jtjrjcnjjjjxjjjj +1-5 j: jfjjwjj +5-6 q: qqqqqq +6-8 t: ttnttvttt +3-5 n: gksnnn +6-9 j: jjjjjljjj +3-4 d: dbdh +1-5 n: hjhfhrgbcnqn +10-13 l: llwllllllllll +2-3 s: dqss +1-3 l: lwqbqdml +10-11 r: rrvdcgrrwhrpsrzjtrl +1-2 d: bcdd +10-11 v: vvvvvvvvvcq +5-15 z: qcgsnhcrzzdfzpp +1-15 w: cfwzjwcgpwwwwwgwxw +11-12 t: gttfknrmtkbwt +2-4 h: blhhhcgfgmh +5-7 v: vjczvqsjzvpjvplhtdvl +1-2 d: tdjdb +5-6 m: mmzmzg +3-8 n: vwjfpdrn +2-9 c: ccccccccm +8-14 w: jxmpsswkhdpqrw +5-6 q: qqrfcj +7-13 g: hgwgqgrkgwggxggmqq +3-5 h: hnhhvhpjsh +1-12 k: hkkmkkkpkkjk +5-6 m: mmcmfm +12-13 w: wwwwwwwwwwwxw +8-10 q: qwbsdnqqlznvqjqqzqqv +5-7 j: jgjfjwmqmtsszf +4-5 c: cctcmc +18-19 v: vvvvvvvvvvvcvgvvvfq +1-8 j: qjbsjsjghj +14-18 b: bbbbbbbbbbbbbbbbbg +9-15 w: wwwwwvwwhwwnwwcwvw +6-9 d: ckvddldddp +3-12 k: qrnchpsjfcckrjx +6-10 c: ccccctccccc +5-6 z: hzzzzzsz +3-5 l: rvwlf +18-20 r: rrrrrrrrrrrrrrrrbhrf +3-4 c: cccvcc +11-17 s: jssssgszsbtsssslss +5-14 k: kkksxkkkxkxknkkkk +1-3 q: qxgsmqxdgx +12-13 q: qqnbqqqqqqhbqqqq +7-13 s: ksrskrslsjfss +3-8 n: nfnnnndsnnnnxs +4-8 g: lglggflgglgnf +6-14 b: bbdkbbmbgbbrlb +3-7 w: wqwrdpw +5-6 j: mdmjjj +13-16 k: kkkkkxkkkkkkqkdk +4-6 h: jmthbwhhfh +16-19 p: ppppppppppppppppppv +15-16 k: fkzkkkkkpkcrkhkklbkr +10-11 k: sjkkgkhkqfk +12-15 l: jjnlvmsppvlglllvljb +3-13 l: llcdlfllqllqjl +3-7 f: ggfgbvfqlrffxrflchx +13-14 d: ddddddddddcddqd +7-18 d: wdjdtdrdddfndkdddddd +8-10 v: rvvzvvvrvb +9-13 n: rlnnnnlnmbnqwlnmlnn +14-15 h: hwrhcmhwbjhcbhc +6-13 t: ttwtkrrtttdbtt +3-5 w: wkwww +1-6 h: fghcxhwldmnb +1-9 f: ffffffffffffff +10-11 k: kkkkkkkkkkvkkkk +2-3 s: sssw +3-6 v: vzvqmdgrnkvcvz +3-4 j: jztw +4-5 b: bbbbb +1-9 l: wllmxlbxfllllcr +14-15 q: pqgqqngpjzhmmqq +4-7 n: jnznczd +2-8 m: cmpmcmshpbmxb +6-9 r: rrrrrhrrr +15-18 t: ttttktmtttttttvtttt +1-5 s: sssxf +9-17 f: zfmkpffpwqfqffffffh +16-19 d: dddddvddddbdddkdddpd +8-10 w: dwwrpwwwxx +6-11 w: wmdmzzcwwpkkwwwqwnww +4-5 s: zssgf +2-8 v: vvpvvvvvqjv +17-18 s: sssssssssssssvsssj +1-3 d: tddd +1-3 s: tssdbfvnlmtspmwlxxl +6-11 k: kkkkkkkkkkkk +1-5 d: dddddgqddmdkdk +6-11 l: nzgwkmqlpnl +2-6 v: kvzlqgzr +1-2 f: xkqzbcrsdswpf +14-15 x: xxxxxxxxxxxxxwx +16-17 j: jjjvhgjzjwjzjmjnj +5-6 p: ppvppcjp +1-4 w: lwpwwh +15-16 s: ssscsssssssssssd +3-7 b: rpqkbbbb +3-6 d: dddddf +10-15 k: kkckzkbpdfkkckl +2-4 v: wvrvkgfpvvm +15-18 v: vvvmvvvvvvvvvvgvvl +1-2 l: hdfll +1-4 v: wtvd +5-6 v: vvvvzmv +6-8 l: llnllmlns +4-5 b: bbkblbsbnbbbbbbgbbbb +5-6 d: xnjmdwddtfdbzdb +4-10 q: qqlqqqqqhq +4-9 c: rcvctlmccccc +3-5 f: fffmnf +9-14 n: xnznnnnnrnrdlzfsn +6-7 w: wdwkrvwww +10-15 v: vvvvvvvvvnvvvvz +10-11 k: hnjzdwqkmskkx +4-8 c: ccqcqfrcnffbncfkc +5-12 c: cclsmccgcccccxnvcckc +5-6 z: cwhbkskzhnzztzzlhz +3-5 v: vkvjvv +3-4 j: jjjj +13-16 h: khxhhhrhkhhhhhhhwhhh +1-3 f: jxdxffjfprs +1-11 l: gllslllllxqlltlmh +8-11 g: kggggvnbkqgbfbgdsgwg +6-7 z: zzzxzfz +3-7 x: xqxjjxxlb +3-4 v: vtdv +7-10 w: wwwwwwwwnww +4-8 w: kgwwwwwwpx +3-5 g: ggggggs +4-8 w: gwwwgzxb +9-10 t: ttttttttmp +3-8 f: fpjdffffzflffmlxfq +11-13 g: gggtgggsggbbzggg +1-5 p: pptcp +13-14 c: cccccccccccccnc +3-13 n: gbjnnqxnjprnhn +5-6 x: qxxdknx +8-9 q: kmlfqxcvqqsqkvtm +3-6 n: xndnvn +6-7 s: scxccsjssstw +14-18 d: dddddddttddddfpddbd +18-20 d: sgljbkdxhvckddpbjdld +5-8 m: dpmnmfmmpm +6-9 w: rfdwwwplw +5-7 b: vbdrcbbgqbspbbv +18-19 b: bbbjbbbbbbbbbbbbbsb +11-12 x: xxxxxxxxxxzjx +6-8 d: dqhgrddhddxdn +6-16 p: dppbbzbpxxpphjppkpp +3-4 k: khkkt +1-2 x: xpwkvcxxqrn +1-4 n: lnnngnnnns +1-11 c: cczvdcgcpcrccpzw +15-17 h: hhhhhhzhhhxhhhshhhh +7-8 t: fttttttt +5-19 z: zczzczmczwzpzblzvxzz +4-8 l: zlpdjnsllkgkjglmnll +9-12 s: spwssjsssdstjssf +8-10 h: hhhhfhhchh +4-11 q: qqqqsqqqqqdqqqq +14-15 w: wwwqwwwwwwwwwmjww +1-2 b: blcbhdqfsbmnq +1-5 m: mlrdhdkfjnknxlw +8-9 r: rrrrrrlhc +9-13 d: ddddddddddddd +2-3 p: tpxpjgpcf +1-2 f: ffff +5-8 k: cdkkgbvfwkkskkw +2-3 r: rrrp +6-10 b: bbbbbdbbbbbbbbbbb +10-12 t: tttttttttgdxt +3-4 k: kjkrkmcmvr +8-10 b: zbbpcwgbsbwdz +2-10 v: zqvdtnxvvcvlrvq +3-4 b: bbbbb +13-16 t: ttttmttttttttttwttt +16-17 n: nbnnnnnnnnnnnnnsgx +8-10 f: fmfsffhjcfzffcxw +7-13 m: mmvmrlmtzmbtmmxcsmm +8-9 m: mmmmmmmmm +1-7 n: nnnnwnpnnn +6-7 z: xzzzhpz +3-4 n: bnnn +5-17 r: rrlrrbwzmkrrhrrrrhnr +9-13 t: ttntttttttttc +11-12 w: wwwwwwwwwcwsw +1-10 j: ljhjjjdgjmj +9-10 c: cccccccccx +3-5 h: hfhhh +18-19 q: qqqqqqqqqqqqqlqqqbqq +1-4 b: pnjntrscpklzfcdl +9-11 c: nrxscrjjcrzc +9-12 q: nqpqqqqqqqqqqc +5-15 k: phmcmnhbckwkvwkb +2-4 t: dtrtmtb +4-5 j: jjjjp +8-9 m: mmhjmmrsqmm +4-5 r: rrsrrrr +6-10 w: wwwwwgwwww +13-18 m: mgmmvmmmkmmmmmgpmfm +10-11 d: ddxdldwdddddzdvrd +3-15 k: mxxgjklzzdbtgddzwrx +9-11 q: qqqqfgqqqqwqqq +2-4 g: gdhthpp +1-11 r: srrrrrrrrrrr +13-14 x: xxxxxxxxxxxxxs +6-17 f: ffvffkffffffffffjf +3-12 m: kmmmvbjlmmmf +9-20 n: nnnplnnnnnnnnnlpjntn +8-14 f: cjflffftftnffd +2-7 b: kbzbbbbbbqb +10-12 n: nnnnnnnnnnnk +7-8 z: zxzdzzzclnjzj +3-11 l: llldlsmltklz +2-5 s: swwxrpscmmhzsgrvnl +1-13 p: kzwjlpfhpskzpsrp +13-15 f: gffffdffkhfffvffjffb +6-7 d: drddddd +4-6 p: pppphpj +12-18 k: jkkkkkkktkzkkxkkfgkn +8-9 j: jjjjjjjpc +5-7 d: ddlkxdmndmdkkhwd +10-11 l: vlllhllfhll +5-6 b: bbjbvbqrjb +17-18 d: dxdnddddddlddddddl +15-18 d: dddxddwwddddddnddd +1-12 x: sxxxxxxxxxxtxxxxx +3-9 k: rfkrnjxxkkm +9-12 n: xnnnnnnggnnln +5-8 w: nwpwqwwwlfwmj +3-11 p: sgprfdprpmqpwvps +5-6 x: sxxhxxkx +11-14 h: hhhhhchhhhhhhh +2-3 p: kxpllmpvfxq +4-14 k: qkpfkskhglhkzkck +3-6 q: jsqbdqq +8-9 n: nnnxnnnnpnnn +12-14 h: stshhhwxhcvhhg +5-8 j: jjjjjjjj +10-14 h: hqlqhxzmdnfzhhhwxnwj +1-8 r: qmlvfqvrbgfrrmppkzwv +3-9 v: hhvnpvvvdvktgbcrr +6-8 q: qqqqqqqp +9-12 l: lxklkwplllvlmljlfll +11-14 w: wwwwwwwwwwwwwpw +6-7 c: cccqrccc +3-6 d: wddgdzd +3-8 d: dddppddddddddfd +5-9 g: jlxgxgkggpg +6-14 b: jbljlvjtqkbbzlpvxmf +2-3 x: nnbx +6-7 q: qqqqqbfqqqq +2-3 n: xnmnnfb +13-14 p: pppppppppppphr +8-11 k: kkkkkkkkkkk +4-5 r: rrrsr +13-19 t: ttttttvtttmttttttbt +8-9 r: rrrlrrrwr +3-6 c: flfhnccccwvtmqz +8-12 s: xshssnnsskcsjsssgs +1-4 r: vzkpphvtwrxgr +11-13 c: ccccccccccqcc +3-5 v: fvvjvzgt +1-4 j: sjjnsjjj +3-6 s: sxsqnfbmssbfnjs +12-15 p: pnppppppppppkpp +9-13 l: wlldrllklllllkl +2-3 s: swsrljzrns +8-9 b: bbbbbbrwb +16-20 f: ffffffhffffffffsffff +5-9 w: wwwwswwwww +7-9 q: qbqqqtqqkd +6-8 z: zzzzzzzz +5-10 m: zlmmnmrgkmtm +1-5 n: mnnflnn +4-8 c: cpccbgccc +9-12 j: jjjjjjjjwjjjj +3-4 s: tdhzbsqsb +15-19 t: tthrqtttttttmtttttx +11-12 b: bbbbbbbbmbjcb +1-13 f: ffqfkfftfjrwfkfm +14-15 v: vvvvvvmvvvvvvdv +4-6 h: qvchkhhccnxwpvhhhb +2-8 k: kskkkxkkkkk +3-10 j: jjjbjjjjjpd +4-13 z: svkjzrfrtftftqhhc +18-19 p: pppppppppppmpppppmd +5-14 b: bbbbcbbntbbfbpbd +5-7 q: qqqqqqq +2-17 j: jbjjjjjjjjjjjjjjcj +1-5 z: zvztgv +4-5 k: kkkrkp +3-5 c: kgmccc +2-8 h: rhhhnhhxh +1-18 s: sbrblpcrxsvdsjrnwwws +6-10 q: qbqqzqqhbdq +1-3 d: sdwgdn +3-6 s: ssssssss +2-13 f: ffffrrfffflbvffff +5-7 w: pxwnfnwzj +17-18 z: zzzzzzzzzzzzzzzzbzzz +7-8 p: pplplpbfppp +1-8 x: xxkzdxzx +3-4 p: jppxp +4-6 j: jthbzjmqjzj +1-12 x: xxxxxxxxxxxxxx +8-19 g: ggggggqgwmgggwggmlg +5-9 b: bxbbbgwbbnxbhbbb +5-6 n: nnnnnd +5-9 b: bwjxbbwbb +4-14 d: ddlddkdddddddl +2-3 t: jqjt +2-3 h: shhp +12-14 p: ppppppxppjfmpdzppp +7-10 f: lnffvfcfzffffft +3-8 s: lqhrstvsr +15-16 v: vvvvvvmvvvvvvvvvv +2-4 h: hhhh +5-8 g: wmtxgdgg +3-6 r: rfrrrg +8-12 q: qqqqqqqqqqqq +4-9 z: zzzzzpzzw +14-19 g: gdggggggggbggtcggggg +5-11 n: nnnktnnlndgnnnnn +5-6 n: nznnnqn +3-4 q: qqlq +12-13 g: ggggggggggggg +16-18 w: wwwwwwwwwwwwmwwxwv +6-10 b: bbbbbmblbg +8-13 m: mwmmmcrmmmtsm +12-17 h: rhhhhnhhhhhlhstkhhh +9-10 q: qqqqqzqqgt +2-6 v: vvfvpgw +8-13 w: mwlxrpbwwwgcwwgn +1-10 m: mmmmmmmrmxm +6-8 f: fgvfgfftfffq +2-6 g: gcggrg +1-6 x: zxxxvxx +1-3 t: txtt +1-2 q: qdqn +6-7 j: jjjjtjjj +13-14 r: rrwrrwrrrrrrrfrr +3-4 j: jjjpj +12-13 v: vvvvvvvvvvvvv +4-5 t: tttcw +4-6 s: sssnxs +9-11 x: xxxxxxxxcvx +1-4 d: lpddds +1-9 t: hbtttttthtt +1-4 z: bsjzz +2-5 t: xrtptqt +1-3 l: lllll +7-8 m: mmmmmmmj +11-13 f: ftffqffffgfszfff +4-5 j: ljjbjbjjjj +3-11 n: nhnnnnnnjnnnnnbmnqnn +3-12 s: swgnlssszsqsvfjwxt +8-9 f: ffffffffn +3-4 t: gtmt +8-9 s: spsmnswlt +7-8 j: jjjnmjjjdjjjqj +9-10 j: jnjljjjjfgj +3-7 x: xrxlbhcxmswlpx +9-11 x: xxwrxxbxxxn +16-17 d: dbddddmtddddddddddd +5-17 n: cnnnhnnnjnnvnsnnwgnn +7-8 m: mmmmmmmm +11-12 l: lllklllltltmllllll +4-5 r: rrrrr +7-8 j: jjjjjjqqjj +10-12 g: gggtkggggggkggg +1-5 h: fxxphhz +1-3 q: jlnq +4-5 s: fssss +16-17 c: cccccccccccccccqc +12-19 q: qqqqqqqqqqpqqqqqqqpq +7-13 s: gmzvssjsfssjssssx +3-4 s: ssxs +15-19 d: ddddddddddtddddddqdd +5-7 l: lllxqlkl +10-11 x: xmxxxxxxxfk +9-14 q: qqqqqtqczqqqqq +4-8 w: zwmllrwmwmwqwww +1-4 l: llllz +14-15 j: jjjjjjjjjjcjjjrjj +10-13 x: xxxxxxxxhbxlzx +6-7 f: fffffdj +9-10 w: msdcwqzwhj +4-8 c: ccccxccccckcccccccc +5-11 r: xffrjsvrjzfrrcrpfbr +2-5 z: zzfwrn +10-13 r: rrrrrfrrrhrrh +5-10 d: dddddddddddd +4-5 z: zzzfs +9-12 t: ttttttttlttt +3-4 r: lpjrr +2-9 v: kkxvvxkvgjtsjtvv +1-8 v: lprgtpvvv +4-6 h: hhhnhfb +2-4 h: hhpxh +4-9 d: bhqdmddrd +2-5 w: wwgtwt +6-7 z: zzzzzszz +4-5 z: zzzzm +12-14 d: mddrddddddrdddddd +9-11 h: sdhzhvhhhkhhhb +2-3 b: zbbtbbqhm +4-11 b: bnbqqbjbbzp +9-10 n: nnnnnmnntj +11-17 w: wwvwwwwwwwrtwwwwdw +1-4 t: svbtbxvptfp +4-5 w: vsbjw +2-7 m: mmpmmmg +11-12 j: jjjjjjjfjjxjjm +6-8 r: rrzrcmrvrr +1-3 n: nqxnzhq +3-4 n: nnnkj +3-5 f: kfffhfthfhf +3-5 m: gwszmmm +1-7 c: tbscmrfbmccrqxzdb +13-14 l: lllllllllllllnll +4-10 k: pfbwsjvfxkxhfzktdj +2-6 f: ffffbf +4-7 w: wwgrwnpbswnz +5-6 z: zzszzzz +8-13 p: zpppppgbjpppcpp +6-7 q: gpqqvwtkxwqjtqdqq +14-15 n: nnnnnnnnnnnnnkn +3-6 q: rkqmjqg +5-6 t: ttttkq +4-6 r: srrsrrprr +1-8 v: kvvvvvvxvvvvvvvb +5-6 z: zzzzzz +3-4 c: cccccbpsp +3-12 c: stvxclcbrcjjcgcxlwtq +13-14 r: nrrrrxrfrrrrrzd +2-3 r: rmfwl +1-4 q: qqhq +11-13 z: zzzmvzzzzzkzzzzzzzz +4-8 h: hhhxhhhh +2-3 b: fpbhn +7-10 v: vgwvvvgvvvvvj +1-4 m: msmk +11-12 d: ddddddddfddddd +15-16 k: kkkkkkkkkkkkkkkk +8-14 m: mmmmmmmwmvmbmmv +10-12 m: mmmmmmmmmlmm +2-7 w: cgbmsww +6-8 t: ttktttgw +4-14 z: vsvmwzvhfzxkfzz +2-4 f: ccgmfhrls +10-11 k: kfxlsfdkbdkmjptqhh +6-16 x: nbxxdxwsxxsqmfxqrxmk +9-17 j: vjjjjvpjgfjxffjxjd +6-9 g: gvpxggggqgg +6-8 t: tttttztft +5-11 q: prklqxrfxjdvgsq +8-9 k: kkkkkjknk +2-4 c: chccl +2-3 x: fxpr +1-4 v: rzvvpvxp +3-5 j: cjfrjldr +3-8 t: zbptntzp +2-7 c: cccqkcfzgcffssgrcsc +5-6 q: qqqqdr +2-6 h: hxfhhghhhk +1-3 v: lvnhv +5-6 r: prrrrw +11-18 z: zfzzzzzzzzdgzzzmzzxz +5-10 x: kxrncghxldxffzbx +17-19 k: kkkkkkkkkkkkkkkkjkkk +7-9 h: hhmhhhdhh +15-16 x: xxxxxxxxxxxxxxxx +4-5 c: nzjchwccgbd +5-6 r: rrrrjrrrr +9-13 c: ccccccjclcccc +6-7 z: zjzfzzzszvzz +6-7 l: llllljll +6-8 m: mmmmmmms +3-5 p: pppppp +14-15 m: mmmmmmmmlmmmnwmm +6-11 b: bbbbbbbbbwb +8-10 g: ggjgbgpgggggggdcgb +9-16 b: bbbbbbcbkbbbbbnbbbbb +10-11 f: dfbffxfnfksfffrw +10-11 h: hhhhhhhhhhq +5-17 v: vvvvjvvwvvvvvvvvvvvv +2-14 x: xgxxxvfcxxxxtbgxkx +1-3 k: kkjbm +18-19 d: dddddddddddddddddxx +5-9 h: vhjzhkjbhl +1-4 k: kskk +7-12 l: lcljknlllclvlldrlpls +14-15 w: wwwwhwwwwrhwwvq +5-6 t: wtvdtmqfbnt +1-4 v: vhvvvv +8-10 n: nnqcnzrnndnjnnnkn +6-8 h: hshhqhhdhhfcj +10-15 j: jjtjjjjjjfzjjjj +3-5 m: mmdmm +10-11 n: nnnnnnnnnng +6-8 p: fzpgppzpthqcthhst +1-7 p: hzxthvpfnpnrzfpvmv +10-11 l: llllvswlllll +1-2 q: jffqfzd +1-3 x: xljxfw +5-6 z: fmzzgl +2-6 v: vbvvvzv +8-10 r: rrrrrrrnsr +1-3 c: crctc +8-10 m: mcmdgxhmhnmmwmzmmg +4-5 h: hdhhhh +1-2 z: vzzm +5-10 z: zzzvnzzzpz +2-5 f: gfffdff +1-4 g: lgfgg +2-4 w: swww +2-6 c: ccscdz +6-7 b: bbsbbbjb +11-16 s: bssrqsslssbcssjrxjk +5-8 c: ccjmcqcglj +13-18 l: lllllmvllllxlllllz +6-7 l: lllllll +5-6 v: vvvtvvvv +4-11 v: vvmvwhvvrkd +4-7 n: knlwnmnnnn +5-6 p: cqmfxppptplkpp +7-11 c: clccnptxmcncrccjcc +1-7 h: fhhfhhzd +1-11 l: llflllllllllll +3-4 g: gmgl +15-16 j: wjjjjjjjjjjjjlhjcjj +2-8 v: gtvvmgvvbtf +3-4 t: fpttgzttwt +4-8 k: klkkkgkkkk +2-8 p: wsdgtplp +9-11 q: qqqqqqqqzqv +1-2 n: nswlnnngxsj +4-5 p: dgpppkjhvgpgppp +10-17 j: jjjjjjjjjfjjjjjjk +2-3 l: lbll +6-7 n: nhwnnnc +3-4 s: ssws +3-9 v: szrvvcxzv +2-4 p: pgzph +4-6 g: rxnjtpggwggglp +10-16 v: vvvvvvvvvvvvvvvjvv +7-9 j: jljjjmjjj +6-11 w: wwwwwqwgmwfwwkw +12-15 w: wqwwwwtwwxwwwfwww +8-11 v: vvvvvvvvvvd +7-11 g: dcgpcggpgxggdphgm +3-5 w: wwrwg +9-16 b: bbbqbbbbbbbbbbbbb +7-8 n: tnnnnnnnnn +3-5 c: ccsctcm +10-17 f: rfsfffffvffjfnkfq +6-11 f: fffhffffffp +10-11 n: hbsnnnntnppdnnzj +3-4 x: ngxbxxx +6-11 t: ttbwkznllhtntbdtltt +5-6 s: sssssms +15-16 c: ccccccccccccccqc +3-5 h: jzslhlhh +7-12 m: mxmjmjmmmmhkm +7-9 r: mtbfxlrvrddrvgxrxxr +14-20 m: gmmlpvclmkvfkmjdslvm +11-17 v: rqvvtmktpvckpvvvv +15-16 b: bbbbbbbbbbbbjblbbc +3-5 z: vpsgzfzvxczbnzw +5-6 j: shlfjc +10-16 b: bbbbbbbbbbbbbbbsn +1-7 j: jjjrkrdq +14-16 x: xbxxxxxxxxxxxjxxx +2-6 b: vzpnbbpqfbbvcbmbchm +10-16 x: xxxrxxxvxxxxxqxxxxk +10-12 j: jjrkjjjjjjjjj +1-5 l: lxfslmj +10-16 s: ssssssssssssssszsss +12-15 r: rrgrrrrrrrrcrrr +10-11 c: ccctccccccj +13-14 f: fqgsffffqffffvfffff +14-15 f: ffffffjffffffqff +8-14 q: gtqqjqqwwxqvprdqpcqq +8-11 f: lqqfqpmffffgcs +6-8 f: frfshkfklf +10-11 w: wlwwwwwwwwrw +2-5 q: qqmmqmmqqq +8-9 g: cjgscgwtg +1-3 w: wljwwvjdcwnkmn +4-5 q: qcqqxq +11-18 g: gqgggvgggghgkggggggg +8-12 z: tbmbzbzhnppz +2-3 t: tzttt +2-5 s: zjlsssssmsss +8-16 w: mwwqwrwwskwcwwbww +3-7 t: ttwttttt +1-4 p: ppclpbpppp +7-9 c: cccccckcxccccc +9-13 g: dgggggcgrrggggggg +4-5 v: vvvvvvvvvvvvvv +15-16 l: lllllllllnlllsqkl +2-6 p: pppjptvpkxp +11-18 j: jjjjjjjjrjcjgjkjjhjj +2-6 x: znkxkc +14-15 b: bbbbbbbbtbbbbssbt +3-8 b: bszbbvbb +15-16 t: dtttttttxtpttttrttt +10-11 b: bwbkqbvdbvj +14-17 k: krjwkfgsqkzjklkkkvxg +13-16 d: ddddddddddddqddd +3-15 s: jmsnpmldstjngfmrp +1-6 s: stssssn +8-12 b: bbbbbthpwlbb +3-4 r: rdrf +10-11 l: glllllllllk +7-16 m: vxjgnbmmbzsxlhblj +4-7 b: bsthbwjrkbmptb +5-7 q: qqdmjqqqq +2-16 v: rvvvvvvvvvrvvvvvvvv +2-3 n: nnnbm +13-16 v: vvvvlvvvvvvxwvvv +4-6 c: nccccccs +10-14 q: qdgsqqqqqqqqqqqnq +4-5 g: gjghg +2-7 f: fffffqdf +15-18 f: fxffffdfhflffbfxff +7-9 w: gpwwcwwwlwbwfkdw +14-17 q: qqjqqqqqqqqnqhqqrhqq +1-4 d: djdqkdkddlvdqdt +4-9 w: qwsvpbwdcngsww +4-9 b: bbbbbbbbb +6-15 g: gmdhggngqdfgqsggsvg +9-16 b: bbbbbbbbdmtbbdbbc +8-9 k: kkxkkkdkkkzkdp +1-8 b: bbxbdbnbjcbbb +15-19 q: qqqqqqvqqqqqqsqqqqq +3-4 t: tttt +2-5 j: bjjjj diff --git a/solutions/day2/solution.js b/solutions/day2/solution.js new file mode 100644 index 0000000..2aa3368 --- /dev/null +++ b/solutions/day2/solution.js @@ -0,0 +1,50 @@ +const path = require('path') +const { read, position } = require('promise-path') +const fromHere = position(__dirname) +const report = (...messages) => console.log(`[${require(fromHere('../../package.json')).logName} / ${__dirname.split(path.sep).pop()}]`, ...messages) + +function mapInput (line) { + const regex = /(?[0-9]+)-(?[0-9]+) (?[a-z]): (?.+)$/ + return line.match(regex).groups +} + +function XOR (a, b) { + return a ? !b : !!b +} + +async function run () { + const input = (await read(fromHere('input.txt'), 'utf8')).trim().split('\n').map(mapInput) + + await solveForFirstStar(input) + await solveForSecondStar(input) +} + +async function solveForFirstStar (input) { + const solution = input.filter( + ({ num1, num2, letter, password }) => { + let count = 0 + for (let i = 0; i < password.length; i++) { + if (password.charAt(i) === letter) { + count++ + if (count > num2) { + return false + } + } + } + return count >= num1 + } + ).length + report('Input:', input) + report('Solution 1:', solution) +} + +async function solveForSecondStar (input) { + const solution = input.filter( + ({ num1, num2, letter, password }) => { + return XOR(password.charAt(num1 - 1) === letter, password.charAt(num2 - 1) === letter) + } + ).length + report('Solution 2:', solution) +} + +run() diff --git a/solutions/day2/viewer.html b/solutions/day2/viewer.html new file mode 100644 index 0000000..d583fae --- /dev/null +++ b/solutions/day2/viewer.html @@ -0,0 +1,43 @@ + + + + Solution Viewer + + + + + +
+

Solution Viewer ({{ solutionTitle }})

+

For interesting problems; this page can be used as a dynamic viewer.

+

input.txt

+
{{ inputText }}
+

solution.js

+
{{ solutionText }}
+
+ + + \ No newline at end of file