diff options
-rw-r--r-- | 2020/day1.raku | 32 | ||||
-rw-r--r-- | 2020/day1.txt | 200 | ||||
-rw-r--r-- | 2020/day2.raku | 67 | ||||
-rw-r--r-- | 2020/day2.txt | 1000 | ||||
-rw-r--r-- | README.org | 1 |
5 files changed, 1300 insertions, 0 deletions
diff --git a/2020/day1.raku b/2020/day1.raku new file mode 100644 index 0000000..b932fa5 --- /dev/null +++ b/2020/day1.raku @@ -0,0 +1,32 @@ +``` +#!/usr/bin/env raku +use v6; + +sub find-entries(@lines, Int :$entries = 2) { + @lines.combinations($entries).first(*.sum == 2020) +} + +sub total-multiplied(@lines, Int :$entries = 2) { + return [*] $_ with find-entries(@lines, :$entries); +} + +multi sub MAIN(Str $filename where *.IO.f, :$entries = 2) { + say total-multiplied($filename.IO.lines, :$entries); +} + +# Run tests with `raku --doc -c day1.raku` +multi sub MAIN('test') { + use Test; + my @input = 1721, 979, 366, 299, 675, 1456; + + subtest '1.a', { + is find-entries(@input), (1721, 299), 'find-entries'; + is total-multiplied(@input), 514579, 'Example'; + } + subtest '1.b', { + is find-entries(@input, :3entries), (979, 366, 675), 'Entries'; + is total-multiplied(@input, :3entries), 241861950, 'Example'; + } + done-testing; +} +``` diff --git a/2020/day1.txt b/2020/day1.txt new file mode 100644 index 0000000..4ac5daa --- /dev/null +++ b/2020/day1.txt @@ -0,0 +1,200 @@ +1313 +1968 +1334 +1566 +820 +1435 +1369 +1230 +1383 +1816 +1396 +1974 +1911 +1989 +1824 +1430 +1709 +1204 +1792 +1800 +1703 +2009 +1467 +1400 +1315 +1985 +1598 +1215 +1574 +1770 +1870 +1352 +1544 +1339 +188 +1347 +1986 +2003 +1538 +1839 +1688 +1350 +1191 +1961 +1578 +1946 +1548 +1975 +1745 +1631 +1390 +1811 +1586 +1409 +247 +1600 +1565 +1929 +1854 +1602 +1773 +1815 +1887 +1689 +1266 +1573 +1534 +1939 +1909 +1273 +1386 +1713 +1268 +1611 +1348 +1478 +1857 +1916 +1113 +936 +1603 +1716 +1875 +1855 +1834 +1701 +1279 +1346 +1503 +1797 +1287 +1447 +1475 +1950 +1614 +1261 +1442 +1299 +1465 +896 +1481 +1804 +1931 +1849 +1675 +1726 +355 +1485 +1343 +1697 +1735 +1858 +1205 +1345 +1281 +253 +1808 +1557 +1964 +1771 +1891 +1583 +1896 +1398 +1930 +1258 +1338 +1208 +1328 +1493 +1963 +1374 +1212 +1223 +1501 +2004 +1591 +1954 +115 +1972 +1814 +1643 +1270 +1349 +1297 +1399 +1969 +1237 +1228 +1379 +1779 +1765 +1427 +1464 +1247 +1967 +1577 +1719 +1559 +1274 +1879 +1504 +1732 +1277 +1758 +1721 +1936 +1605 +1358 +1505 +1411 +1823 +1576 +1682 +1439 +1901 +1940 +1760 +1414 +1193 +1900 +1990 +1781 +1801 +1239 +1729 +1360 +1780 +1848 +1468 +1484 +1280 +1278 +1851 +1903 +1894 +1731 +1451 +549 +1570 diff --git a/2020/day2.raku b/2020/day2.raku new file mode 100644 index 0000000..f3952de --- /dev/null +++ b/2020/day2.raku @@ -0,0 +1,67 @@ +use v6; + +#use Grammar::Tracer; +#`{ +1-3 a: abcde +1-3 b: cdefg +2-9 c: ccccccccc +} +grammar Password { + token TOP { <lines>+ } + token lines { ^^ <constraints> ' ' <char> ': ' <password> \n } + token constraints { $<from> = [ \d+ ] '-' $<to> = [ \d+ ] } + token char { \w } + token password { <.alnum>+ } +} + +class Part1Actions { + method TOP($/) { make $<lines>.grep(*.made.so).elems } + method lines($/) { make $<password>.comb($<char>).elems ∈ $<constraints>.made } + method constraints($/) { make $<from> .. $<to> } +} + +class Part2Actions { + method TOP($/) { make $<lines>.grep(*.made.so).elems } + method lines($/) { + make + $.has-str($<password>.made, $<char>.made, $<constraints><from>.Int) + ?^ + $.has-str($<password>.made, $<char>.made, $<constraints><to>.Int) + } + method password($/) { make $/.Str } + method char($/) { make $/.Str } + method has-str(Str $password, Str $char, Int $offset --> Bool) { + $password.substr-eq($char, $offset - 1) + } +} + +multi sub MAIN('part1', $file) { + say Password.parse(slurp($file), actions => Part1Actions.new).made; +} + +multi sub MAIN('part2', $file) { + say Password.parse(slurp($file), actions => Part2Actions.new).made; +} + + +multi sub MAIN('test') { + use Test; + my $input = q:to/END/; + 1-3 a: abcde + 1-3 b: cdefg + 2-9 c: ccccccccc + END + subtest 'Part1', { + my $g = Password.parse($input, actions => Part1Actions.new); + say $g<lines>[0].made; + + is $g.made, 2, 'Example'; + } + + subtest 'Part2', { + my $g = Password.parse($input, actions => Part2Actions.new); + say $g<lines>[0].made; + + is $g.made, 1, 'Example'; + } +} diff --git a/2020/day2.txt b/2020/day2.txt new file mode 100644 index 0000000..03eca38 --- /dev/null +++ b/2020/day2.txt @@ -0,0 +1,1000 @@ +8-9 n: nnnnnnnnn +14-15 d: dzjgbdwdkdhdddh +16-17 m: mmmmmmmmmxmmmmwmm +7-17 d: pmgdhpqbqdhshgtjt +1-2 b: mvmgzbmfbrcnr +16-17 c: cccccccccccqcccgcc +1-6 x: ctqxsh +1-5 l: lllvw +9-10 k: kkkkkkklrsnk +7-9 g: xsgzggbglgtm +3-4 b: brwb +4-5 x: xdxlfx +5-6 c: cccccc +4-7 v: vvvvvdpx +2-7 s: qwdngzbtsntgzmxz +6-8 s: ssssssssssss +2-3 t: tjcttt +2-4 z: nbgfl +11-12 z: gnjzwzwzzwcbhv +4-5 v: tvkfvnvvvvcv +1-3 h: hhbhh +15-16 g: gggggggggggggggv +6-9 t: ftjztttfnztv +2-5 v: vxpmqvvzvnglvvv +2-4 r: rsxq +3-4 k: kxkk +2-3 k: kkkk +3-6 t: ktttztt +1-2 v: zvcvv +14-16 b: bbbbbbbbbbbbbrbb +7-10 b: sgmbgmxbxnpjgpthcbr +5-13 r: wmfmgmxxwgbrpllfqnjj +3-4 t: ftcd +2-3 z: szzf +1-6 j: cxjjbj +2-3 t: ttvt +2-6 h: hhkszjhjjxhqhrhn +3-4 s: ssns +4-8 x: xcjmwxxxlrqxxfx +3-10 g: ggvggggkgrggggggxg +2-6 z: lzmhmvftsvcjfhfw +9-14 x: xxxxxxxxhxxxxxxxxx +8-16 d: dddddddddfdddddtd +1-2 g: wrhg +2-7 r: krjrxmrrvhzrprr +11-18 v: vvwvdwslcxvtkzvvkr +9-10 m: mmmxfmmmmmmmmmmz +7-12 g: ggktlgggsqpgw +6-8 t: tttttbtpz +8-18 h: nfhhwkthhxhhcshhwh +10-16 c: smnclksccmnmcmzcc +14-15 f: nmndkphffnqmffj +4-10 f: ffcwqvfffffvfg +6-13 v: vvnvvcvxwxfvvvvvvvv +1-4 k: qklkkkspwkxfk +7-9 w: wwwwwwwwk +9-10 c: ccccccccbpc +11-14 r: qrxrjbbtrxrrrr +2-5 j: wckjjdjjjzvhsqr +10-12 x: xxxxxxxxxcxxx +3-8 l: vnlslkhlwdd +4-12 n: nxnfnqnnzmngnn +4-5 z: zzgpzzc +4-5 z: zgmtbz +2-3 v: vkvv +11-12 q: mqrqmlfqqqqlq +6-14 g: lggzggfxggsggqggxg +3-8 q: sqzqrbgvzp +6-7 l: lllklll +5-7 c: czrccvcclm +11-17 r: rrwrrrrrrdrrrrrrbrrr +2-4 x: xsxx +3-9 l: llllllllwl +3-19 c: ccccccccjccccvczcccc +5-6 h: zhvhhhhghb +1-3 t: ttttvttwt +1-5 p: ppppppp +3-4 g: ssvgr +5-6 t: ndjbtttnmf +14-16 f: fwptdqwwpztqhfnswts +1-2 h: ffvmvbhmh +2-3 f: gdrz +1-2 l: slll +3-5 w: zwwwrwwwwwwww +1-3 w: fszt +8-9 j: jjjjjjjjrj +4-9 k: kkkskkkkkkk +4-9 p: sppzppqpplpp +2-9 s: ssvxrrjhs +11-14 v: cvvvvvvvkvvvvvmv +1-10 q: qqqcmqfjqs +3-7 z: sgzzfzkzz +5-8 w: wwwwhwrztw +3-10 p: phbbmpzhpppspdfr +2-8 c: cscpcccg +2-4 r: rsvr +14-16 h: hhhhhhhhhhhhhhhh +1-13 j: jjjjjjjjhjxjxjjjj +7-8 v: vvvvvvvvv +4-8 r: vbhlmwrrvmkrwn +3-4 c: ccdc +3-5 h: hbjxx +3-4 q: qqdqq +10-14 k: dkkwnrkkhkwzhkkkk +1-3 z: zzzzzzm +3-7 t: tbtxfttvw +6-18 n: qntgnnnztkhwtnjrnm +4-5 g: gggrng +2-7 c: bclzgcgq +1-8 j: jbjjjjjj +2-3 x: jxxfbtxskxc +5-7 g: kgszqgcgxgqtppgb +1-6 l: llllltll +3-4 g: brgm +12-16 x: xsxxxxqpxxvxmxjxxx +6-7 k: kkkkkkk +3-9 f: fftbvjfvfffstzfff +14-15 r: khlwrfrcnrkddrh +2-4 h: hwhqm +4-5 z: zzzzd +7-10 b: bbbbbbpbbt +8-10 h: hhhhhhhdhn +5-6 c: bccclt +7-11 p: pppppppppppp +4-6 r: rwrrrrrr +9-17 m: mmmmmmmmmmmmmmmmmmm +3-9 n: nnnfnnnnjnn +3-4 q: rqqcq +1-2 z: mbzz +1-6 h: hhhhhs +10-11 h: whhhrvtghhh +5-6 g: ggggjz +5-8 g: gggbgggvg +15-16 v: vvvvvvvvvvvrvvtv +5-7 q: qwrzqbllqqqrgkqnlsr +2-4 c: ccccc +7-14 p: spppxpppphblprm +4-9 j: qzxlxdzsdlnlhw +2-4 l: lzphl +16-17 g: ggggggsgggggggxpqggs +3-17 d: ddddddddddddldddcddd +10-12 n: qtkgqxknvjnnsbnrwtp +8-13 d: dddddddcddsdkdd +7-16 v: wkntvjdvvwvfvnqvm +2-5 w: vwhjw +2-3 f: dmgff +2-5 p: nklmmzp +4-5 x: vxxxxd +1-2 m: mmmqm +9-12 r: rrrrrrrrqrrm +6-9 r: ldvhvrjdkqhmr +2-9 f: fmkffptffzdgk +5-12 x: xxxxxxxxxxxbxxxxx +3-4 w: bwwqgwt +10-11 f: fffffffffhfff +10-13 n: nnfnmnhnnnnnmn +12-13 n: nnnnnnnnnnnnnn +8-13 z: rzzfbzzdrzlkn +13-14 p: qgkxppfppfjcnx +3-4 z: bcxdctzg +3-9 z: zznzwzzmffqxj +1-2 n: nnnznr +2-6 s: mtspsskswf +2-15 g: ggggggggggggggqg +3-8 x: tzxqfjrkpdgkxptbxm +15-19 v: dvcvvvvvvvvvlvqvvvv +4-9 r: dszrbrbzrwlfxpcrkn +6-7 f: fffffsmf +5-8 v: vdvvvvrv +10-11 m: mmmmrmmmmmhmmm +9-12 s: stwssszcsssr +8-15 j: jjbjjjjjjjjjjhj +6-8 v: vvvvvhvv +1-7 w: ghxwddwwbfchvtff +6-9 v: vvtxxrbqpvdvvv +3-5 q: fqfqrskl +15-17 k: kkkkzkkkkvbkkksrlkkk +2-18 w: rtfwsrwcbpwtwjzmwwws +5-7 f: pfshgsnff +8-20 h: jkkhhhssfppkjqdfdhtp +2-7 b: bblqbfhbbbb +3-6 j: wjmjjxjj +4-13 d: dfzdkqpddgchbhtgg +4-7 x: xxxxtsn +5-6 m: mmmmmmtm +4-5 p: pkmppck +1-14 j: jpjjwjjkjjmxkjwqj +3-4 s: qxsfvs +8-9 k: kkkwkzxrvkkkk +13-15 r: qzrzrrbrxrcrzjpr +1-4 l: lmvlj +1-4 l: mrll +11-15 w: wqwwwnwwwwtwwfwwjww +8-9 g: fggzsggmggggccm +2-5 f: vggqfcffxh +2-4 c: cwcccr +11-12 c: ccccccccccfc +3-5 g: ggmggg +10-11 l: llllllllrll +5-6 v: wvdjvv +6-7 p: ppppphkp +7-10 c: tcccccnccjcccc +8-10 m: mmmrmmlgmt +3-14 j: ljsjjjjtjjjjjhj +10-16 c: kcjcccccccccnvtccccc +1-9 n: tnjnnnnnnnn +3-7 h: mhdpxhhh +15-16 c: ccccccgcccccccgcc +6-8 t: tvkddtrt +3-4 k: fkhjk +9-11 v: bqmhnjvpvxr +7-9 x: xxxxxxsxpx +16-17 h: hgjzqhvqhsgcplwmhvth +16-17 p: ppppppppppppppkqvp +8-11 l: lllllzlbclslt +4-18 k: kkkkkbkkkkkqkkkkkks +1-8 b: cxbvpxbzbsz +1-12 f: ffffffffffffffff +13-19 d: ddddddddddddkddddddd +9-11 v: mtvvvvvvhvgvv +10-11 t: tttttttttdtttt +5-9 g: gglgggpgdlgtcqg +7-10 m: mzmmmmmmrn +5-6 q: qqqqsq +8-11 f: ffrcfbfnwffzfpxfbvf +7-10 f: ffvfffxbpfffmjfqb +2-3 r: rrrr +6-7 x: bxxxxxgj +3-5 j: jljndr +4-14 q: qqqzqqqqqqpqqdqqqqqq +3-6 n: nnnnntnnn +15-16 g: ggggggggggggghggg +13-16 x: jxxzqxvxfhxxvggxdqx +4-6 f: zfxfkfhmsfgjf +9-12 r: rrrrrrrrgrrnrrrrv +3-7 w: wczsqxwdw +9-12 k: hxgkkklkkkkwkkk +1-4 s: sssns +5-6 v: vvdvlv +12-14 g: gsgggggggggggkgg +5-16 r: rlkqflvvtfcdckfrn +18-19 c: cfncccccccccccccclzc +4-8 n: nbntnnnvnnnnnn +3-6 l: jfpxllfrbll +4-14 k: xphrkstmqmqhkw +2-10 b: rrsrbbqvbr +5-7 k: wkbgkkkqfkkkk +5-6 k: kkkkkkk +7-10 k: mqrsjkksskswqz +11-14 x: kxxxxxcxxxnxpbdx +2-15 h: hhhhhhhhhhhhhhh +5-12 p: pppjpvgppppppppprv +2-11 l: lzlllllllpdlll +5-7 t: xwtzttvctqtpvbltpbtt +2-18 k: ckhhplvxfrdqkbjhbkpp +12-14 k: rkkqvkfngkkqjn +3-7 n: mtxnkbnw +3-11 z: zzzbzzzqzmzzczzzz +3-4 m: mmmq +2-7 s: ssssskcnssgnkzd +3-4 g: rmgrggd +2-3 h: grhrtpcch +2-6 d: dddddddv +3-7 g: jggggggggrfggggg +5-6 v: ljztvvqrcsjdnlwv +2-6 x: vxxtwk +2-8 v: vvvvvvvvjv +3-5 h: dwhwv +2-7 n: ttxgbdbwnnnvnnx +2-4 c: cctfcsb +16-17 c: ccccccccgcxckccxccc +5-6 x: xxxxxx +2-6 p: pwndpfrpppppppppppkp +1-4 h: zhhjlh +2-5 p: prpxwppljppvwjtppkp +2-6 j: bjjjjjjf +16-20 p: pmppppbpppppppppsdpn +1-3 b: bbbh +8-11 k: nkxskkbkfjvcjkdcgrk +7-12 c: cqcdcccgchnd +5-7 m: mmmmmmmmmmmmmmm +4-12 j: kjdjjvrjxsjw +7-16 c: dfzcsdcdgrxvfkjzccmw +1-12 m: mmmmmmmmmmmmmmmmzmm +1-2 s: sssws +1-5 x: xrtxs +3-4 w: wvwv +6-7 s: sssssss +11-12 m: lbwtvjjmmggm +16-17 l: llllllllllllwllht +11-13 t: qtttttgtttttdmt +2-5 r: ldgrf +13-18 r: rrrrrrrrrrrrrrrprr +12-19 l: lnfnhllrjgcllhjlczl +6-7 c: clccccv +9-14 b: shlfbcxhbbmbbzbg +4-6 s: sjssvxdx +11-12 v: vvvvjppqkvqv +5-7 j: jjjjmjjjj +8-11 l: dsldfrdvbll +3-4 p: pkvmcps +2-3 s: ssss +8-11 j: txbxnpwqxjm +4-6 d: drdvdd +4-8 v: xgwkxvfq +1-5 t: zttttttttqmtt +5-8 c: ccjccccqc +9-18 z: zzzzzzzzzzzzzzzmsgzz +1-4 q: qqqkq +10-11 w: wwwwwwwwwwww +5-9 r: prtdrksjbmzmrq +1-3 v: bvvnsmrdgxmnxjjv +6-11 d: drnkdpvdvhfrfgzkn +5-9 h: khhrhhhtvhtznhf +1-3 g: gfpgn +4-5 p: pppfg +8-19 n: nnnnnnnrnnnnnnnnnnzn +6-13 c: cztfcwpjcczsc +3-4 r: rrrg +4-6 t: tfjvtv +4-7 g: nggggggg +2-3 c: cmkc +7-15 r: jrrrrrrrrrrrrrwtrrqr +8-12 h: hjtpfjpbbzwhw +7-8 d: jddddddd +1-9 s: lsssssssmss +18-19 m: mmmmmlmkmmtdwmmmmmh +5-9 t: ttzstqtmt +7-11 x: xxxwxxxxkxxxxgfxxx +2-3 s: dssjzpsxjr +3-4 g: gcgtg +3-4 f: ffxff +9-11 v: tvvvvvfslvvfvv +1-7 n: nmlfmnz +5-6 q: gqzqtqlq +4-5 v: pvvvczdtwthvc +1-3 z: zzrd +6-7 b: sbbmbnbbrp +3-7 l: lkllvqplww +7-9 s: sssssssss +1-8 g: gggkvggsgg +5-6 n: nhnplpl +2-9 g: vgnfzjfvjmmtgd +1-4 d: dcddddddqdh +1-9 z: zzzzzzzzzz +8-10 q: wqhcwqdqqq +7-18 z: tfrfdpwpphzplxfbnw +7-10 f: rffnjdnffmfffrzfqgz +6-7 p: pppppppp +2-13 n: cndfbtxgqzmtnmq +14-19 v: vvvbvvvvvpvvvsvvvvvv +8-11 b: bbblbtwbbbbbb +3-5 v: rfvvv +15-17 n: snmnnnnnwnnnnnnnnnn +4-12 q: sqqqhwnbqqxqbvfrk +4-6 l: lllllvl +17-18 c: cccccccccccccccccc +1-12 t: gttttttxnttzttt +16-17 t: kfmtctsqttztmsxtf +7-14 f: ffffffcjffcfjfff +5-19 b: jtvbbbrbbbjbcsbbvvb +7-8 g: gggggggk +2-4 w: dwvwww +1-3 r: rrrrrrm +7-8 q: qqcqqqqq +6-9 m: tvglftcxmmnshcvscp +3-6 m: cmgmmdmm +6-9 k: kkkdkwzkgk +2-15 w: bwqwwhpwvfpdwdvjwvk +7-8 h: jdhhnhrdghh +3-6 l: llxllpl +4-11 q: ggrjmwhrqdc +7-8 w: cwcwwwwwww +5-6 s: sssssls +6-9 w: rwjwjwwww +1-8 c: ccncccccccccc +2-4 b: xkbbf +6-9 t: ttttttttrt +14-15 h: hbhhhhhhhhhhhhw +14-17 t: ttttgtttdttttttttt +4-7 q: gqmqrqr +9-11 j: tjjjsjwjglpjjjkjjg +18-19 j: jjjjjjjjjjjjjjjjjjf +15-17 p: ppppvhppppppppppp +3-5 d: jlqcqdnprnddpd +6-8 n: nnnnnnnn +5-7 h: cwhhthhhv +3-5 z: wqzmzpbjstzjpfww +2-9 c: fkthkshccccczcph +11-12 c: hcsscmqcdcgp +8-9 t: tttttttkq +3-4 m: tnmcvtljnpdphg +11-19 l: wqjvlvzrgxlvrngwlktj +6-14 s: dxzsssssmzgsmssss +4-7 c: ccckjchc +8-9 s: ssssssrslsm +16-17 b: bxbbbbbbbbbbbbbbz +3-12 p: mpnpplpkppmbp +14-15 v: vvvvvvvvvvvvtvv +5-6 d: kttkndlslhfg +3-5 w: tlwwl +3-4 n: wnhn +13-14 r: zrbmrrrrrrrrmrrr +3-5 f: fzwgrmzpkcfqkftmz +5-6 s: ssssss +5-7 h: wxpzhhzgwhdxqhmhw +8-12 j: djsgjqjjjjjdj +13-15 h: hhhrhhlhhpjhhhr +6-7 v: vwvmvhw +1-9 k: dmwkkkkzk +1-2 g: ggtkbgvgtvggx +10-18 r: rrrrrrrrpkhrrrrrrxrs +5-10 n: nxbslftnwpnn +4-5 d: ddhdd +12-15 l: lllllllllllllhlll +2-3 m: mmmmmmmmmmmmmmm +1-8 s: ssshsspm +3-5 b: nblhbdbbb +2-4 t: qtjtctndq +2-14 v: vcvkvvttxvkvpvhvvd +12-16 g: gqckxjtggwzgtlqrtjkf +3-10 s: ssvssssrsssbss +2-4 n: knln +4-10 f: xfqlfffbflm +1-3 s: mssshjgshpfrssrss +4-5 t: nttbj +2-13 w: lwqwmwhthzrtwkgp +1-3 r: jrnqb +3-13 k: khkkkvkkfkkqkkhfwzf +4-8 g: gggwgggg +3-4 g: wgjgxhngdt +7-9 k: mgshkgnhkpkjsmkvjp +7-9 d: gdjrfqndcdhddmdhdd +17-18 g: gnggggggggggggggng +14-15 g: ggrgggggggggggg +2-7 x: sxpwxddpxnxtxft +5-6 r: grdvrrrrrwrrrrrgvq +4-5 f: ffffff +8-9 f: fffxffzgff +12-15 f: dfffffffpffgffjlfmvf +10-14 l: dlflltmllplljllvlzll +1-2 j: jtnftndqklxzj +1-5 d: ddjwrdddddddhdddddz +13-14 j: lgztjqgjfbjfxff +5-7 k: kkklqkz +15-18 m: hwvmmpmmpqwsmrwmmmsm +5-6 h: hlvhhhqhlh +2-4 j: jjldjjjx +10-11 f: ffffffffffffff +15-16 t: ttttttttttttmtjttt +3-4 v: vvvv +8-9 n: nndhnclnnnnnrwnn +5-6 r: rxrrrrfrr +4-18 p: vwmppgpzltpplvwvpg +9-10 z: fzzzzzzzrzzz +4-6 n: nnbnvnnn +10-11 x: xxgxxxwxxfrwk +3-14 v: tqvvvjvdvvvzkvvvvv +11-13 z: zzmzzzzhrzrzzzzzp +5-6 s: ssgwsvssqs +2-5 z: zbzfzzds +2-5 s: sssss +1-18 r: rrrrlrrrrrgrrrrgrr +2-3 v: vgvvvvv +3-13 c: qdcvfvkjtczgb +3-9 h: hvhhhhhshh +12-13 x: xdxxxxxxxxxxxx +3-17 q: qqqqqqqqqqqqqqqqcq +12-14 q: khnjqkkxlzpqhqj +14-17 t: tttttttttttttsttpt +15-16 d: kwpdfkbhcdhkwsdh +2-15 m: fmdvntdqklcvmhmqjl +5-7 q: qqqqvqnqqq +3-4 j: mnjjj +4-15 f: lfbffxfpffsfbdfhpfs +8-9 s: sssssssgr +12-14 b: bbbbbbbbbrsbbnbb +2-3 x: xbxpvc +10-14 v: vvvvvvvvvvvvvx +6-13 f: kfvfcfffvfhdn +4-16 k: gnzkfdkmrjvwdjgkf +2-5 l: lljll +2-4 r: dprr +1-20 v: vvvvvhvvvvvvvvvvvvvc +1-2 l: mlzljlvllkpzll +4-13 r: kbzrzdrmdvfcl +6-7 v: vvpvvzvv +6-16 h: dxfwghscmjgfqmmf +6-9 h: hhthhfhhdh +6-10 j: bvqrjjjfdtjjjjj +4-7 k: gklkcrvvkk +2-8 k: ndtdhjpb +13-15 f: ffffffffffffffb +6-7 m: mmmmmmzm +2-15 g: xbgxgfgftvgvgmcgnxc +4-8 q: xkrqvqqq +4-9 v: vvvvvvvtbv +8-16 w: wwwxwxwbbwwwtdww +8-11 h: hdhhhhhcght +3-4 f: ffsb +12-13 h: hhhhghhhdmpfhh +6-7 f: ffdmgfh +1-2 c: pcsc +4-6 q: lkzqqmqqq +3-4 b: bbjg +3-6 f: lmbzffl +10-15 p: prxpdpwqpwplpppp +10-12 p: pppppppppppfp +7-8 m: mmmmmmmjmq +5-8 j: jjjfjbjtjj +8-10 t: tttttttmtm +5-11 k: kkkrhkkkkkk +2-3 c: jcccwcbwfrckb +3-10 n: qnnnnnfnnknnnnfnxn +12-13 h: hhhhhhhhhhlhh +9-10 s: smspmjsssss +6-7 d: dddddmdnd +9-10 g: kpnbgstjjgtbhk +9-13 s: ssssssmshsbsxss +1-2 s: lsfsss +8-9 n: nnnnngnnn +9-10 s: sssfssnssssjs +6-8 m: mmxmmmmmm +4-6 x: xtxjxx +8-11 r: qrqkrwbfjln +9-10 h: hfhhhhhhvq +6-10 k: kpkpkjkkkvk +7-10 b: bbbbhbkmmgbvk +8-10 k: kkkkkkkkplvmmk +1-2 r: rrwr +2-5 d: tdddrddgq +7-9 j: jjjjjjjjfj +15-17 m: mmmmmmmmmmmmmmmmj +5-6 v: vvcvvvfwjvvtn +14-18 t: kznfxrrtfcdntttjrt +3-4 c: cjdcc +17-19 q: qqqqqqqqqqqqqqqqfqh +4-5 k: fzvkk +3-7 p: pgppppppppfpp +10-11 k: kkkkkkvkkkz +6-7 t: tttjcttt +2-4 w: kwlcwbgfwwtqpngnb +4-5 q: kqqvlq +16-17 q: qqqqsbqqqqqqqqqbqq +19-20 q: lndjjddqcqkcjztwfxvw +4-6 p: pppmdccpp +13-15 x: xxxxxxxxxxxxhxw +1-9 d: lmdsdfbjpkmh +8-15 v: vthvwvjvcvvqvvhmvs +6-7 r: qxrrrrpr +3-6 n: cxzxnn +9-11 l: lllbhllhllbll +5-9 d: nbsqdctdkp +1-10 l: lllllllllflllllll +1-5 f: cdsfqzwfnjkhdj +2-5 m: clmgsmmdz +1-6 g: cbqgngzvjpxjbwnlprq +6-8 l: bfxrllllllw +6-9 v: qtcxqvmvvdptxvv +3-4 p: fjqx +5-8 t: tpnttxtlt +5-6 p: pppppf +12-13 q: qqqlqqqqqqqqw +5-6 g: hgggvx +1-2 x: qxxx +6-8 n: nkjnnpnnn +6-8 j: jjjjjjjfjjjjjjjj +4-5 s: sbsjm +2-6 m: lmtmlm +3-6 c: bzvhcccncz +3-5 l: lllglnlmpl +2-9 p: hpbwppwdrlpfwbdkmj +7-10 l: tlzwhnlrkrc +4-6 m: xmmmqdmcl +1-6 d: jkdmmd +5-7 c: cjqlhcdcc +4-10 z: xgtznmnznkzvz +13-15 z: zzzzzzzchzzzqzzzz +2-5 q: qhvqqz +1-9 l: nlllllllzlllllllll +4-5 q: qqqzh +5-7 t: ttpttdt +3-11 l: lmnxlthlmlzksggzll +2-5 q: qprnq +16-18 b: bbbbbbbbbbbhbbbtbgn +3-4 l: rlhl +8-9 n: nwdfntdnsnmzkqthl +6-8 h: hhhhhthv +1-2 x: xcxp +7-11 t: nttttctzxmtt +2-4 b: ksvb +17-18 d: dddddddddddddddpqd +3-5 x: lprxzdhxxvz +7-8 z: zgzzzzlzz +2-3 p: rcpxw +11-17 k: qkkkkkkkthkkkkkmkkk +4-6 s: ssrssswxsssmsk +5-8 d: ddddddddddd +5-17 v: vvtvvvtvdvvvvvvvmcw +3-8 r: rhvfrfcr +12-15 z: zzzzzzzzzzzpzzpzz +7-8 p: jppppvpp +13-18 d: dvdnddddddddgddsdd +10-11 q: hqnqvdpqdqqkq +2-4 x: jcxxl +6-7 q: qqfhfqjqr +10-11 w: kwpwwhwnwwwwwww +3-17 d: dddddddkddhdddddd +4-6 s: ssnhswswlsc +14-17 j: jhjjjrzjjmjfpzjjjjj +1-9 z: ztzhzwzzkdzzr +7-14 s: dcspnghrssxsss +5-12 w: ctbvvxzwbwgqw +7-9 k: kwkkqkkkgkm +11-15 l: gllclqplllrlnlpzllc +15-16 p: hpbpppppjpppppppppp +3-5 k: cklnfv +5-7 t: jczctqm +14-17 j: jjjjjhjjjjjjjsjjjj +9-10 g: gsknxggrgblfprf +5-6 m: zjmmqrflmfpmswcvvmtl +8-9 d: dxdddddds +16-20 w: wwwwwwwwwwwwwwwdwwww +5-7 s: ssssnsbs +5-8 z: bzbgzvzz +2-5 b: wbpkbbnkhcndh +11-13 r: rrrrrrrrrrkrsr +12-17 c: ksffzpccccspsqvjc +2-20 v: vvvtvjvjvvvvvvvvstvv +3-4 z: tzszjqzz +3-12 x: scpxgxqrtxxpjxn +13-16 w: wwwwnwjnzwwwwwwwwwwr +9-12 l: zxlrflvclgck +2-8 s: klsnwsdzbss +5-9 s: ssssssssns +1-9 q: fqqqqqqqqqqqqqqq +15-17 n: jknfnsvntjqglbnxn +15-16 h: gbpdwhhhhlthrjhh +5-7 w: cjwgkxdwwxl +1-5 j: jmnczjrlqchdwpthbjst +6-8 v: vvvfxkvvvv +5-8 g: ggbgqggmhg +3-15 v: vxvvfzvvwcxvjvvqvvq +6-14 h: drppknzrchcjhh +2-3 n: dgntnq +9-14 s: ssssssssxmsssxssssss +2-4 j: wjrdcjz +5-12 n: dntnnvbfjnznn +3-4 z: zzmnzbsrt +6-9 n: kngngnnbcnhp +6-13 k: tmsskkjkkvtksnm +2-4 w: rwhf +6-7 p: ppppppwdpvp +2-8 r: prqvprbrvrsjxm +1-8 f: gffffffff +6-8 b: lbmtblbptbxfdqb +4-10 r: rrsrrrnrrbmrngrk +10-17 b: bbbbbbbbbmbbbbjbhbb +2-13 v: tmvqcvvwvvqvzvdx +13-19 d: hrtlzplwdkshdbsjmsd +6-13 w: wwwwwwwwwwwwdw +14-16 q: hlkhpvdqrkhkqlhhlg +7-8 m: mmmmmmmx +11-12 p: pppfnpqppppp +4-5 k: kkclzkfk +8-9 k: krkkdkkkk +15-16 w: wwxwwwcwwwwwwwjw +12-16 w: wwwtmwnwqdwvjpwzwwz +5-9 d: wdddrdddrdkdkddd +5-6 p: qppbpvp +1-7 t: fgznlbtgwtnrlhgf +4-10 j: jjjjjjjjjljjj +3-6 z: spgznzcz +11-12 h: xhhhkfhhhhmh +3-12 g: ckgvgbrgcqrggggt +1-6 k: kkkkkjk +2-3 j: qzbf +3-4 r: rrlprrrrrrrrdrrrrr +13-19 l: llllllpllllllllllll +6-10 x: xxxxxjxxxxnx +2-12 f: jffffbffqftf +5-8 b: wbgbgbsb +4-8 t: jflltrxfgttqvrgt +2-5 z: fzzzszcwzz +3-6 w: whwwbnw +12-15 n: nndnnsnnnttnnnnnnn +4-9 c: mcsstwccc +3-4 q: dxwq +6-11 v: swmrlccvxzdrffvvwj +10-11 x: xxmxxxxxxmx +1-2 k: fkqk +15-16 d: nlnzddfrjqvdjwddmw +2-6 k: ldkdmnmcp +1-11 p: fptzpgpzfhp +12-14 b: bbbbbbbbbbtbbx +6-12 w: wwwpbwwmxwxz +1-4 r: mrrrrrr +13-18 w: wwrwgwrlwwwwwwwwwlw +16-19 z: szzzjzzmzzzzzzzzzzsc +2-7 v: qvvcsvd +7-10 s: mtskmnvnlcgsb +6-7 q: mkdqqqq +3-5 x: xwxmx +7-9 q: qsqjfqcqwnq +1-4 r: crcb +14-18 k: lfwklgqjzgxfpkpkfqr +9-14 j: jjjjjrjzjjjjjfj +5-6 x: xxxxxxh +1-17 z: gvczzzzqdqzzzzzmwkzd +11-14 k: dkkklkkpkkkktkkkkkk +9-12 j: jjjjjjjjqjjv +2-6 d: dthddmddd +4-5 v: qvfjfvvdlszqxvbl +4-5 n: nnndn +7-8 c: wqnmpcwf +1-10 c: cvgmnkcssrhqccmddgh +8-9 m: lmmtmxmsm +3-6 v: qvvnqvvrfhv +6-7 x: vxxxxmkjxxxxxxxxxxx +5-14 x: qxjgbxxxxprxxn +13-14 p: dphsqvhrfsbpqpp +3-5 r: trvrrxrrr +2-5 f: fffff +2-6 w: whwdwnwt +2-3 x: wxcsxx +10-14 p: pswtzbkslpqppph +3-5 l: zllllx +9-11 g: ggggggggggxgg +4-6 h: fvhhfhhfjqffhhhwx +7-8 t: wttttttf +11-14 q: qqqqvqqxzcqpqhqkpqtf +5-9 b: bsrbbbxkm +13-15 t: tttttkwtttttgttwt +4-7 c: czccvxtc +9-10 n: nwnnnnnnnn +3-5 f: ffdtf +13-14 h: hhzhhhhhhhzhphh +9-11 g: kgsfsnhsggglgsp +5-6 s: hbxpnsssvx +10-11 t: ltsrtmvmkgm +12-18 k: xlwkkkkktkkkbkkrjxkk +5-7 l: lnllwlw +16-17 k: kkkkkkklkpkkkkkknkk +11-12 t: ttttttttttttt +11-13 v: vvvvvvvgvvvvvvv +10-14 d: ddvddjdddkdddd +3-4 r: nrdrhnr +1-4 q: pqqxcsws +5-6 p: ppppjpp +14-15 b: bmbflqmbzhkbqvb +9-11 t: ttntttttnpt +15-16 l: llsllldflhblwlllf +5-10 w: swwwwnwncwtfrpnw +6-7 j: jjjjjthb +2-4 d: ddhdzfdddlp +2-9 q: jqqqqbqqqzq +19-20 b: bbbgbdbkbbhbsdpbbtbh +7-9 v: hvvvxvvvv +6-7 l: gsbslll +2-6 p: pzpppwpppppppppp +10-11 g: kmkngxnnrfh +1-11 v: rvdvvvvvvvv +2-4 n: nhndnnnnqn +12-13 q: qqqqqqqqqqqqm +7-9 s: ssssxsnsssss +2-15 t: ftntkfmqxzxggcfwb +1-7 v: vvwvvvqdvv +6-14 s: sbsssdssssssfqsss +3-8 w: vwwqwwww +6-10 z: zzzzzzczkzzz +5-8 b: bbvdmxqbbbbbbbbdv +4-8 s: stvsssszcswszs +12-13 x: xxxxxxxxxxxxxx +5-15 d: ngzjdxddjddxvbwzbd +1-10 s: ssssssssss +10-14 r: rnhrrrrrrrznrrr +1-7 z: nvzzzcvzzmzhnprzkz +2-9 w: zfmxnmltsbxpfsh +13-14 l: lllllblllllldgl +3-9 b: dbbrkmmfsmhblqb +1-6 t: tjmrctqggzdgtz +1-14 m: bmmmmmmmmmmmmmmmmmm +3-4 b: mwbndzbjp +9-11 n: nnnnnnccmnb +5-11 b: kpcbqbbbcmbkb +3-6 j: wpjjspjw +6-12 p: pppppppppppdppp +1-4 c: rccc +3-9 l: llllxllbllll +6-14 w: tlpcwxwwwzbtwd +3-4 q: qqqg +3-5 x: htxcvqkwx +15-17 r: rrrrrrrrrwxrrrrrr +8-10 k: kkkkkrkwkkw +3-4 s: jjwhksqrbxs +3-4 g: gvggg +11-13 t: tjgttvtdtbttttttqttr +5-6 j: jjjjmjjj +9-13 f: fffffffflffff +13-14 z: ccbzvzwmzpzzmz +6-7 b: bbjtbbbbbb +3-5 k: pkknmv +3-4 w: wmchw +4-7 b: bbbgbbbbb +10-13 q: qrqqqvxbplqqxqqqmqq +1-8 b: rbbbbbbjbbbcqbb +7-17 q: xqqqqqqqqqqqqqqtq +4-6 k: kqkkbbg +6-14 l: lglhbvslmhqjnw +4-6 w: pwwxxn +12-16 q: tvtqvcchgtmqqznb +8-14 q: hkthhbpjvkpxgq +11-13 m: smmffkhhkrmwnbwrs +8-11 d: dddddddddddd +4-6 m: lmdmmkwmmmfbs +12-20 w: wwwwwwwwwwwbwwwwwwsb +5-7 m: mrnhmplhwczr +7-11 p: pppppdbpppvpc +4-10 p: zpwsppfppj +3-12 d: dddddpfddrdln +8-9 g: chfcgzfgg +5-6 g: gggghg +7-8 q: hqqqxqqqqqqqqqg +4-10 c: cdtpvcccvd +7-8 s: sqwtsxsssss +5-11 v: pcvvrvxvvnpjn +4-6 z: hzmnzg +4-6 b: bslbbbxbbwml +16-18 z: zzzzzzzzzzzzzzzzzg +1-3 h: hhkh +2-4 r: wrtrb +5-6 d: ddddpd +4-7 k: kkkkkkkkkxk +8-13 k: pkkkkkkkkkgkkd +8-13 p: lpxppxpbpgppzppmppp +3-9 m: mmmmmmmmmmmmmm +6-7 h: cpmmhcttgx +11-15 b: bbbbbbqbpkfbbzh +4-7 j: jjqvjjj +6-8 c: gwrfrslcsqmcttzcl +11-13 r: mrrrrrpgrrnrrrr +3-8 q: tqqqqqqz +2-4 f: mtsxj +1-17 g: cgggggsgggdgcgrxg +1-9 m: mhgqjqxjnpmmmgnmfpm +2-4 g: rggbc +2-4 w: wgfw +7-9 d: qdmddddddmxdd +12-13 t: ttmjznwtwtttz +11-12 b: kjbkbgdbwbmcb +4-5 h: mhvhh +4-6 t: ttvttttt +9-12 r: zwlljhfrrfrr +3-4 j: jjjj +2-7 v: vvvvvvmvv +9-19 n: nnnnnnnnmnnnnnnnnnqn +1-3 q: qfflx +8-10 k: kkkkkkknkk +4-9 k: kvrspqfkkqj +14-15 b: bbbbbbbbbbbbbbbb +3-8 d: qrdsfdwd +5-8 j: jjxmrtjjjjkpnnjt +14-15 f: fnlnbzqffrrnffgf +1-4 f: fnff +4-5 x: xxxtx +5-6 q: qtqqlmqqq +14-15 f: fflffdfffffffkjfff +1-5 k: kkqkvkk +5-9 b: nbjtwbbgw +13-19 v: ssjjggrvrnbpvjlggsf +8-10 x: xxxxmxxxxx +4-5 d: vdwhtcsc +1-7 l: zlllllglll +2-5 d: drjpdwrlnpfqqrnlh +12-13 p: fthsszdpjcqxd +14-17 z: zzczzzzzzzzzzzzznzz +6-11 m: hhcsqmvmfgmkmbm +7-8 m: hmmmmmcmm +6-7 l: lllllgl +5-10 t: tttktdzttlcttv +6-12 m: nmmmpmmmxtmmjmxm +4-5 q: qnqnnqqqqqqq +1-4 c: zkpcc +5-6 n: nbphjnfn +6-7 f: ffffxqrf +1-6 g: lgggggggg +5-11 p: mbfpppplhdp +5-8 z: jzvzzkzm +5-7 l: llllllll +5-14 x: gvjvwmhxtzpsfxb +4-13 x: tvlfjxmpfrmqmkhrdlbl +8-11 b: nbbbbrcbbbb +8-10 w: ccccwwgwwwwl +2-13 p: wwwxrsfztddwplfpqx +17-18 c: ccccccccvccccccccj +11-13 d: dphdtwhqwdhmx +15-17 c: ccccccccwcccccccdc +3-4 d: ggjv +3-4 b: bbqbbqbx +2-3 g: qggg +10-18 w: wpbbfmdzhsnbcdxqrh +13-20 v: vpvvvvvvrvvvvsvvvvxv +16-17 w: vwwqhwwwfhwgdkhfw +16-19 b: bbbbbbbbbzpbbkbkbbjb +11-16 x: hczxsbkhxfbtxvzx +10-17 b: bbbbbbbbbsbbbbbbvbb +2-3 p: pppxsznnn +2-7 g: ggggsgggl +15-17 t: tttttttthttttttttttt +7-17 f: fffsfftfffffffffffqf +3-7 k: gpfmqbkqmkkkrpkpk +4-7 j: xpbgxjw +14-15 f: ffffftknfklfdff +1-4 k: pkkslkkkkk +4-7 w: czbwgqtpwztxwwbwmqf +1-5 n: tnnnnn +1-5 q: qdqtq +10-15 c: fccqccrkcccczcmcc +9-14 h: hhbbhhhhdhhhhhdhhh +2-6 f: fsbfdcvffhffm +12-15 h: jhhhhhhhhhhhhhs +9-11 p: ppppppppppbp +15-16 d: txdbddddjdsdbrvddddp +5-6 w: wqkwrv +2-4 z: zzjnsjspkgdkmvvlh +13-14 z: zzbzzzzzzzkzzzz +9-10 v: vvvvvvvvvcv +13-15 g: gggggggggpqgtgv +1-17 j: bjjjjjjgjjjjjjjjjjj +5-7 x: dpsxxxx +17-20 d: ddvxddtdhdrddjddnddd +5-6 f: ffxffp +12-14 w: wwwwwgwwwwwwwq +8-13 t: rnthvkbtnxvltsjn +4-5 q: qqqdq +4-12 s: ssssssssssszs +3-4 s: sssw +2-5 x: kzxwxqljv +1-3 x: rhxxdxxxdg +11-12 t: tthtstttgztrt +1-4 n: qzdnkpkrzgxdztdcfn +12-15 g: fgdzsqwkfdhrbsjz +1-3 g: kggg +6-9 c: hcwcccpcccwcck +8-9 r: rqrlrggwrrjfzgkmrq +4-5 r: ghzlrrrgs +9-11 g: ggggggdggggr +12-14 f: fffffffffffcffffff +3-7 z: mgzmpjz +1-6 h: hhzzbm +18-19 g: ggfhhvggffkqfgjnggg +1-8 p: ppppppphwppwr +13-15 l: qmjnjfnnlmbqgllwhk +5-13 z: zgpwzhwnmptrzrq +3-4 v: xnvnqjjrvvlgv +14-15 p: pppgpphppppppwpnrpr +9-13 h: hxfhhshbqhnhhp +5-6 w: wkvqbtbtfmsbwkwwhdwb +1-3 x: shxxx +1-2 v: vhvt +5-8 c: zdrlnhcctcpccsntl +12-19 x: xxxxppxxxmfglxfxmxg +3-4 v: vfqwq +8-9 f: fffffffxx +11-14 l: lslvlnbsjlbllmqllfl +3-9 j: njhfczjmmn +3-5 q: scqrdqq +2-16 q: tvgkgqqcpqmpjkqqqqqb +11-13 q: vdrmqfqqqqqqdjqq +3-8 j: jftcskds +10-11 j: ljjwfjtxqjh +7-16 z: zqtcldzxqmzmgzbz +6-14 v: vvvvvvvvvjvvvvv +1-13 q: qdrqgpcqzbpqftws +6-8 d: mdgddbtdddzd +1-6 g: gggjgggggg +1-4 d: djddbhddkdtkvt +11-12 l: lllllllllllll +1-9 g: gggggnvgm +7-17 v: vvvvvvxvvvvvvvvvv +7-11 m: mmmmmmmmmmh +2-4 m: cmfmcpm +4-5 m: mmmmjm +6-9 q: qzcqxbvqfk +1-2 s: ssnssms +2-4 m: xmmz +15-18 h: rtzvhbrpsrbhxqchbz +5-6 w: jwwwwnwt +4-5 m: jmrmwfqmrmtgmm +8-11 p: pkpjpmpppxzpp +1-7 s: sssspssszss +3-6 l: lclllllknlm +1-2 p: pwrwlc +7-9 s: ssssssxhfss +5-9 l: llllllllflllgl +12-19 n: clkznzskfvxngwnnclpx +14-18 n: nnnnnxnnnnnnnnnnngnn +1-8 m: vwbpmmsxmvbwsggqgxd +10-11 q: nqqqqgqfqpf +4-15 b: fctbwzqnwbnvqbqlb diff --git a/README.org b/README.org new file mode 100644 index 0000000..721ad68 --- /dev/null +++ b/README.org @@ -0,0 +1 @@ +* Solutions for the advent of code |