Author: Honza Pokorny <me@honza.ca>
Add 2020 clj files
project.clj | 8 resources/input01.txt | 200 ++++ resources/input02.txt | 1000 ++++++++++++++++++++++ resources/input03.txt | 323 +++++++ resources/input04.txt | 1056 +++++++++++++++++++++++ resources/input05.txt | 859 ++++++++++++++++++ resources/input06.txt | 2042 +++++++++++++++++++++++++++++++++++++++++++++ resources/input07.txt | 594 +++++++++++++ resources/input08.txt | 636 ++++++++++++++ src/aoc/core.clj | 7 src/aoc/day01.clj | 48 + src/aoc/day02.clj | 81 + src/aoc/day03.clj | 73 + src/aoc/day04.clj | 90 + src/aoc/day05.clj | 65 + src/aoc/day06.clj | 52 + src/aoc/day07.clj | 99 ++ src/aoc/day08.clj | 96 ++
diff --git a/project.clj b/project.clj new file mode 100644 index 0000000000000000000000000000000000000000..c023e04fe03b711ea568eaa7564dd8239e51840d --- /dev/null +++ b/project.clj @@ -0,0 +1,8 @@ +(defproject aoc "0.1.0-SNAPSHOT" + :description "FIXME: write description" + :url "http://example.com/FIXME" + :dependencies [[org.clojure/clojure "1.10.1"]] + :main ^:skip-aot aoc.core + :target-path "target/%s" + :profiles {:uberjar {:aot :all + :jvm-opts ["-Dclojure.compiler.direct-linking=true"]}}) diff --git a/resources/input01.txt b/resources/input01.txt new file mode 100644 index 0000000000000000000000000000000000000000..3c039b7ba24e88f68dce34a38df090ffe61bbba8 --- /dev/null +++ b/resources/input01.txt @@ -0,0 +1,200 @@ +1895 +1732 +1660 +1658 +1878 +367 +2010 +1989 +431 +1946 +1614 +2003 +945 +1856 +1934 +1937 +1781 +1947 +1991 +1917 +1604 +1707 +1966 +1959 +1182 +1828 +1880 +1908 +1942 +1687 +1611 +1922 +1913 +1803 +1976 +1718 +1885 +1971 +2000 +1912 +1981 +1776 +1901 +1941 +1935 +1977 +1907 +1893 +1898 +1975 +2001 +1833 +1951 +1939 +1988 +1870 +1985 +1932 +1930 +1938 +1926 +1931 +1982 +76 +1979 +657 +1872 +1933 +1961 +1987 +1998 +1994 +418 +1914 +1929 +1810 +2009 +1712 +830 +1990 +1900 +1876 +1753 +1859 +1965 +1963 +1905 +1921 +1685 +1694 +697 +1899 +1997 +1964 +1927 +1952 +1894 +1960 +1986 +1883 +1616 +1993 +1892 +1943 +2005 +1995 +1915 +1663 +1954 +1902 +1191 +1948 +1875 +1850 +1955 +1962 +1984 +1957 +1969 +1887 +1953 +1786 +1638 +1909 +1881 +603 +1973 +1784 +1869 +1925 +1968 +1737 +1807 +1950 +1992 +1936 +1918 +1891 +1897 +1940 +1919 +1910 +1862 +1958 +1832 +1904 +1791 +1920 +1874 +1729 +1643 +2007 +1871 +1999 +1584 +1890 +1924 +1974 +1701 +1906 +143 +1725 +1945 +1783 +1873 +1903 +167 +1855 +1633 +1956 +1996 +1808 +1884 +1916 +829 +2002 +1852 +1835 +1889 +1983 +1949 +1970 +1774 +1764 +1609 +1882 +1857 +2004 +1911 +1896 +1980 +2006 +1967 +2008 +1972 +1648 +1923 +1978 +1675 +1831 diff --git a/resources/input02.txt b/resources/input02.txt new file mode 100644 index 0000000000000000000000000000000000000000..f4997c30891eed45500c538ec98feed1af7d4301 --- /dev/null +++ b/resources/input02.txt @@ -0,0 +1,1000 @@ +6-10 s: snkscgszxsssscss +6-7 b: bbbbbxkb +2-4 n: nnnjn +1-2 j: jjjj +5-9 z: jgzzzqhbj +4-11 m: mfmmmpmjmkdr +12-15 t: twqrxttwttthtkxbz +8-9 z: ftzjzzzzr +17-18 h: cpkhssvpphzvprfnft +7-8 b: bjbbbbbb +4-5 p: pppppppppgppps +16-18 r: rrrrrrrrrrrrrrrrrr +9-16 v: vvvrpvbvvvvvvvvvwvvh +11-15 d: ddddddddddddddjd +9-14 g: ggbggghggggggggw +1-5 d: ddddbd +1-4 x: xxxwxxx +1-2 l: bdjjddlqg +1-4 b: lbbxb +15-16 f: ffffffffffffffmz +10-16 m: mmlmmmvmmmbhmmmq +4-15 v: vlfvvqphhjfvlgt +5-12 m: mmmmjmwmmmmcmmm +7-8 q: qqqqqqxkq +4-9 h: hhzhhhhhhhhhsh +3-7 t: thltdtjtstzrtwtt +6-7 k: kkkkkkk +1-5 q: jqwqd +4-13 x: xxxxxxxxxxxxxxxxxx +1-4 l: llfl +6-12 n: nnffnfnnmnffnx +4-6 m: xmvxnmpmm +5-7 m: mmmmbmmmmmmmmm +9-17 f: ffffflffbfffffcffff +4-10 k: kkklkkkkkhktkkbkzq +8-15 z: kdxxzzlhpzgbzjzz +2-5 q: qrqqbqqqqqqqkqq +3-5 t: zrttht +9-12 t: ttxgntjmvntctpfrt +2-3 k: kkkk +8-10 j: jjjjjjjjjj +2-9 k: vkwkhcqnk +9-10 t: ttttttthtt +4-6 b: bbbbbbbb +9-12 n: xnvnnvldhthlsn +2-4 w: wwwwwwj +6-10 t: tttttwttttvtt +3-10 j: jqjjjxjdjnjjjj +15-18 q: kqlncdqwclqpjzrbnq +7-8 p: gpwbjppp +3-13 m: mmmmlsmfvmhmmmm +7-10 s: wdshsrsgsl +8-16 f: fffffffxfffffffcf +16-18 s: ssskswhsvslwsssrsq +12-14 j: gjjjjkjgjkjhjvj +13-14 t: gtttvftwtgvhlt +6-7 v: vvvvvgbv +2-8 l: ssldslmvl +3-9 l: bflzllqkqlkll +8-9 n: rrnnnnnnsn +7-14 p: bqsrxgplkpdvbpkn +2-5 z: wzbclnsxt +2-4 k: knkxk +6-8 d: drddjddjdd +15-16 p: ztgptpfpcwppqrzppps +1-3 k: nmsqksv +7-10 n: pwhbcwnlznfnvrlnds +13-15 t: tttttttttttttttttt +10-12 b: bbbbbbdbbgfxbbbf +3-5 w: rwwwj +18-19 x: xxxxmxxxxwpxxxfxgln +1-4 g: lfsjtgggg +13-15 x: mxzgtxhrxjhxtnf +13-14 d: ddddddddddddlx +3-5 r: rrrtrrtmlr +1-7 t: thttttttttt +2-5 g: sngggj +8-9 n: tnnnnnnnn +6-10 w: wkwwjfwltk +12-18 n: nnnnnnnnnnnnnnsnnh +14-18 m: mmmmmmmmmmmmmmmmmmmm +5-15 v: fvvfrcqkvkggnpl +13-19 f: ffffffftfffdnffffpsf +13-15 k: kgkkkmkkkgftklb +4-6 h: hhhchvh +7-14 l: qmbdhdjbrglxql +13-17 w: kwwwwwwwwwwwdpwww +1-5 q: pqqqdqqqq +8-9 p: vhwphvpfp +2-4 h: hljmh +1-2 c: tmcc +3-5 f: dpnvwffhlp +3-5 m: mmmmmm +10-12 c: ngjnczmcscxc +2-4 x: mxxj +4-6 m: xbmkmm +1-6 l: kllllsblqhngl +11-18 x: xprkjcrxkgxxgwtbmx +4-6 k: vwxshkkkkbtfbhl +11-15 z: dzzkzjjzzzzzzzlmzbn +5-6 f: ffffnfffflfjff +3-6 d: ddddddbd +6-9 r: wrrrvrrrr +8-9 n: nnnnjnnnt +2-7 b: bxptdkctbrxfllpvj +3-4 x: hxxv +5-14 n: nrnnnlsnznnzrqnjxnp +1-3 w: wwww +9-12 x: xxmxxxxxxxxxtxx +10-14 j: jjnjjjjlvjkcsjjdllvj +4-6 w: wgwbwwww +10-12 t: ttqttttttttl +10-11 t: ttwtttttttv +9-15 t: ttttttttftttttttt +2-3 p: pfgp +2-4 z: brrksnvqjzwqjvjs +8-9 n: knnnftzjbqj +6-7 w: swjwwdwwwwwwwww +1-2 j: xjlrkjjztrjfpss +13-14 l: llllllllllllvlllllr +7-12 l: lllllllllllblllll +7-8 j: gqdcmjqh +3-9 g: gchkbvgvgw +15-17 b: bbbbcbbbgbbbbbmbg +1-7 h: qlmhhcdhhhhhhhhhh +2-15 c: ccccccccccccccscccc +1-2 q: xvch +3-9 w: wwwwwwxwww +2-4 x: jskx +3-7 t: btwsnvts +9-11 g: gkhgwctggbm +2-7 g: xvgwwltdvnzscbtqwb +1-11 k: kkqkpkkdkkkkkkkhkk +4-12 h: nbqlhjbqhxtnxlzlr +3-4 d: dwdd +8-9 k: kkkzbckklqqkhfkqkk +7-8 c: pcxmqdwc +2-4 v: qbvwvvnvvp +3-9 c: pfqcblwxcrmx +1-9 t: fwgtcrftktt +7-8 p: pppppppp +6-13 w: dnwfhwkjffpdwgzdf +10-14 k: kkkkkkhkkwkkkkkk +2-4 s: zscssddtpmqblmd +11-13 b: dbvzwthlcmbkb +1-4 k: kqlxwvbkckwzmqxvtcc +2-10 s: sxssssgsssxsssnss +3-9 w: nxrmwlpgw +10-13 w: wwsgwwwwwwwkw +9-13 v: vhvvwjvcvbvvg +5-7 n: fbvnjpt +3-4 x: xxxx +9-10 l: rlllmlllll +7-9 d: ddddddddhd +4-8 z: zzzhzzzf +11-12 m: mmmmmmmmmmkf +4-8 m: bmfzppcqttct +2-4 m: mfmcmmmcx +2-9 p: rppzgvshn +7-8 r: rrrrrrrrrrvr +6-7 p: hkltppp +7-10 m: mmmmmfmmtmmmpbmm +6-14 p: pppppppppppppxp +4-6 p: wbspppnlmc +2-4 n: xnfnl +2-5 q: nqkcqmvwp +2-3 d: ddkbkdjd +5-9 b: qxjbblbrb +14-16 b: bbbbbbbbbbbbbqbbb +5-6 p: dppppp +5-8 j: kxztnjjn +14-18 k: krkkkkckkkkmktkkkkd +7-8 n: nnngxnfpnn +16-17 c: ccmccccccccccccfcccc +1-3 g: wggg +1-2 c: cqcckc +2-8 g: gjwdkbds +10-17 s: hswqssmttskspdlkkss +14-16 b: bbbbbbbbbbbbpbbrbbbb +12-16 r: srrmcbrrcrzrdwzng +2-3 h: fcws +9-13 p: gkgpqpghpjbpz +9-10 m: mmmmmmmmmmm +3-4 b: brbb +2-3 p: gncvqdhp +2-7 g: gdggggggggggggg +2-7 j: jjjjjjrjqjjj +3-5 v: ltptjlntf +1-7 w: gwwwwwfww +7-10 z: zzzzzzmzzzz +10-12 x: xxhxxxxxxgxsxxxx +11-12 b: bbbbbbbbbbbbd +16-17 v: vvvvvvvvvvvvvvjht +1-4 x: bxxx +16-19 g: gggggggwggggggjgggg +5-10 q: qjpqqvlnkqxmlv +4-6 p: qrpffplvpp +7-9 r: rrrrrrgrb +2-3 g: bgjg +10-12 t: ttjttttnttdtt +2-4 g: dgng +11-12 r: rrmrrrlrtrrj +1-5 v: qvvvvvvvvvvvvvv +3-18 p: ftnfnpmjprmrzmhbnxj +10-12 w: dqnsjjxsqrwq +2-4 z: lzgkzsb +8-9 n: dwclxdtnndtpcgqmx +10-11 w: zjwdsphbbwlhp +2-9 d: zzprkgzczbs +14-19 c: gpjfrvsrcnbxbclctxc +1-9 f: fmhfvfffrfws +12-14 d: ddrddbddddddddhmdg +14-15 s: sslsssmsnssdxsj +2-10 v: ljppzjfvfnfp +1-2 z: qbwbzknrzzs +18-19 l: llllllllfllllllllll +2-3 p: ppgp +13-15 k: knkkkkkckkkkhkxk +3-6 v: vbjvmv +4-8 h: hmhcxfhg +12-14 v: vvngcvvvvkvgvs +2-3 j: xdjjrk +5-13 s: sssssrqsssssq +1-7 s: sssssssss +6-14 b: ptlvmbbrbxnvqbrmp +16-18 w: wwwswwnwwmwwwwwwwf +1-4 k: kkknkkkkk +1-4 g: ggrbk +9-11 r: rrrhrrrrrrrrr +11-13 x: xxxxxxxxxxxxnx +3-8 x: nsxvlvdfbkpxsgscn +12-15 h: hghhchvjhhhhlvhhhhh +11-12 n: nnnnnnnnnnjqn +10-13 r: jrzfzrzrqblmks +7-8 w: wwwwwwwh +3-4 k: kkbft +1-9 c: cccccjccccccn +2-7 r: rrvnrxrvrzsrbrs +3-10 l: llgdldmlplqlhdlll +4-8 m: mmzmbmgm +5-6 q: sfxqnftnbnqwq +5-6 v: vvvvgvvqv +9-14 h: dhmwrhzqqvhhhfhfhhht +4-7 p: jwwppvpklc +9-13 z: zzzzzzzzzpzzzx +13-14 l: fllklltlllllcphllll +12-15 m: htmbmqgljcmvmclgnm +9-10 b: bbbbbbbnbb +6-12 x: nxjbxxhxxxxgdxx +6-7 t: tttbwlk +8-11 q: fqqjtlswqgkqdqc +16-20 t: xplwqxbwtsfptbvtvcxt +3-4 k: kklkkkkkkxkkkk +3-9 m: kmmsvmpmxmgmb +6-12 j: jjtjjjjjjjjpjjwj +3-4 m: kkmbmzkx +7-8 f: gmfxlgfjtfst +1-3 w: wwwn +1-7 k: knkktkkn +13-16 v: vvvvvvvvvvvvvvvmvv +10-11 h: rhvdhnfhvtchlfhh +10-12 x: xgxwbqxkxxcwsfd +10-14 m: mmmrdxpcmcmmmkmmmmm +2-5 x: vvxpx +8-9 h: hhhhhhhmfh +16-19 j: jmwjjjjjjjjjjjjjjjz +2-3 r: sqrnr +14-19 p: ppppppppppppppppppk +2-5 w: wwwww +15-16 q: dppxtnhmxrhmncrqq +4-5 v: drhpp +1-4 p: pkhn +3-6 q: gwmrfwh +6-10 v: dlvvfhvvkb +1-8 q: qqqqqqqqqdqqqqqqqq +17-18 n: nnnnnnnnnxnnznnpnng +3-7 m: gmxzffwmbdm +12-14 m: dmzmcmmhjmqltm +3-16 w: drcbwtvqgbppbwzvm +8-10 d: ddbddddzdddddkpd +8-9 m: mmmmmmmmmmmm +1-3 l: glll +7-11 x: fxrxxdxxxqxnxx +6-7 d: ddddxgdd +7-8 g: hgggbggg +2-3 w: pwwtww +7-10 h: lhwbhjhzhx +3-14 b: bbbrvrbsfbnxrgqbbq +4-7 l: jzqkxlnpxlglfsll +6-7 b: hbpbbbb +2-4 w: pskwwxzpjvmwcnfr +13-15 m: mmmmmmmmxmpmxmmm +4-9 k: krxkzqzkkhrpqth +4-7 f: xfffkvfqzwhcfwkhq +4-10 q: qqqqqcqbqqq +14-15 s: lgszsdststlpgjbs +7-12 s: sspbsssskfns +7-8 d: cdddqpnd +13-15 p: ppppppppppppxppp +10-11 r: rrrfxrrrrrrrrr +10-12 z: zzzzzzzzzvzvzz +3-4 l: lllwll +7-9 p: ppppkpppqpppppsvx +3-4 k: kkkrk +4-5 v: zxmmvmhvr +14-15 r: rrrrrrrrrrrrrfjr +6-10 b: vwbgbbbbdbqsbb +5-7 j: jsjjjkv +3-4 m: tzmhr +11-13 r: rrrrrrrrrrqrhrr +1-4 s: psqmcssnk +5-6 z: zdkzzzz +3-5 p: cnpmbtknqdppmcjpzvcn +13-14 g: ggggkggggmtggd +14-17 c: nxmzcczccnvdcxpcmb +6-10 w: wlwwbdwwwwwwww +9-17 l: llllllllllllllllll +2-12 j: jpjdjjjzmjxj +1-3 n: szjntnnl +7-8 l: dpxlmhlbts +5-16 s: sssssssssssssssrs +1-6 m: pmqvlc +7-15 f: ffffffffqfkfffdxff +10-11 w: wwwwwwwwwwswwww +7-12 p: tkppvfpwksrp +4-7 f: fdjdgdvsksbfbnjkspc +4-11 b: bjmvfrmlmlbndl +1-3 r: rrrnxhgbwr +5-10 h: xhhmhhhlhbh +10-11 h: hghhhhhhdlhhh +5-6 g: gptglg +9-11 t: wtgtxtttqtmttt +5-11 f: jxqffhfsfmz +4-7 f: frjffbf +1-15 m: mmmmmmmmxmmmmmmmm +1-12 d: drwlbpdbzdgdjpnzmj +9-14 n: nfnmktjnncnnnln +1-2 h: pshhjhhhhf +2-4 t: tgttttttfb +2-4 w: dwpwhnxbf +7-11 b: vbcbzhbwhpb +4-5 k: hknck +5-12 m: mmmmtdmmmmmmmm +5-7 w: qwflwxq +2-5 g: jdnxdlclplvb +5-7 t: ttrtttttkr +8-18 l: lwscjwlmdlzlllnsllpw +2-8 c: cccxtccchbrkr +1-3 q: qqtqqqqq +3-13 d: dddddddbddddddd +1-7 r: jkpzrpfnrgpkc +9-10 t: ttttttttttt +11-12 w: wjwplwwwwwmw +9-12 r: rpsvrhrbnrwqch +6-11 p: zpzbpkpmtnptsnpbswc +4-6 t: jhzstt +3-4 t: ddpkcgpzhd +4-6 s: cvzshjfrsslxnslqddwt +1-3 c: cgsczhl +1-4 d: lddqdqd +6-7 v: vvvvvvb +5-8 w: wwwwwwwwww +5-11 p: ddswpbpppsqpp +5-6 x: dfzxxxhhqjvj +3-7 m: mmmmmmmmmm +4-8 g: ggggggggg +5-6 j: jjcjjn +5-6 n: nndtns +4-5 t: ltxkdpst +2-8 b: ldwkbzbxgpbbbb +11-12 w: wwqwdqwwwqhvwww +15-17 k: klkcxqbwrktxcmqlnb +5-6 k: tkqhkkkkrkjfd +12-13 x: nxxxrjxxxdjlxxbt +9-12 m: mmzmmmrmmfmgmmmmb +2-5 v: tkbhvlvp +12-14 v: dvbvvvvhrcvvvxxvvvvv +14-16 x: xxxxxxxxxxxxxrxxxx +6-7 v: xvswnvvm +6-9 c: vcpcksxwbdlc +5-11 s: sssssjssssrsdjsssq +6-16 j: jjjjjmjjjjjjjjjnj +8-12 g: ggggwggggggnggg +4-5 c: ccczk +14-15 l: lllllllllllllkm +10-11 r: rrrrrrrrrrrrr +3-5 n: dwnvnlj +2-4 x: xdxxxx +5-6 j: jjjjjjj +3-9 k: kkkkkhlrkktt +3-7 t: stqtgfdprtqjsgznrtjh +11-16 n: hsnnnnnnnnfnvnpqnnn +13-16 v: kdvbvxvvtvhvvvvq +1-3 v: vwpvkvdpxgc +14-17 v: vvvvvvvvvvvvvnvvhv +14-15 m: mmmmmmmmmmmmmtm +6-10 m: mmmmmhmmmm +5-8 t: tttjrttdsttfttwstf +6-7 c: ccqcvcc +2-5 v: vvvvvv +8-16 c: cccccccccwcpcccmcccc +4-5 t: ztvttktttttt +10-11 n: rnmnnnnnnnnnnnnpt +5-6 g: lgsggggg +15-18 s: lcsmgkjqzdpcgvsrng +2-6 p: wwpppp +9-10 v: vvvvsvvvmvv +6-11 c: qrmdjxzsmxcmcccgrr +17-18 b: bbbbbbbbbbbbbbbbbbbb +6-10 t: thtxgtpxwt +2-8 f: xkgbrpqfsrhhbnfpdg +3-8 c: gqkkvgkcqfwdc +5-6 c: jjcsjf +8-16 q: fbwdmlwljqqcrqsq +3-10 m: mjmmsmmmmmmcmm +5-15 x: xmrvcsjwxxdpsrxzcrzj +3-7 x: rxngzxxg +17-19 z: mmvfgzpmbvzsrmkgmmmb +3-4 z: zdzz +4-5 v: vzcvb +3-11 z: tzllpgzzmwxznh +8-11 x: ptgvnbxzsxwdb +2-3 r: rrrrr +6-10 b: bbmbbbbbbb +6-11 q: wvmqrzrllhxfzmpkp +13-17 v: vvrgvvsvvcqkvvvvbvvw +16-18 p: ppppppppnppgppppclp +13-15 g: gglggggggngggggggggg +15-17 b: bbbbbbbbbbbbbbbbb +3-6 t: tpwzktlzkdt +2-3 m: lmvtnfjzmm +1-7 j: jzjjfjx +15-17 r: rtfdnhrrhrrdcswrl +1-3 d: gdfdmddddwdddlsd +3-4 r: qrtr +10-11 m: mmmmmmmmmkc +2-5 n: gntnnnncc +9-14 b: bbbbbbbbbbbbbb +10-13 f: fxfffznffffzwffflz +5-12 j: vjjrjjjjngjjjjm +6-8 k: kkkrkklkkkkkkk +5-7 r: rrhzsxrjjw +17-18 g: gggggggggggggggggf +2-3 h: ghhvrh +1-3 j: hjjxjjjj +3-5 q: gbqnqkprckxqglkhw +17-18 n: ngnnnnnqnnnnnnnnnnnn +2-3 m: xlhmmq +6-7 p: kvvphgj +9-12 k: kpkzkkzkkkkkbwk +9-10 k: kkrkkkkkmt +5-10 t: tttttttttttttttt +10-11 l: ztdvlllzfltlwlglkhcj +7-12 t: bttttqtqttttttttg +3-4 z: xzvb +5-10 h: lhcdhkhhhhb +1-6 z: jqzzqzzzzzzzzzzzzz +6-7 x: qxxxxtxz +13-14 g: gggngggggggrgsgg +1-2 t: tttt +11-15 w: hpwhwmwlkbwtwmwlj +8-10 r: rnrhrrmprnrrr +5-12 z: rshzhwgzhfjb +15-16 s: sssqssssssssmsss +9-12 z: zdzzzzzzkzmz +10-12 c: mfgpskncfcfctjmt +5-10 p: sppwnpdpptppwdppppp +3-14 q: mnzfgfmvmsdlqg +1-13 s: sssssssfssssbsss +6-8 d: ddddddddd +2-5 j: vsbbjh +14-16 m: nmklmsrpjxwpdbmj +3-8 v: rfvvvjqv +18-20 p: pppppppppqhpflppbppp +7-11 x: xxxxxxwxxxx +3-4 l: llmvlll +8-9 w: grmvwtwbz +2-11 m: mmmmmmqmmmsmmmmmmmmm +6-13 h: hhhhhrshshhhlhhhh +3-12 t: tnttblttttcvrtttx +5-18 f: cfffcffvgffffrmlfx +1-3 n: rnjnnnnnnnnnnnnnnn +1-2 w: smmdq +1-5 v: vvvvvv +5-15 s: tssssscssffhsswssss +3-11 b: bbbbbbbbsbkbbbr +13-15 j: xjjpjjcjjjjjjcj +5-10 g: bvjvgpzgdgkmmzwnwrxz +2-7 q: qqqqqrq +10-12 d: fddddbdddxdqpd +5-7 c: hsccjccrlm +11-15 r: nrrrlrrvrdlrprw +13-14 r: drrtbrrrrrrrrcrrr +8-10 c: ccccxcchfjcccccxpc +8-9 s: sssssssss +1-10 r: rvlgkrrrrm +8-13 w: jwbwcwmwwvwwwwww +7-12 k: fxkkcnkkbvkxbkphx +7-8 l: llllmlvll +11-15 q: qdjpqwgfqjdqnnq +8-9 m: mmmmmmmvmmm +6-7 k: kkkksmkb +4-6 h: hhhlhhhhfhhhhhh +2-5 k: xzjlwb +3-12 j: sjwqrjzjgqrj +5-18 p: ppppppppppppppppphpp +1-3 g: gggrggggg +14-15 n: nnnnnnnnnnxnnhnnn +19-20 d: jkpzsxwsddzccjdkcptj +2-4 v: wpdz +1-8 w: dwjtngwwwrwhp +13-15 t: tttttctttttxvfrt +6-11 h: ksvshqhhdth +8-9 k: khfkdkppl +11-12 d: whlmcdmfgfddd +11-12 p: htvxpkfngthz +6-9 v: vqvmvvbbv +5-8 m: lghmmmrmmw +14-16 q: dtmqqrqqqqqgpgqtqr +2-11 f: bfjskxzlgvfml +10-19 p: kpppppppphppppppppp +5-7 j: rfbpzmjtjj +9-10 p: kpppppppqpp +3-15 k: hgkgrqblnjmsbvrghzdk +6-7 r: rrtwrwlfrswwr +3-4 k: fkkdv +12-20 g: ggggggggkggggggggkgh +3-5 x: xxxxpxxxxxxxxxb +8-10 k: kkkkkkkzkh +4-10 q: qqqmqqqqqcqq +4-12 t: ttgtqblzqzpttcxdtfn +18-20 s: sssbbsscsjvslsvsssss +3-6 x: xxxxxxx +4-5 t: tttttt +5-7 q: xqqqqqqqxkqqqqqqqtqq +2-4 s: zsvq +6-7 b: mmbcklx +1-13 z: zzfzkshpslwcn +1-14 d: ddpddtdddddmmf +8-13 j: jjjjjjjjjjjjjjjjjz +5-6 c: cjjlxb +10-12 v: vvvvvvtvvmvv +2-3 b: wfbbg +1-10 l: llllllllllllllllll +5-10 d: hdbhdgxcjd +10-13 t: ttttttttttttnt +5-6 h: vhmhhh +16-17 x: xxxxxxxxxxxxxxxsqx +6-14 g: gzggggzhggggzgg +15-20 f: ffbfxffffvfffffffhfd +2-3 d: xdvw +5-7 g: zgggjgq +2-12 g: ggggggggmgggggg +6-8 h: hhhhhhphhhlhjhhxfh +3-10 j: knjklstqxwcsjf +2-3 h: hvnwjxhpsc +7-8 w: wwwlwwgw +14-16 s: chgtpswssxsqtwzrsqt +5-6 d: zdbdkl +3-4 p: lwkpbrbp +8-14 c: cbhtccjmrccrcp +2-3 s: tctflmgdtsjjfxpl +3-4 g: gggjkctwdsgl +2-4 h: ghbh +4-13 h: fczphhvflghhhd +3-10 x: jkzhgljwsblcrmbwfx +12-13 p: npfgppprzpppc +7-12 l: sqbplmqnlmwph +1-8 p: hpppvpprppp +12-18 n: nhbznznxncnkcchscl +9-10 g: grjxmgzpgk +6-7 g: rcmkggggggg +1-7 b: bbbbbbbb +2-3 t: ttftzqt +8-10 l: twbjlnblhck +1-2 c: cvbc +4-9 d: mfpdddsnd +5-8 f: flpvbdrfl +7-12 s: rhspsxlbpsmsclzrdsfc +2-4 h: vhhh +1-10 k: bhkkkkkkxkkkzk +5-15 q: qqqqqqqqqqqqdqdqql +12-15 c: ljvcklwjvngfgfgrjsv +8-10 w: pwwtpbwwvwwrwww +5-13 b: tbjmbfmknjhbb +1-2 v: cssd +2-5 s: ssssss +3-4 h: bhhxxhfh +3-5 p: pfppp +13-20 l: lcxxllcfjmllclljllfl +2-4 p: sqpzk +2-4 l: xlllb +1-7 t: ttttttrttttrttttttxt +10-12 m: bwmmghzmqmmpmj +5-8 l: jtlljpql +5-6 d: lddddd +6-8 c: nljczccdwvnmrlqvlsc +8-9 d: dzdddcddt +10-11 z: zzzzzzzzmqj +3-4 s: msssss +3-5 z: xzvdzbzt +2-18 v: bvcbpwkbdmclbnbmsv +9-12 b: jrcccsndstzbxprkvtq +3-11 n: vlntglzvvcnngn +3-8 v: rpgckwptlvdqsrqqt +6-11 q: qdqdkqvkvhdrdqm +9-12 b: khbmbgbbvbqb +9-10 g: gtggggggczgg +3-5 c: zqctcs +15-18 z: kbzsdhbbzxfzzqdjzc +7-8 g: ggggggzx +9-10 s: sswssrssqms +14-17 g: ggggcggggggggpggcgg +10-15 g: qgzmbkjlggrhgkg +9-11 j: jjjjjjjjqqjjjjjj +5-6 c: cgcdcchcccbcc +2-4 g: gggg +5-13 h: plkhhrmxhxhmh +11-16 v: vkkqrvbvbcvvnvvvvv +6-7 c: rlfmqphqrhqkhch +3-5 z: hzspz +8-9 d: kddmdddpdvddln +5-11 k: wkqkcfkpvnkvh +4-7 r: fnzzwxrxr +15-16 r: rrrrrrrrrrrrrrwr +2-19 f: fvffffffffffffffffwf +9-11 v: hbvbvvgcvvvj +2-4 m: mrxpv +13-14 z: zztzgzzpzzzzzg +4-10 t: qtvtcrfmlkrgtwsvwtw +3-7 g: ggggggfgggggggg +5-8 c: ccccfcccnmccc +6-12 z: bzfcjzdznzwzrzbzzqrn +14-15 c: ccccccccccccczkccccc +3-4 j: jjjjjjf +1-2 x: kxxxx +3-4 s: sksj +17-19 c: hvchccvccdxgccnxdcc +3-6 r: trrrrrrr +10-11 c: ckcjzcrzcbc +1-7 p: pmqplfpvgq +3-4 h: hhmx +5-6 n: nnwndln +5-10 v: bkkvfgvqwdt +7-14 h: hkjlwvhdnhxhwcnhs +4-12 f: xxwfjfcwslrfzrxfkxj +2-3 c: ccccc +4-13 k: kkkdkkkkkkkkkkk +8-10 b: mqlljkpbbbxbrbfx +1-4 p: pppp +14-17 n: nnnnnnnnnnnnnnnngnn +5-6 d: dddddddvw +9-10 r: rjtrrrmqrrrzrrrrjrrm +7-11 x: bxxxxxrwxpmn +13-14 w: gwmwwwlwwjwjwx +2-4 d: dddddvddd +7-9 p: pjmdppgpspcslh +13-16 l: tllllzllpvllvlzd +9-11 q: qzmwqqzqtqqq +4-5 d: dvdngdd +9-11 j: xxxvjrmgjpk +3-4 c: rvvcn +15-16 r: rxvmlslkpmqdqtdd +2-5 b: sbflb +4-5 w: wntpw +8-16 n: nnnnnnnhnqnnnnnnn +5-6 n: nnnnnnn +2-5 q: bsjfhq +6-18 r: prrrqkmrrrvbrrrrdfrv +3-5 g: xnxlp +4-11 s: jsstsssjssfssss +14-16 d: dddddddddsdddddd +18-19 n: vgngvbhdjfrbnznhhjzn +11-13 f: ffffffffffgfgf +5-11 n: dbgvngchnkngt +3-4 f: gsff +2-4 r: rfdrlznkzg +10-18 z: zzgzwzzzzzzdzzmzhzzn +4-5 s: qscmbssss +11-15 x: xbxxxxgxxxbxxzw +2-10 h: dkrnxknmthcv +12-13 b: bbbbvbsbbbbgcbnb +4-5 m: mmlmmsmmh +3-6 j: njrjjkcr +10-12 x: xxxxwdnxxxxx +14-16 g: hggggggggngggggg +8-9 x: gjqfxxxtxxxb +16-17 f: ffffffffjffkffffmffb +2-8 z: tsktkzfxntrv +2-6 v: hvvswd +1-2 w: xddl +2-6 k: svwvvkqmzwjkx +9-12 p: ppppppppbppspppb +12-19 m: mdjmlhsmxmwcmmmmmmm +3-5 x: rxjxb +17-18 r: rrrrrrrrrrrrrrrrwk +2-9 b: cbfbqcfwbmwd +1-11 h: hhhhhbhhhhmvhhhh +2-3 j: jkjjgjhxj +5-6 f: fffffffffhf +17-18 j: jprvtszvgsbtxlrhljsz +1-4 m: mmhmmmp +2-6 p: xvfkpkc +1-2 f: xqtfcf +1-5 r: brrrrrr +7-10 w: wwhwwwdwwj +1-4 w: vwwdh +1-3 f: hnpvgfwth +10-12 k: kkkkkkkkkdkq +5-13 r: rrpqrrvrqrswzr +9-17 x: xjxxvxvbtxxxtpxpx +12-13 j: njrjkcjgbjjnj +2-4 l: lvll +12-17 p: dpppprpbppnvpppprp +4-18 b: zftbmbxgzfzdvdnvhb +12-16 r: lcqgqjthprlxrzrrx +2-7 m: msclccmxhsmf +3-4 b: bfkb +2-6 k: skfgrk +4-5 q: qqqhhx +6-8 c: cccmvcch +16-17 l: bxnlvbvwzvfvbcmxl +7-12 c: cccccccccccc +6-7 b: bbbbjsjbbbs +2-7 q: phxnfxqrqv +4-5 h: hhhhhh +9-15 n: nqnnglsjnnghxrn +3-4 h: hkkh +5-11 r: rlsjvrrrrrl +5-7 b: bbbbzbwbbbb +2-3 f: qczff +8-14 c: fccqccccccclccccck +1-8 r: rrbfmjsr +4-5 p: dpphz +11-13 d: wdmwkcqddrdvdz +8-15 h: hhhhhhhhhhhhhhhhh +6-10 l: dhgdclhlkltnc +14-15 t: tttntttnthtttzw +4-6 p: pppppdp +13-14 l: dvlnvlgtbpnhll +11-12 s: brsqgfsnpmwskhdnm +6-7 j: httjvjj +2-14 w: wwwfwjzwrzfwnwjwwm +8-9 w: wwrwwwwgt +2-5 r: dvrwb +7-9 b: wwvqbsbjb +1-12 l: lljxlbslwlgn +11-12 m: mmmmmmhmmmwbmkmmt +10-11 l: lblllmllldl +3-9 w: wwpwwwwbfwwwm +9-10 q: pcrqfqlskz +7-9 l: llvlllblklllx +6-7 g: qgggjmwg +5-10 v: vvvvvxbrvvp +9-10 d: hqddgkkdrpdd +17-18 q: qqqqqqqlqqqqqqqqdt +6-10 h: hspnhhzldxphdh +8-13 l: vvvscdnlblllml +6-12 p: ppkrprpxwpppwx +4-5 k: tkslb +7-8 d: hdjdhnzdd +9-10 x: wkxtblgxxjxxlqnfxxlx +8-9 g: rggggggdk +10-20 d: kcgdtbbswwdtvgdgxfwd +3-4 g: gggggg +16-17 l: llnzlqllllzllllmllll +4-10 r: nsrrrbzrfzcrrzrrdqk +4-6 k: kkkkkpkk +4-8 n: nnnmntnnrnnn +12-14 l: lllllllllwlqllll +3-6 r: rrrrrrr +1-6 s: ssskcshsxtd +7-15 d: ndrbdnntdmkddxd +9-10 j: pjjjjgjsjhjj +7-10 k: pkbkkkkkgkq +4-8 m: mmxmmmdmmmmm +9-13 c: ngjcrcccvbcvqdjmph +3-5 q: qqqqqq +7-10 s: fcssnsssssslxspr +3-5 k: kkkkvv +5-10 f: tlbcvgwfzlf +5-9 x: xxxxqxxxx +2-10 q: qrprhbrhjhb +3-4 g: gggmgg +8-10 j: jjjjjjjgjpjjj +2-4 v: dvzvvtfm +7-12 q: zvzqprjhqdcqfzr +12-13 f: ffffffffffffqf +2-3 f: fffsdwq +10-11 z: ztzzjzjzzzlzzz +5-7 k: kkkkqtkkkkk +6-9 z: dfbzhgsrzsp +2-4 b: wpqb +9-15 c: cwchcdhxlqzccxbb +8-11 q: qqxptqqvqrgqg +5-7 t: ttttztcvtjtkts +2-6 n: nnbmdnjxclwkffrnxff +3-7 p: pppppph +9-12 d: xhmfndzcddfddvgddf +1-5 h: hthmhvlthhhhh +6-7 m: mmmmmmm +6-7 j: jjjvjjjrj +1-5 q: mqnqwqqqqqjq +10-11 b: bmbbbdbpbbbbzbb +1-4 k: gvccvdltkwcdd +12-16 s: sssssssssssjssshs +4-10 k: wzvlkmdhcklhdp +10-13 z: zzzzzzzzzfzzj +6-12 g: bmzmvvggpgtm +3-11 m: nvcpfgvnsqmwxmmz +1-5 n: dnwnnnnnnnbndnnn +4-5 h: lhhhh +4-5 g: gggdg +2-5 h: xthqhfj +2-4 f: lfkf +4-6 k: rqbhrtzktmvmrxck +4-5 q: jqdsc +10-11 h: hhhhhhhhhvjh +2-17 r: rrrrrrrprwrrrfjrr +16-17 b: bbbbbbbbbbbbbbbbhbbb +3-5 z: pkvzzfrljrjctw +13-14 w: wwwwwwwjwwwwww +8-10 d: dddddddldzpq +1-4 b: sbbgb +2-10 d: vnhpzmvpcddhs +8-15 t: zftpwtrtqjqtfntp +11-12 j: djjjjjjjcjjcj +4-7 r: jrrtrrrvmzzrrvsl +2-4 r: rpkp +3-4 b: qbxc +10-11 w: wwwwwwfzkdmnwwv +6-14 z: mztxzzztmzwzzqvm +12-14 w: wwwwwwmsgwdwsqwjwww +6-10 f: zfhqjfhnjfdvwsfftf +2-11 q: mwbbqdncdfq +8-11 v: zvtvvwvfvvq +6-8 n: xnwhzmdskwhn +8-15 q: qqqqkqqqqqqqqqst +1-4 n: nnnnn +5-18 c: sqczchcwcccclccccccc +3-4 j: klgr +11-12 m: mmmmmmmmmmmm +2-3 d: qdxfmqwbmdnvj +1-5 m: cmmmm +6-7 l: llllllll +1-9 m: zmmmmmmmlmmmmmmm +9-11 m: dwspwrmjsxpc +5-6 p: qpppfz +10-19 t: fvtphwzsptqzntbkxqt +7-9 m: mpcmpmmmvptmm +3-9 h: hhhpqqwhhtm +11-16 p: pppppppppppppppvp +1-9 k: ktkklkkkkkkk +10-17 q: rthtqvgspqkvfkgkqfhj +11-14 g: ggxgggggxggzggcnggg +3-4 t: tttt +9-10 t: sqtbdttthtttm +1-4 t: ttkbgdzztbxd +3-8 f: gxfcrrsfntftvffnfqff +9-11 q: qqqqqqqjlqqq +12-13 v: vvvvvvvvvvvvk +7-11 b: nbxbbbsmbtkb +7-8 k: kkkkkknn +4-6 j: jjjjlv +13-16 m: mmcmmmmmmmmmmmmvs +7-9 k: kdkkkkrkgkk +1-4 c: crcdlrdbzc +1-16 k: kkkkkkkkkkgmkkktkkk +2-12 l: llllrlllllllll +4-9 g: gggbkgpgz +6-7 q: qqqqqqjq +6-7 v: hvvvvpm +10-14 t: ttfxmqtgtttttbtct +5-7 h: hwhhfrnch +4-13 w: zdlrqvxwwzsfrfq +4-5 h: hhhshhhh +2-4 n: vhjfnz +5-6 s: sssssss +11-13 n: nnwrnnnlnngnn +3-4 s: wbss +3-4 s: wnss +16-17 p: ppfprptkpmzkbjppp +2-4 v: pvxv +8-9 w: swwwwwwhwwnwwwxj +4-6 s: pzhkvss +4-5 x: wnxpx +4-5 f: fsfwp +4-5 z: zzdjz +3-6 v: vnvvvvvvvvvvv +5-6 f: wfxfff +4-7 z: zzzqfzz +3-5 q: qqjqsqqqf +3-7 w: kwwkmww +6-7 h: hhhhhhgh +2-5 v: vvbzvvkn +8-15 r: svrqpqrgrrhmzbms +9-17 n: jnnnncnnnnnxnnnnnp +5-6 n: dgnhsc +5-7 l: lplltbv +4-6 n: mmrnsbcqr +7-8 w: wwjwwwwww +1-16 c: bccccccfcccccccdcc +6-9 l: sjnlmxwllg +3-9 q: cqvhkwhtstwrl +5-9 h: khvxhhhgfchhknhhhz +8-9 c: ccccccccdc +2-19 n: jjxbmbwmnqbblfbgzsz +3-4 p: pppp +1-3 b: jzxbbb +3-6 h: hhhgjhhw +2-8 f: vfxftzkmlzk +11-19 h: mmdptdzhwdbjhvkccrhk +4-14 s: sssvsdpsssssspns +11-12 f: fffffffflfbk +2-13 h: nhbgtbjvbpmrnhf +1-3 t: ttttttttttttttttttm +3-4 t: tsttr +2-9 n: fnkknptqn +1-8 j: qjpjjjjjjtpxjqjw +2-12 c: clccccccccckccc +18-19 f: dpftffzcfhqffddfpff +1-4 j: trjj +9-11 z: zwzmzzczsdd +5-8 g: vrpbggfn +2-5 k: qksvzkj +2-4 f: wfdfjlfwmjrdmxx +4-12 l: bnplnlgqcwql +13-14 n: nqlfdnnnnnnnvbnwnlh +4-8 l: dgxhsrql +10-11 k: qvwcrkxtkjxlq +5-6 g: ckgggg +6-14 h: xbhhvzvxbhhhhhbhkzhh +6-9 w: whwdwrxgc +7-9 b: bbrbnjbfb +7-8 w: brwwkfvwwwww +2-11 g: gmggghngggg +12-17 l: bgslljzntbmvtkbgllgg +12-18 g: gggggggggggkggggggg +1-3 l: gllllllll +14-16 k: jkkqkkgkrkvxkkkkskgb +2-3 v: vljvgnvm +7-8 r: jrjvrprr +7-8 f: xxffrnff +2-18 j: jhjjjjjjjjjtjjfjjpjr +8-9 q: rfllhmnqtrkv +2-3 n: lnndv +2-15 s: hzzsrprnnjlwdfs +1-5 q: vqqqq +9-18 b: gxbpbbppbrbbnlkmbb +2-13 b: bbbbbbbbbbbbpb +6-7 t: mtrftthtttftttztttst +1-7 z: nfzzzzvzzczzzzzzzz +4-12 m: mmmcmmmmmmmmmm +9-11 p: jpswppqbmpfpzpg +10-11 c: ccccccpcccc +2-6 t: ztscdrkxxctdft +3-13 q: mqfqqqqjqqfqdqqq +16-20 z: zzjcxdmzgzzzppbtztzz +5-15 w: wwwpwhwqcwwwwwgw +2-4 p: pczp +5-7 d: ddddmdfd +2-3 f: fftc +1-3 v: vvmv +11-15 k: tjkcvkkkkgkzkkxqv +4-6 b: vdkvbn +7-8 c: wbcjhswc +9-10 l: lllbqrllll +4-5 s: sjnlw +12-14 j: mjtmzfjjtsgvgtq +1-3 l: llrllml +12-13 d: dngddlqdtgdcd +3-5 l: cblhld +3-4 r: trrq +1-3 c: kcccc +9-10 g: bgbgjggpvgpgpggg +3-6 d: szwlfm +13-14 f: ffffffffffffzfff +6-7 d: ddddddddddnnddddr +7-16 h: xmbpwmhsznmldhnxflc +4-6 q: qqqnqqqg +2-7 t: ttwbpmnthmjr +8-16 x: xbcxxbwxxrpxnfxd +2-3 d: dngdd +9-10 n: qkxfdljnnl +4-5 f: ftfffff +12-15 n: nnnnnncnnnnnnnsnn +1-2 d: dkdd +2-5 v: vvvvgv +1-14 v: jvvvvvvvvvvvvmvvv +5-6 r: rrrrrr +2-3 b: bnvbbbtbjgxfchnkhcjb +1-14 g: wjggxgggggggxgmrvcg +1-6 x: bhvxhxxxx +1-2 r: rprr +6-7 c: cccccccqc +4-8 b: bbgplbbcdtbbdbgbbhbz +1-4 w: wjgw +1-3 h: zhzzt +2-11 j: sjjrtjkjhjj +6-7 m: mlmrrmm diff --git a/resources/input03.txt b/resources/input03.txt new file mode 100644 index 0000000000000000000000000000000000000000..e1bd0f655fb0729445f15cd68aeb4a8e8cd5887c --- /dev/null +++ b/resources/input03.txt @@ -0,0 +1,323 @@ +.#.......#...........#......... +..##.......#.#.#.....##...#.... +.......#..#.....#...#.......... +...#..........###...#........## +#.#..#.#.##.#........#.#.....#. +#..#....#..#....#.............. +#..#........#.................. +..#.#...#.#...#....#.#.#..#.... +..............#..#............. +.##....#...................#... +........#..........#......#...# +.##..#..#...##..........#...#.. +.#...#....#.........#...#.....# +.#........##............#.#.... +...........#..............##... +.#..#......#..#..............#. +..#.#.#...........#........#... +..###..........#....#.#......#. +.......#...##..........#....... +........#...#.................. +....#....#..#.......#........#. +.......##.#......#.....#...##.. +..#.#........................#. +.#.....#.##..............#.#... +..#.#...#.#..#....#....#....... +.#....##.....#....#........#... +..#...........#.##....#...#.... +..#.##...#....#.#.....##...#... +.......#...####...#...#.......# +.#...#......................... +.......................#....... +.....#.#.........#..........#.# +#.........#............###..#.. +.....#.#.............###....... +...#..#........#.#.......#..... +...................#....#...... +...#..#...#............#..##... +...#.....#....#.......##......# +.....#....#...##..#..#...#...#. +..........#...........#.#.#.... +..#.......#...#.....#......#... +.........#.......##......#..#.# +..#.....#..#.###...#.#......#.. +#....#...#..#...#.....#........ +..#......#..#.......#.#.....#.. +#......#...#......#.....##.#... +........##.......#.......#..... +.#.#...............#........... +..............#...#.#....#..... +....#......#.#..#......#....... +...##....#....#...#............ +.#...............#...........#. +.#.#...#.#.....#.....#...#.#... +...##...........#.....#..#...#. +.#.#...##.#.#......#......#.... +.##.....#.......##....#.#.#.... +.......#...........#....#....#. +....#...........#......#.####.. +......#....#...#...##.......#.. +......................#.#####.. +..#...#.#...#..#..#......#..... +....#........##.......##....#.. +#.#......##.........##.#..#...# +.#.#....#...#..#...#...##....#. +.....##...#....#....#.#........ +......#..#....#.#...#.......... +.........#...................#. +............#.###....#.#....... +...#.#.....#......#....#.#..#.. +..............#..#.#.#.#....... +#..##...................##..... +..#.......#..#.........##..#... +.........##...#......#........# +..#.........#........##.###.#.. +...........#.#....#.....###.... +..#....##.#..#.##....#.....##.. +..#.....#.##..................# +#....#......................... +..............#..#...#.#....... +......#..#.#.##....#..........# +..#.........#.####.....#....... +......#..#.#..........#...#.... +......#.................#..#.#. +.....#..........#.............. +....#.....#............#....##. +.....#.....#........#.......... +............#.....#...#........ +........#....#.#............... +#.....#.........#......#..#.#.. +...#..#......#......#.......#.. +.....#......#.#....#..#...#...# +......................#..##.... +.............#.........###....# +#..............#.#..........##. +...#.#.................##...... +...........#.#.....#........... +.........#.................#.#. +........#........#...#..##...#. +........#......##.......###.... +..............#.#.#............ +.#.....###...##.#......#.....#. +.............#......#.#.#...#.# +..#.........#.......#.....#.... +......#........#...##......#... +.##..........##......#.#.....#. +..#.##....#....#............... +......#...#..#.....#.....#...#. +.......##..##..#............##. +..............#...##........#.. +#....#................#..#..... +........#.......#.#.#...#...... +......#.......#..............#. +#.#..#...#........#....#..####. +..#........#...........#.....#. +.##...........................# +.............#...........#..... +.#.....#.#...#.........#....... +..........#...#....#....#...... +.#..#........##....#........... +.......###......##...#......... +..........#.#.#..#.#....#...... +........##..#.........#....#... +........#.#......#.#...#.#..#.. +....#....................#.##.. +##....#..#...........#.....#.#. +...#..............##...##..#.#. +......#.##.#.......#..#...#.... +....#..#..##.....#.....#.#....# +.......#....##.##.............. +#..##....#.....#.#............. +..................#......#..#.. +..#......#...#..#.......#...#.. +...........#....#.#.....#...... +#..#...##.........###..#......# +.......#......................# +#.......#....................#. +..#..#..........#..#..#....#... +.##..#..#.....#.#..##.......... +#..###.......#..##..#...#..#.#. +.....##......###.....#.#.##...# +..............#...#....#.#..... +#...........#.................. +..............#....#..##..#..#. +.........#.............#....... +.#.#....#....#...............## +.##.##.#.....###.....#......... +....#..............##......#... +....#........##................ +....#.....#....#....##....##... +.#........#......#......#...... +....#..........#............... +##..........#......#.....#..... +........#.#..#.#..#.....##..... +..##......#.#.......#.#..#..... +.#.......#......#...........#.. +..#.#..#.#..................#.. +...#...#...#...##......#....... +.#...##....#...#...#...#....... +.......#.#.......#............. +.#.##.#.....#...........#.##.#. +.#.##.#........#...##.......... +.#.....#.....#....#..#......... +...##.............##........... +.#........##.....#.......#...#. +...........#..#..##........##.. +.....#..#...................... +..#.......#.................... +.....#......#....#....#.......# +........#..#.#.....#......#.... +..........#..#.....#......#.... +..........#####.....#........#. +........#..#...#.#....#......#. +.........#...#....#.#.......... +......#....##..........#...#... +#..............###.#.#......... +.#.#............##......#.#..#. +......#........................ +...#..#......#.......#....#...# +.......#....##.....#.#......##. +...........#..........#..#..... +...........#..#.....###......#. +.......#....#..##......#....... +.........#.#.#.......#..#...#.. +.......#.......##.....##...#... +..............#....#.....#..... +...#....#.....#.#..........##.. +###.........#.............#.... +...##......#.#........#....#..# +#....###.......#...#.#......##. +....#...##.......#......#.....# +.....#......#.................. +#........##....#....#.#........ +........#.......###...#........ +........#..#.......###......... +..............#......#..#...... +#......#.....#....#.#.......... +.#......##.#.#.....#...#.#....# +.##...........#..#.##.....#.... +.....#.....................#... +.#..#...#...##.#...#........... +.......#.......##..#.#..#...... +.......##.....#.....#.......... +.................#............. +#........#..#.......##......... +#...#..###.#..#....#.#.###..... +..#.......#.......#.......#.... +..............#............##.. +.#...#..#...##.........#....#.. +#...........#...#.............. +.......#.....#......#..#.....#. +..........#......#............. +##.........###..##.#....#..#.#. +..............###.............. +#..##.............##.....#..... +....##...................#..#.. +....#.....#..............#..#.# +........#........##...#.....##. +#...........#.##..........##... +#......##.....#...............# +..##..#....#.................#. +#.......##..................... +...............#.##..##......#. +..#.##..#.#....#.......##...... +......##....#............##.... +.#..#..##.....#.##....#........ +#.........#..........#...#....# +...#.......#.............#.#.#. +..##............#...##........# +.......#.#.#........#.......... +.....#.............#.....#..... +.........#.........#.........#. +#.....#....#.......#........... +.........#....#.............#.# +.##..#.......#...#......#...... +....#....#....#........#....#.. +............#.......#..#......# +.#............#.##........##... +..#...##...#....#...#.#...#..#. +#...#..........#..##.........#. +..#.........................#.# +...........#.........#..#.##... +.#..................#..#....... +......#......#...........#..#.. +...##.....#.....#..#.......#... +.........#.#.......#......#.... +...........#................#.. +.....#...#..#............##.... +.#.......#..#....#..........#.. +#.....#..#.....#..##.......##.. +...#.......#...#....#...#.#..## +...#...##......#....#....#..... +.......###.#..#.......#......#. +........#.#...#..#..#...#....#. +....#.........##.#.....#....... +....#.........#..##........#... +..#...........#......#....#.##. +.....................#......... +...................##......#..# +......#.#.....##..##..........# +..#.##........#.#.#..........#. +.#.......#...##.#....#....#.... +#.#......#..#..#.......#....... +.............#........#.......# +....#...#.....#........#...#... +..#..............##..#......... +..#.................#..#...##.. +....#..#...#................... +......#.........##.#..#..#...## +........#..#....#.......#.#.##. +.#...#...........#..........#.. +##.....#...#............##...#. +.##.....#...#.................. +.#.......####.#..##.##.#......# +.............#...#..#..#....... +...#.##.........#.#....#....... +...........##...##....#....##.. +........#......#...#........... +...........#..#...#....#.##.... +..##....#..........#....#...#.. +#....#.#.#.......#.#........... +......#............##.......... +#.#.###..#....#.......#...#.... +.#......##..#..#.#.........#..# +..#.........#........#....#.... +......##.#.......##....#..#..## +.............#...#............# +......#......#...#.#.#.##.#.... +#.#...#.##.....#..............# +..........#.............##.##.. +#......#....#...#.#.#.#..#....# +........#........#...#.#......# +.....#...........#............. +...........#....#..........#... +....####...#..##....#.#........ +.#......#...#..#...........#... +#......###..#.##.###........... +..#...........#.........#....#. +................#.#....#..#.##. +...................#......#.... +....#.#.....#.......#...###.##. +.#........#.#....#...#..#...#.. +....#..###.................#..# +.....#.#..#........#......#..#. +....#.....#...............#...# +............##.#.........#..#.. +.......#..#..##.#.#...##....... +..#..........##..#..#........#. +..............#..#...#......... +......#.#....#........##....... +.#.....##....#..#...#.......##. +..............#.##............. +#..#..#...##....##.#.....##.#.. +..#...###..#.........##........ +........##......#.....#..###... +.....#......##.###............. +....#.....#.#..#.#..#.......... +....#..#.......#...........#... +.#.............#..#......##.... +..#.#......#.#................. +.......#.#.#............#..#... +......###....##............#..# +.........#....#......#......... +..........#...............#..#. diff --git a/resources/input04.txt b/resources/input04.txt new file mode 100644 index 0000000000000000000000000000000000000000..cecabe26162287d74e0cfc706e175c7bc43bce1c --- /dev/null +++ b/resources/input04.txt @@ -0,0 +1,1056 @@ +iyr:2013 hcl:#ceb3a1 +hgt:151cm eyr:2030 +byr:1943 ecl:grn + +eyr:1988 +iyr:2015 ecl:gry +hgt:153in pid:173cm +hcl:0c6261 byr:1966 + +hcl:#733820 +hgt:166cm eyr:2025 pid:79215921 byr:1952 iyr:2014 ecl:blu + +eyr:2022 +hgt:165cm hcl:#733820 +iyr:2013 pid:073015801 ecl:oth +cid:101 + +iyr:2013 +ecl:brn hcl:#623a2f +cid:246 byr:1948 pid:122719649 +hgt:160cm +eyr:2026 + +eyr:2028 +pid:229371724 hgt:154cm hcl:#ceb3a1 byr:2000 ecl:hzl iyr:2017 + +eyr:2029 ecl:amb +byr:1980 +hgt:177cm pid:914628384 hcl:#623a2f iyr:2013 + +iyr:2019 +eyr:2026 hcl:#efcc98 pid:475316185 byr:1945 +hgt:76in +ecl:amb + +pid:371759305 iyr:2018 hcl:#623a2f eyr:2026 byr:1984 hgt:174cm + +iyr:2010 pid:184800910 ecl:amb cid:108 eyr:2028 +hcl:#cfa07d + +iyr:2012 hcl:#b6652a hgt:160cm pid:223041037 +eyr:2029 byr:1920 ecl:oth cid:212 + +pid:775975903 +hgt:163cm byr:1966 +eyr:2023 ecl:amb iyr:2010 + +pid:465404256 hcl:#7a54af ecl:blu hgt:180cm iyr:2018 +eyr:2024 byr:1933 + +hcl:#18171d +iyr:2018 hgt:185cm +byr:1929 eyr:2024 +ecl:oth +pid:#b0990a + +byr:2017 +hcl:#cfa07d pid:184cm hgt:187in ecl:#e97c0d iyr:2022 eyr:2013 + +hgt:176cm iyr:2019 eyr:2024 ecl:brn byr:1943 +pid:532967054 hcl:007b47 + +pid:171225044 hcl:#888785 byr:1992 ecl:amb iyr:2012 eyr:2030 +hgt:180cm + +byr:1969 +pid:689216275 iyr:1934 eyr:2031 ecl:#e5bc14 hcl:#fffffd + +pid:166619054 cid:125 hcl:#cfa07d hgt:164cm byr:1946 +ecl:brn iyr:2014 eyr:2023 + +ecl:#c1ae72 pid:458692331 hcl:#b6652a eyr:1966 byr:1951 iyr:2023 + +cid:253 pid:9096156879 hcl:9911e5 +byr:2007 +iyr:2019 eyr:2033 hgt:181cm +ecl:blu + +ecl:oth pid:180428876 iyr:2019 byr:2001 eyr:2024 hgt:172cm hcl:#7d3b0c +cid:81 + +hgt:167cm +byr:2007 eyr:2030 +iyr:1961 ecl:lzr hcl:#cfa07d +pid:#e254d8 + +pid:377737133 hgt:160cm byr:1958 hcl:#866857 ecl:oth iyr:2015 eyr:2022 cid:350 + +hgt:188cm +eyr:2025 ecl:brn hcl:#efcc98 +iyr:2015 pid:321192707 +byr:1996 + +byr:1956 iyr:2018 hcl:#b6652a +eyr:2024 +ecl:blu cid:343 +hgt:152cm pid:192659885 + +hgt:163cm +iyr:2012 byr:1952 eyr:2022 hcl:#efcc98 ecl:grn pid:337866006 + +cid:134 +byr:1941 eyr:2027 ecl:oth +iyr:2012 pid:303690324 hcl:#7d3b0c + +ecl:grn byr:1945 eyr:2028 hcl:#cfa07d iyr:2012 cid:108 pid:388941584 hgt:171cm + +pid:962215061 ecl:brn iyr:2019 eyr:2025 cid:163 hcl:#cfa07d byr:1958 hgt:187in + +ecl:amb +byr:1989 pid:118257086 iyr:2019 cid:320 hgt:158cm eyr:2027 hcl:#733820 + +pid:813286578 +iyr:2019 eyr:2031 hcl:#341e13 hgt:161cm byr:1950 +ecl:oth + +byr:1976 ecl:blu +eyr:2024 +hcl:#fffffd +hgt:153cm pid:552154655 iyr:2019 + +eyr:2025 pid:109518209 iyr:2013 byr:1923 +hgt:162cm +ecl:oth + +hgt:178cm byr:2007 hcl:#7f431f pid:7365694093 eyr:2037 +ecl:blu iyr:2018 + +eyr:2021 +cid:105 iyr:2013 byr:1995 ecl:grn hgt:181cm +pid:733189859 hcl:#b6652a + +hcl:#6b5442 eyr:2028 iyr:2013 byr:1958 hgt:169cm +ecl:gry pid:651263830 +cid:51 + +iyr:2018 cid:59 eyr:2027 ecl:blu +hgt:174cm pid:269821917 byr:1971 + +byr:1936 eyr:2025 ecl:hzl hcl:#b6652a +iyr:2019 +pid:670202082 +hgt:186cm + +byr:1958 +ecl:gry hcl:#7d3b0c pid:000522430 eyr:2020 +hgt:168cm + +iyr:2015 eyr:2022 +pid:630105579 hcl:#7d3b0c byr:1935 +ecl:gry hgt:153cm + +ecl:gry hcl:#fffffd hgt:172cm byr:1944 +eyr:2021 +iyr:2013 cid:58 pid:554670072 + +byr:1983 +eyr:2022 +iyr:2012 hgt:176cm +ecl:brn pid:201965494 hcl:#dd8296 + +cid:124 byr:1935 eyr:2020 ecl:blu +hcl:#a97842 pid:666776663 iyr:2010 +hgt:68in + +byr:1943 pid:139343878 hgt:181cm hcl:#733820 cid:206 iyr:2018 ecl:brn +eyr:2029 + +pid:114742677 +ecl:amb hgt:160cm +byr:1975 eyr:2030 +hcl:#866857 + +iyr:2012 ecl:amb hgt:170cm pid:221200950 eyr:2028 +hcl:#733820 cid:274 + +eyr:2020 +pid:167438086 iyr:2020 hcl:#fffffd hgt:178cm byr:1996 +ecl:blu + +iyr:2015 hcl:#b6652a +pid:905439259 +byr:1962 cid:209 ecl:brn hgt:150cm eyr:2024 + +iyr:2016 ecl:amb +pid:855119486 +cid:77 +hgt:192cm byr:1947 eyr:2021 hcl:#888785 + +hcl:#341e13 +iyr:2011 hgt:157cm eyr:2030 +pid:103806645 cid:90 ecl:grn byr:1976 + +hcl:#fffffd byr:1957 +cid:284 eyr:2026 +pid:031705251 iyr:2019 +hgt:166cm + +eyr:2019 byr:2019 hgt:167in +iyr:2014 ecl:gmt + +hcl:#18171d cid:93 +eyr:2027 +iyr:2013 +pid:821161144 ecl:brn byr:2002 hgt:170cm + +hgt:181cm +byr:1972 iyr:2018 hcl:#fffffd +pid:745667222 eyr:2023 +ecl:hzl + +hcl:#602927 byr:1996 ecl:blu pid:503245375 +hgt:166cm eyr:2028 iyr:2018 + +hgt:59in byr:1966 +ecl:oth iyr:2016 eyr:2029 hcl:#866857 + +cid:179 iyr:2012 hgt:182cm eyr:2024 pid:451186596 hcl:#6b5442 ecl:blu + +eyr:2023 iyr:2016 +hcl:#18171d hgt:173cm cid:182 pid:979409688 ecl:brn byr:1972 + +iyr:2014 eyr:2027 byr:1977 ecl:brn hgt:171cm hcl:#b6652a pid:124307431 + +byr:1929 pid:048990845 ecl:hzl hgt:193cm cid:159 hcl:#b6652a eyr:2028 + +ecl:gry hgt:181cm iyr:1934 byr:1970 +eyr:2015 pid:5818817055 cid:98 + +hgt:179cm +iyr:2014 +eyr:2030 +pid:397317466 byr:1967 +hcl:#a97842 +ecl:grn + +pid:138485312 ecl:hzl +hgt:151cm +iyr:2010 hcl:#866857 byr:1936 cid:345 eyr:2021 + +ecl:oth +pid:687490850 eyr:2028 hcl:#9bd268 hgt:157cm iyr:2012 byr:1994 + +byr:1933 pid:575158994 hgt:192cm iyr:2017 eyr:2022 hcl:#602927 +ecl:gry + +iyr:2012 +hcl:#7d3b0c +ecl:oth +eyr:2023 pid:615952261 byr:1959 +hgt:152cm + +byr:2010 +iyr:2011 hcl:z ecl:grn hgt:152cm pid:6079261766 + +hcl:#18171d iyr:2012 +byr:1986 ecl:blu +pid:836367740 hgt:191cm eyr:2024 cid:200 + +ecl:blu pid:909247319 iyr:2019 eyr:2026 byr:1958 +hgt:170cm +hcl:#b6652a cid:256 + +eyr:2027 hcl:#efcc98 iyr:2010 hgt:191cm ecl:brn byr:1933 + +byr:1921 +pid:414637667 hcl:#8d840f cid:291 iyr:2013 ecl:amb eyr:2029 hgt:172cm + +byr:1961 iyr:2020 eyr:2025 pid:675731511 hgt:71in +ecl:blu hcl:#623a2f + +byr:1959 iyr:2002 +hcl:#ceb3a1 eyr:2027 ecl:#633ff4 +pid:815877728 + +ecl:gry pid:812104470 byr:1938 +hgt:70cm +eyr:2028 cid:285 iyr:2016 hcl:#b6652a + +cid:99 hgt:152cm byr:1971 +eyr:2020 hcl:#733820 +ecl:gry +iyr:2012 pid:020521112 + +pid:803066169 hgt:157cm iyr:2014 hcl:#b6652a eyr:2025 ecl:brn byr:1981 + +hcl:fafcd9 eyr:2021 +hgt:76in +pid:359286290 cid:207 iyr:2018 ecl:grt + +pid:179471060 byr:1966 ecl:amb hcl:#18171d eyr:2029 iyr:2015 hgt:190cm + +hcl:#efcc98 ecl:gry +byr:1942 +eyr:2026 iyr:2011 +hgt:158cm pid:721512314 + +ecl:oth eyr:2024 hcl:#8bc738 +hgt:167cm iyr:2014 pid:729168992 + +hcl:#b6652a +pid:179977662 +iyr:2018 +ecl:gry +byr:1973 +hgt:155cm +cid:126 eyr:2030 + +byr:2012 eyr:1955 hcl:z iyr:1981 pid:#66167e hgt:175in ecl:grt + +hgt:154cm cid:301 iyr:2010 hcl:#7d3b0c pid:573851812 ecl:grn eyr:2030 + +pid:601712917 ecl:hzl eyr:2001 cid:70 hgt:162cm hcl:#6b5442 iyr:2018 +byr:1959 + +hgt:183cm byr:1996 eyr:2023 hcl:#866857 iyr:2018 pid:259910953 ecl:brn + +pid:751991211 hcl:z iyr:2015 eyr:2024 byr:1939 ecl:oth hgt:161cm + +eyr:2026 byr:1947 +ecl:grn iyr:2018 cid:248 hcl:#ef5900 hgt:66in + +iyr:2028 eyr:1994 pid:9211015765 +ecl:amb +hcl:cd429d +byr:2013 +hgt:176cm + +hgt:193cm ecl:amb eyr:2023 +iyr:2020 byr:1933 +cid:50 +hcl:#efcc98 pid:482745318 + +byr:2014 pid:619629999 +ecl:oth hgt:159cm eyr:2027 iyr:2018 hcl:#b6652a + +hcl:#b6652a eyr:2028 byr:1921 +ecl:blu +pid:866536313 hgt:185cm iyr:2020 + +eyr:2027 pid:904225608 iyr:2010 cid:57 hgt:161cm hcl:#83ee3c ecl:gry byr:2001 + +byr:1968 pid:120450875 iyr:2018 hgt:165cm ecl:grn eyr:2022 hcl:#7d3b0c + +hcl:#a97842 byr:1964 +eyr:2027 ecl:oth hgt:186cm iyr:2010 +cid:226 pid:632344779 + +pid:135449714 +cid:348 iyr:2019 +hcl:#602927 +ecl:oth eyr:2029 +hgt:184cm byr:1992 + +eyr:2027 +byr:1929 hgt:181cm hcl:#fffffd iyr:2019 pid:369478657 +ecl:blu + +hgt:177cm eyr:2021 iyr:2016 ecl:gry byr:1938 hcl:#602927 pid:034365656 + +iyr:2020 hcl:#866857 +eyr:2028 +pid:183612456 ecl:#9e25d3 hgt:159cm byr:1934 + +pid:664990234 hcl:#efcc98 cid:185 iyr:2018 +ecl:brn +hgt:192cm +byr:1942 +eyr:2029 + +eyr:2027 +hgt:163cm pid:760854338 cid:228 +byr:1958 iyr:2014 +hcl:#efcc98 ecl:gry + +iyr:2014 +hcl:#18171d hgt:157cm ecl:amb eyr:2025 byr:1957 pid:347369874 + +pid:013801431 byr:1999 +hgt:181cm eyr:2029 +ecl:amb iyr:2010 +hcl:#b6652a + +hgt:153 eyr:2030 byr:2022 +hcl:z cid:84 ecl:hzl iyr:2020 + +cid:315 iyr:2011 +hgt:151cm hcl:#ffb5f9 +pid:427813663 byr:1999 ecl:brn eyr:2025 + +eyr:2024 +cid:205 byr:2000 iyr:2020 hgt:173cm ecl:gry + +eyr:2026 byr:1996 iyr:2018 ecl:grn hgt:158cm pid:026432567 hcl:#602927 + +iyr:2014 +ecl:hzl +byr:1964 eyr:2020 hgt:184cm pid:031793197 hcl:#fffffd + +ecl:oth hgt:165cm byr:1982 pid:172329608 hcl:#733820 +iyr:2019 +eyr:2020 cid:347 + +byr:2014 iyr:2011 hgt:179cm +hcl:z eyr:2020 ecl:grt +cid:134 + +ecl:gry +iyr:2011 hcl:#a97842 +byr:1942 pid:789953865 cid:172 hgt:180cm eyr:2027 + +hgt:179cm pid:975853536 +iyr:2018 byr:1989 hcl:#602927 +eyr:2021 ecl:amb + +byr:2011 +iyr:2015 +ecl:oth +hcl:85d233 cid:207 eyr:2020 hgt:138 pid:6169876 + +ecl:hzl eyr:2029 hcl:#efcc98 +hgt:188cm iyr:2018 cid:143 byr:1973 + +hcl:#ceb3a1 pid:762609805 +byr:1962 +hgt:150cm +iyr:2016 eyr:2024 ecl:oth + +iyr:2012 +pid:181821528 byr:1922 ecl:gry hcl:#a97842 hgt:169cm eyr:2028 + +eyr:2029 pid:776605704 byr:1964 hgt:175cm hcl:#623a2f ecl:grn +iyr:2011 + +byr:1989 iyr:2019 +ecl:gry pid:397990288 +hcl:#602927 hgt:67in eyr:2030 +cid:259 + +hcl:#866857 iyr:2018 ecl:blu byr:1938 cid:227 eyr:2028 hgt:171cm +pid:779192850 + +byr:1974 hcl:#cfa07d eyr:2026 hgt:59in cid:51 iyr:2019 +ecl:oth pid:091591737 + +byr:1952 cid:301 pid:804465935 hgt:152cm eyr:2025 hcl:#888785 +iyr:2013 ecl:hzl + +hcl:6a32f0 eyr:2027 +iyr:2014 +ecl:amb byr:1933 cid:185 +hgt:75cm + +byr:1945 hcl:#b6652a +hgt:163cm ecl:brn eyr:2025 iyr:2015 pid:829875350 + +byr:1940 hgt:174cm iyr:2014 pid:9989523268 ecl:gry eyr:2026 +hcl:#efcc98 + +iyr:2011 ecl:lzr +byr:1998 hgt:182cm +eyr:2029 hcl:z + +pid:091142801 +hcl:#c0946f byr:1983 ecl:blu iyr:2017 hgt:183cm eyr:2027 + +ecl:oth iyr:2011 hgt:158cm byr:1950 pid:902512428 hcl:#623a2f eyr:2028 + +eyr:2020 +iyr:2020 +ecl:oth byr:1938 hcl:#d5eb7e +pid:829945241 hgt:171cm + +byr:1971 +pid:998912876 eyr:2022 +iyr:2012 hcl:#cfa07d cid:338 ecl:brn +hgt:183cm + +ecl:amb hcl:#7d3b0c pid:331124964 iyr:2013 byr:1945 hgt:189cm eyr:2028 + +pid:012740434 iyr:2019 +byr:1998 +hgt:172cm eyr:2028 +cid:102 hcl:#866857 +ecl:amb + +hcl:#866857 +eyr:2027 hgt:181cm byr:1954 ecl:blu +iyr:2010 +pid:211721858 + +byr:1984 pid:876360762 hgt:72cm +eyr:2040 hcl:a60c15 iyr:1948 ecl:lzr + +hgt:167cm byr:1930 ecl:oth pid:740024142 eyr:2024 hcl:#341e13 +iyr:2018 + +byr:1968 hcl:#623a2f ecl:brn +cid:210 hgt:155cm +iyr:2017 pid:216618180 eyr:2024 + +byr:1966 pid:131332466 hgt:174cm ecl:amb +hcl:#733820 +iyr:2013 eyr:2023 + +eyr:1985 +pid:#fde6c1 +hcl:z byr:2017 iyr:2027 hgt:163cm + +iyr:2016 ecl:hzl hgt:171cm +hcl:#888785 pid:390140479 byr:1976 + +cid:327 eyr:2023 byr:1954 +hgt:192cm iyr:2012 +pid:413357852 ecl:blu + +iyr:2014 ecl:hzl hgt:154cm byr:1962 pid:904474869 hcl:#6b5442 eyr:2023 + +ecl:hzl iyr:2012 eyr:2027 pid:663644982 hgt:175cm cid:56 +byr:1980 hcl:#ceb3a1 + +eyr:2020 iyr:2012 hgt:190cm byr:1993 hcl:#a97842 +ecl:amb pid:418635216 + +pid:845398140 +byr:1933 iyr:2016 ecl:oth eyr:2024 hcl:#cfa07d hgt:169cm + +eyr:2040 hgt:161cm +byr:2018 ecl:blu +iyr:2022 hcl:#866857 cid:252 +pid:286344655 + +hcl:#6b5442 +eyr:2027 +hgt:191cm iyr:2012 +pid:642929864 ecl:amb byr:1934 + +iyr:2015 hcl:#cfa07d ecl:grn +eyr:2029 pid:163012663 hgt:150cm + +eyr:2030 byr:1938 hgt:188cm iyr:2018 +pid:652645847 hcl:#b6652a ecl:grn + +pid:157056211 iyr:2010 hcl:#cfa07d ecl:gry +eyr:2024 byr:1961 hgt:177cm + +eyr:2020 hcl:#60945e ecl:brn iyr:2011 pid:688090869 hgt:171cm +byr:1941 + +eyr:2023 hgt:188cm byr:1964 hcl:#7d3b0c ecl:gry iyr:2017 + +byr:1996 +hcl:#733820 pid:142902538 +eyr:2023 iyr:2012 ecl:oth +hgt:166cm + +hgt:62in cid:125 eyr:2022 hcl:#b6652a iyr:2011 +ecl:amb pid:220826562 + +ecl:grn hgt:72in byr:1991 eyr:2020 pid:281076310 hcl:#6b5442 + +iyr:2030 hgt:78 eyr:1966 byr:2008 cid:260 ecl:grt hcl:5d2e21 + +iyr:2017 pid:388674097 byr:1950 ecl:grn cid:338 +hgt:159cm +hcl:#6b5442 +eyr:2025 + +hgt:92 eyr:2031 cid:52 pid:169cm hcl:2695be +iyr:1987 +byr:2011 + +pid:396358436 hcl:#ceb3a1 +byr:1976 eyr:2025 +iyr:2012 ecl:brn +hgt:174cm + +pid:389292752 +eyr:2027 cid:335 hgt:65in byr:1974 hcl:#6b5442 ecl:oth iyr:2019 + +ecl:amb iyr:2010 hcl:#602927 hgt:164cm byr:1966 pid:749383114 eyr:2026 + +pid:656206688 +hgt:175cm +hcl:#6b5442 byr:1961 eyr:2028 +ecl:amb iyr:2010 + +hgt:179cm eyr:2028 byr:1958 +pid:095076581 ecl:gry +hcl:#733820 +iyr:2017 + +byr:1960 +cid:309 ecl:utc iyr:2012 +hgt:172cm pid:395100903 +eyr:2030 hcl:#cfa07d + +eyr:2021 cid:98 pid:387957353 byr:1941 +hgt:192cm +hcl:#efcc98 ecl:brn + +pid:143359781 +hcl:#a97842 +byr:1996 +hgt:184cm eyr:2020 cid:319 ecl:blu iyr:2020 + +eyr:2025 iyr:2013 hgt:154cm hcl:#b6652a ecl:oth byr:1979 pid:976151938 + +iyr:2017 +hgt:118 ecl:#f0f31e +eyr:2028 +hcl:z + +iyr:2016 hgt:153cm hcl:#6d55cd eyr:2026 ecl:hzl byr:1943 pid:257485710 cid:165 + +hcl:#ceb3a1 ecl:blu byr:1937 hgt:152cm iyr:2020 eyr:2026 pid:032844291 + +hcl:#fffffd byr:1937 pid:122104515 ecl:hzl +iyr:2018 +eyr:2027 hgt:163cm + +byr:1987 pid:052848077 hcl:#341e13 +iyr:2015 hgt:172cm eyr:2022 + +pid:897642631 iyr:2015 byr:1941 hcl:#733820 ecl:brn eyr:2020 hgt:179cm + +hcl:#7d3b0c ecl:grn eyr:2029 pid:232785519 cid:258 iyr:2013 byr:1999 + +hgt:152cm ecl:gry hcl:#18171d eyr:2020 byr:1971 iyr:2020 pid:211826434 + +hcl:#866857 +eyr:2022 pid:979633771 ecl:hzl iyr:2014 byr:1963 + +cid:124 +ecl:utc hgt:77 hcl:#866857 +byr:1979 iyr:2013 +pid:92518200 eyr:1968 + +hcl:#888785 eyr:2022 pid:233642738 byr:1959 hgt:191cm +ecl:blu iyr:2010 + +pid:#adbcd3 ecl:zzz eyr:2025 cid:129 byr:2028 hcl:z hgt:166cm iyr:2011 + +cid:131 hgt:169cm +iyr:2020 +byr:1994 +eyr:2021 +ecl:amb hcl:#c0946f +pid:243158461 + +hcl:#18171d byr:1980 ecl:oth hgt:153cm eyr:2028 iyr:2020 pid:629055498 + +hcl:#b6652a +hgt:152 ecl:blu pid:175cm iyr:2015 byr:1941 eyr:1961 + +eyr:2025 hcl:#7d6ede byr:1988 +hgt:150cm +ecl:hzl cid:267 +pid:794369607 +iyr:2012 + +pid:538963835 +ecl:oth byr:1958 +hgt:173cm +eyr:2027 cid:63 +iyr:2018 hcl:#602927 + +hcl:#866857 +hgt:163cm byr:1925 iyr:2011 +ecl:oth +eyr:2023 cid:163 + +ecl:grn pid:411555227 byr:1974 eyr:2020 hgt:153cm iyr:2015 hcl:#a97842 + +cid:111 pid:473064654 byr:1948 +ecl:brn iyr:2013 +hcl:#16fa7a +eyr:2024 hgt:184cm + +iyr:2016 hgt:170cm byr:1993 pid:487807940 hcl:#efcc98 eyr:2024 ecl:gry + +hcl:#a97842 pid:891517350 iyr:2012 +byr:1937 +ecl:amb +eyr:2030 +hgt:171cm + +cid:330 ecl:gry +hgt:163cm eyr:2021 +hcl:#733820 byr:1991 pid:109734880 + +ecl:brn iyr:1934 eyr:2021 +hgt:62 +hcl:z pid:720470429 + +ecl:blu +pid:669045673 iyr:2015 +hgt:164cm +hcl:#866857 + +hgt:158cm hcl:#623a2f byr:1950 +eyr:2020 ecl:gry pid:708073090 +iyr:2018 + +hgt:158cm iyr:2017 eyr:2027 +ecl:brn pid:840573419 hcl:#18171d byr:1968 + +ecl:oth cid:81 hcl:#ceb3a1 eyr:2021 +iyr:2020 byr:1959 +hgt:62in +pid:634019849 + +hgt:180cm pid:651174767 iyr:2013 byr:1948 eyr:2022 hcl:#efcc98 ecl:grn + +eyr:2021 ecl:grn +cid:95 hcl:#733820 iyr:2016 hgt:174cm byr:1931 + +hcl:90e96c eyr:1948 ecl:zzz +byr:1984 pid:8325286529 +hgt:59in +cid:180 + +cid:293 hgt:193cm ecl:oth hcl:#602927 +eyr:2021 byr:1959 iyr:2016 + +pid:425216058 +hcl:#7d3b0c hgt:67in ecl:blu eyr:2022 +iyr:2016 byr:1936 cid:182 + +ecl:#c93c79 byr:2021 iyr:2021 +hgt:69cm pid:#fa092e eyr:2040 + +hcl:#733820 iyr:1964 +hgt:190cm +pid:121828083 byr:2028 ecl:blu eyr:2030 + +byr:1986 +eyr:2023 ecl:hzl hcl:#c0946f hgt:152cm pid:750393977 cid:308 iyr:2015 + +hgt:152cm byr:2004 hcl:z eyr:2038 ecl:#e92725 iyr:2023 pid:55783937 + +ecl:grn eyr:2023 hcl:#7d3b0c byr:1940 iyr:2017 pid:312213917 hgt:166cm + +ecl:grn pid:293691668 +byr:1949 hgt:60in +eyr:2021 +hcl:#efcc98 iyr:2017 + +iyr:2018 hgt:156cm ecl:oth +hcl:#ceb3a1 +pid:622764582 eyr:2020 cid:124 + +eyr:2021 +pid:146888876 byr:1962 iyr:2010 cid:63 ecl:amb hgt:188cm hcl:#a97842 + +pid:861542171 hcl:#866857 +ecl:brn +iyr:2010 byr:1975 +eyr:2020 + +hgt:157cm hcl:#18171d eyr:2022 byr:1936 iyr:2014 pid:478341738 ecl:amb + +ecl:brn +eyr:2026 +pid:553753060 hgt:186cm +iyr:2019 +hcl:#623a2f +byr:1991 + +iyr:2018 ecl:blu hcl:#cfa07d hgt:162cm byr:1924 pid:721804049 eyr:2023 + +byr:1970 hgt:181cm eyr:2027 ecl:hzl pid:171cm iyr:2012 hcl:#5f4282 + +cid:52 +ecl:blu iyr:2011 +pid:027908077 hcl:#b6652a hgt:158cm +byr:1986 + +pid:160cm hcl:91324c eyr:2034 iyr:2015 +byr:2021 +hgt:175in ecl:brn + +cid:164 iyr:2014 byr:1948 hgt:163cm pid:701930596 ecl:gry +eyr:2020 hcl:#733820 + +byr:1951 hcl:#fffffd pid:456803587 hgt:157cm ecl:blu iyr:2010 eyr:2020 + +ecl:#663e48 +pid:9157891148 hgt:66cm iyr:1989 +byr:1932 + +byr:1993 +hgt:167cm +ecl:amb iyr:2010 hcl:#3da943 pid:340209998 eyr:2021 + +byr:1968 +eyr:2021 pid:915482982 hcl:#84a907 iyr:2020 hgt:176cm ecl:grn + +hgt:190 ecl:oth hcl:#6b5442 +byr:2023 +pid:5211866539 +iyr:2028 cid:276 + +hcl:#ceb3a1 hgt:177cm byr:1966 +pid:#9f5b93 +iyr:2002 eyr:1958 +ecl:oth + +hcl:#888785 eyr:2025 iyr:2017 +hgt:187cm pid:856993600 ecl:oth + +hgt:186 +hcl:z +eyr:2025 +byr:2013 pid:6869591443 ecl:oth + +iyr:2015 pid:317156655 cid:144 +hgt:151cm hcl:#623a2f ecl:brn +byr:1966 eyr:2021 + +ecl:hzl pid:161653223 eyr:2026 iyr:2017 byr:1980 +hcl:#18171d + +iyr:2009 +pid:618443261 +byr:1989 hcl:#23ef8c eyr:2026 hgt:167cm ecl:grn + +ecl:oth +hcl:#fffffd iyr:2018 eyr:2022 pid:953490888 + +eyr:2026 hcl:#c0946f hgt:165cm iyr:2016 byr:1921 +ecl:blu pid:490419824 + +hgt:150cm hcl:#b6652a ecl:brn byr:1937 iyr:2013 pid:824096447 eyr:2027 + +ecl:amb +hcl:#733820 byr:1997 iyr:2015 cid:269 hgt:96 eyr:2022 pid:475968048 + +byr:1985 hgt:186cm eyr:2022 ecl:gry +pid:050842095 iyr:2014 + +ecl:hzl byr:1942 cid:294 hgt:191cm pid:768437232 +eyr:2024 hcl:#623a2f + +byr:1974 eyr:2022 hcl:#afb1a8 ecl:oth +hgt:159cm +cid:252 +pid:619988658 iyr:2018 + +ecl:oth eyr:2029 hgt:175cm +pid:548668762 byr:1982 iyr:2020 hcl:#c0946f + +ecl:gry hcl:#18171d +hgt:166 pid:#3f6172 iyr:1978 +eyr:2031 byr:2021 + +byr:1933 hcl:#c0946f ecl:gry eyr:2028 +pid:594772420 +hgt:167cm +iyr:2020 + +cid:332 hcl:#623a2f iyr:2018 pid:706055429 byr:1971 eyr:2022 ecl:gry + +hgt:187cm hcl:#888785 +pid:224041851 eyr:2029 +ecl:blu iyr:2012 byr:1991 + +ecl:#9c38d0 +hgt:161in +hcl:099d45 byr:2015 eyr:1994 +pid:2730108307 +iyr:2024 cid:229 + +hgt:184cm ecl:grn byr:1938 pid:996091727 +cid:115 +hcl:#866857 iyr:2020 eyr:2020 + +pid:883396674 iyr:2019 +eyr:2023 ecl:blu +byr:1979 hcl:#733820 cid:125 +hgt:181cm + +hgt:190cm cid:325 hcl:#866857 eyr:2027 ecl:gry +iyr:2013 pid:317703100 byr:1968 + +hcl:#866857 +ecl:gry pid:652638412 +eyr:2025 iyr:2015 hgt:158cm byr:1953 + +byr:1956 +hcl:#cfa07d eyr:2025 +pid:728272575 hgt:162cm +cid:291 ecl:blu iyr:2020 + +hgt:189cm byr:1980 hcl:#97fd64 ecl:grn iyr:2013 +pid:181599378 eyr:2029 + +iyr:2018 +hcl:#007101 ecl:brn byr:1947 cid:265 hgt:159cm pid:288707610 eyr:2024 + +hgt:62cm pid:2407695078 +eyr:2039 byr:2014 +iyr:1930 hcl:z +ecl:grt + +hgt:65cm +ecl:hzl +byr:1994 eyr:2004 hcl:z cid:130 pid:863191800 + +pid:125685599 byr:1995 +ecl:blu cid:57 hgt:172cm +iyr:2020 +hcl:#b6652a +eyr:2024 + +ecl:gry byr:1961 +iyr:2010 eyr:2022 pid:591409441 +cid:314 +hcl:#341e13 + +iyr:2020 +ecl:hzl hcl:#efcc98 byr:1983 hgt:174cm +eyr:2028 + +eyr:2029 byr:1924 iyr:2013 pid:662719101 +ecl:amb cid:77 + +ecl:oth +iyr:2013 byr:1947 pid:532607157 hcl:#7d3b0c eyr:2030 hgt:191cm + +pid:528940525 hcl:#18171d +iyr:2014 eyr:2029 cid:181 +byr:1967 +ecl:gry hgt:64in + +hgt:71in iyr:2019 hcl:#cfa07d eyr:2029 +pid:785691813 +byr:1996 ecl:hzl cid:335 + +byr:2015 +pid:174cm hgt:79 hcl:z iyr:1970 cid:66 eyr:1993 ecl:lzr + +hgt:188cm +eyr:2025 cid:107 ecl:grn +pid:286480470 hcl:#623a2f byr:1967 +iyr:2015 + +eyr:2027 hcl:#7d3b0c cid:287 +pid:319840760 iyr:2017 hgt:179cm ecl:gry + +byr:1976 ecl:brn iyr:2020 eyr:2023 hgt:154cm pid:964286153 + +iyr:2015 eyr:2027 hgt:173cm byr:1983 pid:500176757 ecl:amb hcl:#7d3b0c + +cid:282 pid:697942299 hgt:185cm +eyr:2026 hcl:#7d3b0c iyr:2017 byr:2002 ecl:amb + +iyr:2014 hcl:#18171d pid:044482202 +ecl:oth +hgt:163cm eyr:2021 byr:1982 + +ecl:gry hcl:#7d3b0c +iyr:2019 eyr:2020 hgt:187cm +pid:617117265 + +eyr:2035 +ecl:#5525a9 cid:123 byr:2009 pid:15381071 iyr:2028 +hcl:#b6652a + +eyr:2021 hgt:165cm cid:207 +iyr:2010 ecl:gry +byr:1929 hcl:#733820 pid:442632632 + +pid:69132960 cid:84 hgt:107 eyr:2023 +ecl:gmt iyr:2016 +hcl:z +byr:2020 + +eyr:2027 pid:281765118 hcl:#ceb3a1 hgt:193cm +byr:1955 ecl:gry cid:321 iyr:2010 + +ecl:brn hgt:71in +cid:189 byr:1962 eyr:2023 iyr:2018 pid:780797141 hcl:#866857 + +pid:984503466 ecl:amb hgt:192cm byr:1942 hcl:#dcc50d iyr:2020 eyr:2030 cid:250 + +hcl:#7d3b0c eyr:2028 +hgt:178cm +ecl:gry +iyr:2011 +byr:1923 +pid:960277768 + +byr:2000 ecl:amb cid:199 eyr:2027 iyr:2020 pid:785585164 hcl:#888785 +hgt:164cm + +iyr:2015 pid:619005249 +ecl:brn byr:1955 eyr:2028 +hgt:183cm +hcl:#a97842 + +ecl:grn +byr:1970 cid:339 +iyr:2011 hcl:#a97842 pid:952307953 eyr:2027 hgt:159cm + +hcl:ff4451 iyr:2022 +byr:1972 ecl:#86cbc5 pid:29044223 eyr:1985 +hgt:62cm + +hcl:#623a2f iyr:2013 eyr:2023 hgt:164cm byr:1956 +ecl:oth + +eyr:2028 hcl:#733820 pid:767003752 byr:1935 hgt:167cm iyr:2016 +ecl:oth +cid:215 + +cid:125 ecl:amb +iyr:2019 hcl:#18171d eyr:2022 hgt:163cm +pid:239764055 +byr:1954 + +ecl:gry +iyr:2019 hcl:#cfa07d byr:1929 pid:221011852 +cid:274 eyr:2026 hgt:158cm + +hcl:#a97842 iyr:2016 hgt:159cm +byr:1998 ecl:hzl eyr:2020 cid:207 + +pid:051242790 +iyr:2024 +byr:1975 hcl:#602927 +ecl:grn hgt:160cm eyr:2014 + +ecl:#0b3ea5 hcl:z pid:#122ff0 +byr:2007 +hgt:178 iyr:2013 +eyr:1950 + +hgt:171cm hcl:#cfa07d pid:674448249 +ecl:hzl eyr:2026 +cid:297 byr:1928 + +ecl:hzl eyr:2021 hcl:#b6652a pid:856617617 +byr:1949 +hgt:153cm iyr:2015 + +hgt:164cm ecl:gry +eyr:2025 +pid:147932207 iyr:2011 byr:1984 hcl:#fffffd + +eyr:2027 hcl:#7d3b0c +pid:377701492 ecl:gry byr:1971 hgt:174cm +iyr:2023 + +byr:2001 hcl:#4784a2 hgt:161cm iyr:2014 eyr:2025 pid:955262336 +ecl:amb diff --git a/resources/input05.txt b/resources/input05.txt new file mode 100644 index 0000000000000000000000000000000000000000..17dfa0b17f1390a7319a15ec730cdc959fa9700b --- /dev/null +++ b/resources/input05.txt @@ -0,0 +1,859 @@ +BBFFBFFRRR +FBBFFBBLRR +FFBFBFBRRR +FFFBFBFRRR +BBFFBBFLRR +BFFBFBFLRL +FBBBBBFRRR +FFFFBFFLLR +BFBFFBFLLR +FFBBFFFLRR +BFFFFFFLLL +FBFFBFFRLL +FFBFFBFRLR +FBBBFBFRRR +FBFFBBBRRL +FBFFBFFLRL +BFBBFFFLLL +FBBFBFBRRL +BFFBFFFLRR +FFFFBFFRLR +FFFBBBFRLR +FBFFFBFLLL +BFBFBBBLRR +FBBBFFBRLR +BBFFFFFLLL +BFFFFBFRRL +FBBBFBFRRL +FFBBBFBRLR +FFFFBBFLLL +FBFBFBBRLL +BFFFBFBRLL +FFBFBFBRLR +FBFFFBBRLR +BBFFFBBLRR +BFFBBFFRRL +BFBBBFFRRR +FFBFBFFRRL +FBFBBFBLLR +BFFBFBBRRR +BFFFFBFLLR +FFFBFFFRRR +FBFFFBFRLR +BFBFFBFRLR +FBBBFFFLLR +FBBFFBFLLL +BFBBFBFLLR +FFBFBBFLLL +BFFFBFBLRL +FBBFBBBLLL +FFFBFFBLLR +BFFFFFFRRR +BFBBBBFRRL +FFBFBBFRLL +FBBBFBBLRL +BFFBFBFLRR +BBFFFBFRRL +BFFBBFFLRR +BFBFFFFLLR +FBFBFFFLRR +BFBBFBBLRL +FBFBFFFRLR +FFBBBFFRLR +BBFBBFFRLR +BFFFFBBRLL +FFFBFBBLRR +FFFFBFBRRL +BFFBFBFRRL +FBFFBBBRRR +BFBBFFBLRL +FFBBFFFLLL +FBFBBFBRRR +FBBBFFFLRL +FBBFFBFLRR +FBBBBBFRRL +BFFFBBBLRL +FFFBBFBRLL +FFFFFBBLLR +FFBFBBBRLL +FFBBFBFLLR +FBFBBFFLLL +FFFBFFBRLL +BFBBFBFRLR +BFBFBBFRRL +FFFBFFFLRL +FBBFBBFRLR +BFFBFFBRRL +BBFFFBBRLR +FBBBBBFRLL +FFBBFFFRLL +BBFBFBBRLR +FFBBBFFLLR +BFBBBBBLLL +FFFBFBBLLL +FBFFBFFRRL +FBFBFFBLLL +BFFBBBFRRL +FBBBBBFLLL +FBFBBFBLRR +FFBBBBFLLR +BBFFBFFRRL +FBBBBBFLRR +FBFFFFFRLR +FBFFBBFLLR +FFBBBFBLRR +BFFFBBBRRL +FBFBFBFRRL +FFFBFBBRLL +FFBFBFBLRL +FBBBFBBLLL +FBBBFBFLRL +FBBBBFFLRL +FBFBBBBRLR +FBBFFBFLLR +FBFFBBFLRR +FBFFFBBLLL +BBFFBBFRRR +FBBFBBBRLL +BFFBBBFLLR +FBFFFFFLRR +FBFFBBFRRL +BFFBBFBLLL +FBBBFBBLLR +FBBBBFBLRL +FBBBFFFRRR +FFFFBBFRRR +BFBFFFFRRR +BFBFFBBLRL +BFFFFFBLLR +BFBBFFFRRR +FBFFFBFRRL +BFFBBFFLRL +FFFBFFBRRL +FFBFBFBLLL +FFBFBFFLLL +BBFFFBBRRR +FFFFFBFLRL +BFBFFFBLRL +BFBFBFFLRR +BFFBBBBRLL +BFFFBFFRRR +BBFBFFBRLL +FBFFFBBRRL +FFBBFBBRRL +FFBFFFFLLR +FFFBFFFLLL +FBBFFBBLRL +BFBFBBFLLR +FBFBFFFRRL +BBFFFFFLRR +BBFFFBFLRL +BBFFBBBLLL +BFBBFBFLLL +BFBFFBFRRL +FBFFFFBRRL +FBFFBBBRLR +BFBBFBBRLL +BFFBBFFLLR +FBBBFFBLRL +BFFFBFFRLR +FFFBFFBRLR +BFFBBBFLLL +FBBBBFFRLL +FFFFBBBRLR +FBFFBFFLRR +FBFBFBBRRL +FFFFFFBRRR +FFFBBBFLRL +FBFFBFBLLR +FFFBBBBLRL +BBFBFFBLLL +FBFFFFBLLR +BBFBFBBRRR +BFBFFFBRRR +FBBFBFFRLL +FBBBBFFRLR +FFBBFBBLRL +BBFBFFBLLR +FBBBBBBLRL +BFFFBBFLLL +BBFBBFFLLR +FBFFBFBLRL +BFFFBBBLRR +BBFFFFFRRR +BFBFBBBRLR +BBFFFBFLRR +FBBFBBFLLR +BBFBFFBLRR +BFBBBFFLRR +FBBFBFFRRL +FBFBFBBLRR +BFBBFFBRLL +FFFBBFBRLR +BFFBBBFRRR +FBFFBFFRLR +FFFBBBBRLL +FFFFFBBRLR +FBBFBFBLLR +FBBFBBFLRR +BBFFBBFLLR +FFFBFBBLLR +FFBFBFFLRR +BFBBFBFRLL +BFFFFBFRRR +BBFBFFFLRL +BFFFFBFLLL +FBFBFBFLRL +BFBBFBBLLR +BFFBFFFRLL +BBFBFFFRLR +BBFFBFFRLL +FFFBFBBRLR +FBFBBBFLRL +FFBFFBBRLR +BBFFFBBLRL +BFBBBBFLRR +FFBFFFBLRL +FFBBBFBRLL +BBFFBFFLRR +BBFFBFFRLR +FFFFFBFRRR +BBFBFBBLRL +BFFBBBBLLL +FBBBBFBRRR +FFBBBBBLRL +FBBFBBFRRR +FFBBFFBRLL +BFBFBFBLRR +BBFBFFFRRR +BFFFBBFRRR +FBFBFFFLLL +FBBFBFBRRR +BBFFBFBLLR +BBFBFBFLRR +BFFFFBBLRL +BFBBBFFLRL +BBFBFFBLRL +BFFBBFFRLL +FBFFBFFLLR +FBFBFBBLLL +BBFBFBFLRL +BBFFBBBLRL +FFFFFBBRLL +FFFBBBBRRR +FFBBFFFRLR +FFBFFFBRRR +FBFBFFBLRR +FFBFFBBLLL +FBBFBBFLRL +FBFFBBBLRL +FBBBBFFRRR +BFBBBBBLLR +FFBFBBBLRR +FFFFBFBLRR +BFFFFFFRLL +FBBFFFBLRR +BFBBBBBRLL +FFBBFFBLRL +BFBBBFFRLR +FFBFFBFLLL +FFBBFBFRLR +BFBFFBBLRR +FFFFBFFLRR +FFBFFBFLRL +BBFFBBFRRL +FFBFFFFLLL +BBFBFFBRLR +FBFBFBBRLR +BBFFBBBRRR +FBFFBBBRLL +BFBFFBBRRR +BBFFFBFRLL +FBBFBBBLRL +FBBFFFFLRR +BBFFFBBLLL +FFBFFFFLRL +FBBFFBFLRL +FBBBBFFLLR +BFBBFBFRRR +FBBFFFBLLL +FFBFBFFRLL +FFFBBBFLRR +FFFBFFFLRR +FBFFBFFRRR +BFFFBFFLLR +BFFFFFFRLR +BFFFBFFLLL +FBBBFBBRRL +BFBFFFBLLL +FBFBBBBRRR +BFBBBFBRLR +BBFFFFBRLR +FBFFFFFRLL +FBBFFBBRLR +BBFBBFFLRR +BBFFBFFLLR +BBFFBBFRLL +FBFFFFFRRL +FFBFBBFRRR +FFBFFFFRLL +BFFFFBBLRR +BFBFBFBLRL +FBBFFFFRRR +FFBBFBBRRR +BFBBBBBRLR +FBFFFBBLLR +BBFFFBFRLR +FBFFFBBRRR +FBBFFBFRLR +BFFFBFBRRR +FFBBBBBLLL +FFFFFBFLLR +FBBFBFBRLL +BFBFBFBRRL +BBFFFFBRRL +FFBFBBFLLR +FFBBBFFRRL +FBFFBFBRLR +FBBFFFFRLL +BFFBFFFLLR +FBFFFBBLRR +BFFBFFFLLL +BFBFBBBRRR +BFFFFBFLRL +FFFFBFBLLL +FFFBFFBLLL +BFFFBBFRRL +BFBFBBFRLL +FFFBBBBLLL +BFFBFBBRLR +BFBBBBBLRR +BFBBBFBRRL +FFBFFFBRLR +BFFBFFFLRL +FFBFBBBLLL +BFBFBBFRRR +BFBFFBFRRR +FFBFFFBRLL +FBFFFFFLRL +BBFFBBFLLL +BFBFBBBRLL +FFFBFFFRRL +FBBBBBBLLR +FFFBFBBLRL +FBBFBBFRLL +FFBFFFFRRR +FFFBBBFLLR +BFFBBFFRLR +FFFFFBFLRR +FFFBBBBLLR +FBFFBFBRRL +FBBFFFFLLL +FFFFFBFRRL +BFFBBBFRLL +FFFBBFFRLL +FFFBBFFLRR +FFFFBBFRLL +BFBBBBBRRR +BFFBFBFLLL +BBFBFBFLLR +FFBBBBFRLR +FFFBBBFRLL +BFBBBBFRRR +FBFBFFBRLR +FFBFBBFRRL +BBFFBBBRRL +FFBFBBFRLR +FFFFBFFRLL +FBFFFBBRLL +BBFFBFBRRL +BFBFBFBLLR +FBFBFBBLRL +FBBFFFFRRL +FFFBBFFRRR +FFBBBBBLRR +BBFBFBBLRR +FFFFBBBLRR +FFBBBBBRLL +FFBFFFBRRL +BFBBFFFRLL +FBBBFBFRLL +BBFFBFFLRL +BBFFBFBRLR +BFFBBBBRRR +FBBBBBBRRL +BBFBFFFRLL +BFFBBFFRRR +BFBBFFFRRL +FFBFFBFLRR +FBFBBFFRLL +FBBFBBFRRL +BBFBBFFRRR +FFBBFBFRRL +FFBBFBFLLL +FBBFFFFLLR +BFBFFBBRLR +BFBBFFFLLR +FBBBFFFLLL +FFFBFFBLRR +FFFBFBFRLR +BFFBBBBRLR +FBFFBBBLLR +FFFFBBBRRR +FFBBBBFLLL +FBBBBFBLLR +BFBFBFFRRL +BBFFBBBLRR +FBBFFBFRRL +FFFBBBFLLL +BFFFFBBLLL +BBFBFBFRRR +BFBBBFBLRR +FBBFBBBLLR +FFBBBBFLRL +FFFBFFBLRL +FBBBFFBRRL +BFFBBFBRLL +BFBFBFBRRR +BBFBFBBRLL +FBFFFBFRLL +BFFFBFBLRR +BFBFFFFLRL +BBFFFFBLRR +BFBBFFBRRL +BBFBFBBLLR +FFFBBBFRRL +BFBBBFFRRL +FFBFFBFLLR +FFBBBFBLLL +FBFBBBFLLL +FFBBBBBRLR +BBFFBBBRLL +BFBFBBBRRL +FFBBFBBRLL +FBFBBFBLRL +BBFFBFBLLL +FBFBFFFLRL +FFBFFBBLRL +FFBFBBFLRL +BBFBFBBLLL +FFBBFBFRLL +BBFBBFFLLL +FBFFFFBLRL +FBFBBBFRLR +FFBFFBFRLL +FBBFFFBRRR +FBFBFFBLRL +BFFFFBBLLR +FBFBFBBRRR +BBFFBBFLRL +BFBBFFFRLR +FBFFFFFLLR +FBBFFBBLLL +FFFFFBBRRL +FFFBBFBRRL +BFFBBBBRRL +FBFFFBFLRL +FFBBFFFLLR +FBBBBBBLRR +BFFFBBFRLL +FFBFFFBLLR +FBBBFFFRLL +FFFFBBBLRL +BBFFBFBLRR +FFFFBBFLRR +BFFBFBFRLR +FFBFBBBLRL +FBFBFBFLLR +FFBBFBBRLR +BFBFBFFRRR +BBFFFFBRLL +FFBFBFFRRR +FFBFBBFLRR +BFBBFBFLRR +FFFFBBBLLR +FFBBBBBRRL +FBBFFBBRRR +FFFBBBBRLR +BFFBBBFLRL +BFBBFFBRRR +BBFFBBFRLR +FBBBBBFLRL +FFFBBFFLLL +BFBBBFFRLL +FBFFFFFLLL +FBFBBFBLLL +FFFBFFBRRR +BFBFBFFLLL +BFBFBFBLLL +BFBBBFFLLL +FFFFBBFRLR +BFFBBFBRRL +BFBBFBBLLL +FBBFBFBRLR +BFFFBFFLRL +FBFBBFFLRL +FFFFFBFLLL +FBBFFBFRRR +FBFBBBBLLL +FBBBBBFRLR +FBFFBBFRLL +FFBFFBFRRR +FFBFFFFRRL +BFFBFBBLLR +BFBBFBBRRR +FFBBFBBLRR +FBFFFFBRLR +FFBBBBFRLL +BBFFFBFRRR +FFFBFBBRRR +BFFFBFFRLL +BFFBBBBLRR +FBBBBFBLLL +BFFFFFFLLR +BFBFFFFLRR +BFFBBBBLLR +FFBBBFBRRR +FBBFBFFRRR +FBBFFFBRLR +BFBFBBFRLR +BFFBFFBRLL +FBFBBFBRLR +BFFFFFBLRR +BFFBFFBRRR +BFBFFBFLRL +BBFFFBFLLL +BBFBFBFLLL +BFBFBFFLRL +FBBFBFFLLL +FBFFBFBLLL +BFFFBFBRLR +FFFBFFFRLL +BBFBFFFLLL +BFFFBBBRLR +FBFBFBFLRR +FFBBBBFRRR +FBFBFBFRLR +BBFFBFFLLL +FBBBBFBLRR +FBBBBBFLLR +BFBFFFFRLL +FBFFFBFLRR +FFBFFFBLLL +BFBFFBBLLR +FFBBBFBLLR +FBFFFBBLRL +FFBBBFFRRR +FBBBFBFLLR +FBBBBFFLRR +FBFFBBBLLL +FFBFBFFLLR +FFFFFBBLLL +BFFFFFBLRL +BBFFFFBRRR +BFBFFFBRRL +BBFFFFFRRL +BFBBBBBLRL +FBBBBFBRLL +FFBFFFFLRR +BFBBBFFLLR +BFFFFBBRLR +FFBBFFBRRL +BFBFBFFRLR +FFBBBBFLRR +BFBFFBFLLL +FBBFFBBRRL +FFFBBFFLLR +FFFFBFFRRR +BFFBBBFRLR +BFFFFFBRRR +FFBFBFBLLR +FFFBBBFRRR +BBFBFBFRLR +FFBBFFBLLR +FBFBBBBLRL +FFFBFBFLRL +FFFFBBBRLL +FBFFFFBRRR +FFBBBFFRLL +FBFBFFBRRL +BFFBFFBLLL +FFFFFBFRLL +BBFFFBBRLL +FBBFBFBLRL +BFBFBFFLLR +BFBBFBBRLR +FFBFFFBLRR +BBFBFFFLRR +FBBFBBBLRR +FBBBFFBLLR +BFBBBBBRRL +BFBBFFBLLR +FBBBFBFLRR +BFFBFBBLLL +BFFBFFBLRL +BFBFBFBRLR +FBFFBBBLRR +FBFBBBBRRL +BFBFBBFLLL +FBFBBBBLRR +BFFBBFBRLR +FFFBFBFRRL +BFFFFBBRRR +FBFFBBFRLR +BFBBFBFLRL +BFFFBBBLLL +BFFFFFBRLR +BBFFFFBLRL +BFFBFFFRRR +BFBBBBFRLL +FBFBBFBRLL +FBBFFFBLLR +FFFBBFBRRR +FBFBBBBLLR +FFFFBFFLLL +FFFFFBFRLR +BFFFFBFRLR +FBBFFFBLRL +BFBFFBFLRR +FFFFFFBRLL +FFBBFFFLRL +BBFFFFBLLL +FFFBBFFRRL +FBBFBBFLLL +FBFFBFBLRR +FFBBFBBLLL +BFFFBBBRRR +BFFFBBBLLR +BBFBFBFRLL +BFFFBBFRLR +FFBFBBBRRL +FBFBFFFRRR +FBBBBBBRRR +FFBBBFFLRL +BFFBFBBRRL +BFBFBFFRLL +BFFFBFFRRL +BBFFBBBRLR +BBFFFFFRLL +FFBBFFBRRR +FBBFBFFLLR +FBBBFBBRLR +FFBFFBBRRL +FBBBFFBLLL +FBBFFFBRRL +BFFBFFFRRL +FBBFBFFRLR +BFFBBBBLRL +FFBFFBBRRR +FBFBBBFLRR +BFBBBBFRLR +FFFBFBFLLL +FBBBBBBRLL +FFBFFBBLRR +BBFFFFFLLR +FFFFBBFRRL +BBFFFFFRLR +FBFBFFBRLL +BBFFBFBRRR +FBFFFBFLLR +FFBBFBBLLR +FBFBFFFRLL +BFBBBFBRLL +FFFFFFBRLR +FFBBFFFRRL +BBFBBFFRLL +FBBFFFFRLR +BBFBBFFLRL +FBBFFBBLLR +BFFFBBFLLR +BBFBFBBRRL +BFFBFFBLLR +FFBBFBFRRR +FBBBBFBRLR +FFFBFBFLLR +FFBBBFBRRL +FFBBBFFLLL +FFBFBBBRLR +FBFBBFFLRR +FFFBFBBRRL +FFFFBFBRRR +FFFFBBBLLL +FFFBFBFLRR +BFBBBFBLLR +BFBFFFFRRL +BFBBFFBLRR +FFBFFBFRRL +BFBBFBFRRL +BFFFFFBRRL +FBBBBFFLLL +FFBFBBBLLR +FBBBFBFRLR +FFFBBFFRLR +BBFFBFBRLL +BBFBFBFRRL +FFBBBBFRRL +FBBBFBBLRR +BFFBFFBRLR +FFBBFFBRLR +FFBFBFBLRR +BFBFFFBLLR +BFFFBBFLRL +FBBBFBBRLL +BBFFFBFLLR +BBFFFBBRRL +BFBFFFBRLL +BFBFFFBLRR +FFBFBFFRLR +BFFFFFFRRL +BFFFBFFLRR +BFBBBBFLRL +FFFBFFFLLR +BFFFFFFLRR +BBFBBFFRRL +BFFFFFFLRL +FFFFBFBRLL +BFFBBFBLRR +FFFFBFFLRL +BBFFFFFLRL +FBBFBFBLRR +FBFBBFFRLR +FFFFFBBRRR +BFFFBFBRRL +FBFFBFBRRR +BBFFFBBLLR +BFFBFBBLRR +FFFBFBFRLL +FBFBBFFRRR +FFBFBBBRRR +BFBFFFBRLR +FBBFFFBRLL +FFBFBFBRRL +FFBBBFBLRL +FBBFBBBRRL +FBFFBFBRLL +BFBFBBFLRL +FFFBBBBLRR +BFFBFBBRLL +FFFBFFFRLR +FBFBFFBLLR +FBFFBBFLLL +FBBBFBBRRR +FBBFBBBRRR +FBFBBBFRRL +BFBBFBBRRL +BFBFBBBLRL +FBBFBBBRLR +FFBBFFBLRR +FBBFBFFLRL +FBFBFFBRRR +FFBBBBBLLR +BFBBFFFLRR +FFBBFBFLRR +BFBBBBFLLR +BFBFFBBRRL +FBFBBFFRRL +BFFFFFBLLL +FBBBBFBRRL +FBBBFFBRLL +BBFBFFFLLR +FFFBBFBLLL +BFFFBBBRLL +BFBFFBBLLL +BFBFBBBLLR +FBFFBBFLRL +FFFFBBFLRL +FBBFFFFLRL +FBBBBFFRRL +BFBBFBBLRR +BFBFBFBRLL +FBBBFBFLLL +FBFBBBBRLL +FBBBFFBLRR +FFBBFBFLRL +FFFFBFBLRL +FFBBBFFLRR +FFBBFFFRRR +FFBFFBBRLL +FFFFBFFRRL +FBBFFBFRLL +BFFFBBFLRR +BFBFFBBRLL +BFFBBFFLLL +FBBBBBBLLL +BFFBFBFRRR +BFBFFFFRLR +BFFBFBBLRL +BFBBBFBLRL +FBFBFBFRLL +FBBFBFFLRR +BFBBBFBLLL +BFFBBBFLRR +BFBBBBFLLL +BFBBFFBRLR +FFFBBFBLRR +FFFFBBFLLR +FFBFFBBLLR +FBFBBBFLLR +BFBBBFBRRR +BFFFFFBRLL +BBFBFFBRRL +BFBBFFBLLL +FFFBBBBRRL +FBFBBBFRRR +BFFBBFBLRL +BFFBFFFRLR +FFFFFBBLRR +FBFBFFFLLR +FFBFFFFRLR +FBFFFBFRRR +FBFBFBFRRR +FFBFBFBRLL +FFFFFFBRRL +FFBBBBBRRR +FFFBBFFLRL +BFFFBFBLLL +FBFFFFBLRR +FBBBBBBRLR +FBFBBFBRRL +FFBBFFBLLL +FBFFBBFRRR +FBFFFFBLLL +BBFBFFFRRL +FFFFBFBLLR +BFFBFBFLLR +BBFBFFBRRR +FBFFFFFRRR +FFBFBFFLRL +BFFBBFBLLR +FBBBFFFRRL +BFFBBFBRRR +BFBFBBFLRR +FBBBFFFRLR +FBBFBFBLLL +FBFBFBFLLL +BFBBFFFLRL +BBFFBBBLLR +BFFFFBBRRL +FFFBBFBLLR +BFFFFBFRLL +FFFFFBBLRL +FBFBBBFRLL +BFBFFBFRLL +FBFFBFFLLL +FBFBFBBLLR +FFFFBFBRLR +BFFFBFBLLR +BFFBFFBLRR +BFFFFBFLRR +FBBFFBBRLL +FFFFBBBRRL +FBBBFFBRRR +BFFBFBFRLL +BBFFBFBLRL +FFFBBFBLRL +BBFFFFBLLR +FBFFFFBRLL +BFBFBBBLLL +FBFBBFFLLR +FBBBFFFLRR diff --git a/resources/input06.txt b/resources/input06.txt new file mode 100644 index 0000000000000000000000000000000000000000..066f613981adda1259e599fc6b6b1df87167e742 --- /dev/null +++ b/resources/input06.txt @@ -0,0 +1,2042 @@ +ybcgtxznorvjel +brlyvoexnjtgcz +lnbgtxvoiyecjrz + +lcajnyxgzqwim +qznygxmlvwja +gmjzynxaqwls + +cmljinrupeykatzdsfox +ugwqhknvb + +gsdqbrnhotmfwivl +prozsgfwnthvmiq + +vsjpurgokf +dfxpqzabeulknwmjvcsr +pfuvstryihjk + +islxfdrtvzwkyoguh +ogylskzvuftqhirxbdw +fkrtgsxudhioylznvw + +c +c + +uvwigmrlpbqh +qvgriwlbmhpz +nhlsptgbvwimrq + +izhmeksc +zarebypguktc +fzxkveoc +hzcneqkl + +wsaklcyumfjgxpe +gjlueyimxawpkoscf +tgpaeywujxkslmf + +uzxkhngrtem +heumxtrkzgj +kzxtqvehmfyurdgi +xmhtzrukeg +tkhgujzmxenr + +veaxitpwqlkmfcdgu +tuylgfjb +ftuglh + +uqnklfemcd +fueknldq +eqkfdhnmtl +opyelgnqdfkxw +qzkslfden + +q +bu +k +q + +wqeaklcysthvrb +srhcatklwbqyev +ylrqbthswkceva +tsbryhlavcwekq +aketrswybhvlqc + +tyd +ymt +yvt + +hwvclzeby +vywecbhl +wecyqsohlvb +cvlwheyb +blyvewhgc + +wieapdrco +edicwpa +cpdwia +hdwgyvpica + +jvy +fjv +vj +vjf + +czdf +dfzc +dczf + +gpmrwtuoy +tymroagbipw +wombgpcyktr +dtrlongqypmwhsjvfxz +gmrwpyto + +ocnmpvjx +pvjxcm +bmyjrgvxpkc + +jeygorhmxiak +hxifjagoemr + +ncjziqtmpawdufxye +eubydnxpatfwjzkcm + +abmysdl +cpqbifaynmdsl +mjsbdyla +mrdbvjswyal +bvsladmy + +qafokiv +oqhaik +oqmkifa +qaligznro + +aiblwmouqx +mqwbaxolui +oxuibwlmaq + +zvefqkjusco +xuewoskj +kuzfqjsoe +puankilsjodbre +kutoqsjefh + +celsgxhzpjrodmitfukvn +ejkrmnpsgfxvoaihulcz +zuimrfyohspkjvcxelgn + +lbrxfchematouyniw +labiudxyoenh +ikelubxgaoynhz +jnahsdibeuxylov +xovbhaiunlsey + +ipsrknazqblw +dgxutyvejmfc + +sxizpwamjhn +imhnzxawsjp +ahnpswxmizj +wmisxanjzhp + +gtbhymj +zawfkbsiud + +gylpjarczexv +zyajpvoecrlgx +kzrlojeayxgvp +veztfaypxqrljg + +xfivwhodjknmzauqcletpygb +hypeczniafgkoqultxvbdwjm +qxfhjptgnlkvycoudwmizaeb +jizanpbfcyuetmqokhlwvxdg +gjwtexvdfpuamiconybzhlqk + +tvy +yv +yiv +yv +yv + +whueklivtpca +iplkuahwe +tlsekhiuwap +mizpgjwlbahuekr + +mdp +mdp +mpd +pdm + +xjnhkvoewc +osfjprwxhcieavkd +hqjxwkvonec +jlgxctoqhevwkn +kzvjhyxweco + +yk +yk + +hdnxtrvyeiwam +asrwvdhmxeycint +vwxptebdzyioagqmhr + +tfczy +ctyfn +tycf +cwytf +ytfc + +rmtbfezuojpa +utbjepomarzf +rbatejfumpzo +frtuoepamzbj +faejrztmbpuo + +afenbkzjyugowxcpvr +wouafcenbpjvkygzxr +gvneprcbujxzayokfw +vzyparnkxcgbfwouej +ubzxvkrcgnjeapfowy + +vwuqrecngfdlk +lkrnvqgufwdc +wrnldgkqvcfeu +cuwnbgvqfdrkl + +xbh +vacqro +snxumhe + +gxlf +fglx +gxfl +xlgf +lfxg + +uzlryvkmdbweqjocatxnhi +lzjedxqowyhmnabkiufvcrt +ntkrmlwcqdbzaxejyuhvoi + +fbns +nbf +nabylt + +arsif +qzorln +apb +gcvyuhxtkwe +jm + +svu +uvz +pvuf +ucv + +hpjfklnwizys +pzrcfhyslkiqwn +zskfylihnpow +wgfbdkszlypeihn + +vkmcijegnxar +bvknimxrejcga +vegkjcxniram +egkjvmxciran +akgixcjrnemv + +ewixgnuavo +unoeayxkgi +yeiaucxnm +ixaekznu +ajulsenirbqtfhxpd + +frqlmnxdbgewzo +rdtmqlzovkbuncj +qmzxrndoeiyflb + +ukpnyzjiohf +gjfpkinzuoy +ygjozinfupk +iyvjpeozkfnu +kiupfhoyjngzs + +hrpwvsugjafeoyd +djawruhovfezcb + +cepdjoqftlbanyzxgh +cgnayjbfxzeophtdq + +xqg +halqr +qub +qub + +po +ldjb + +zxnqu +zduxsbq +nzuqxgf +niqzxu +zquxl + +qn +ev +cz +bmwjfhlg + +kpfrostvwjqzd +ukbsrjpdzfcowq + +yjtl +jytl +ltyjz +yltj + +dwty +djsct +gtdj + +hoj +jyho +jhos +ojh + +eupzntdmk +pulhzta + +vdfuricnlkjq +cdufvkijqrn +fkdrpnjcuviq +qnfvjudcirk +drijcfkuqvn + +nvbldpqsx +wbdzhqp +iamjtyfg + +iwqexpmtoadjvryuzshk +twzoyhjukxmqsreaipvd +umryqtvxsdpziohaejkw +eruvdmyzapthwqixjkos + +wtgkdqunxroablp +uqmljdantokrpwxg +nkoupqzlgxwdat + +vepioalcghjydn +zutlfxvorkn +qbvnlo + +lmie +ebim +ykmhei +smie +msbeic + +segdzmcnijfpy +pmngjzisdcey +daumgeznqikljcyp + +hocwkeizbmvgnsd +jfirpydx +itqjdyl + +dbwtrzqo +bwdztr +pwbdtzr +wrtbdz + +tcl +ctl + +izfnvwsygkjp +nkfpvyzsgij +ygjvfipksnz +kvpgjysnfzi +jxiboavkfnzgpsy + +gxulavdzi +xeorucjdlym + +hfc +cfh + +oaixdvhwf +kuivdwfxzha + +jsxny +ynsxj +yjxsn +nxsyj +xysnj + +usnjaimqdl +dnuxgy +hdnpcugz + +ejofu +ufe +uef +feu + +defovtzlc +avocyzft +zxwcvftb + +cbga +vgb + +rac +a +jgzaxotn +av + +ugnotpd +ntugodpx +pudgomt +tdislogp + +filsprncvbdamgozwuh +fzqucamrswpihvdlgob + +keaqcjtmzwipdyonvufsl +voysnkmwlzqpfeguiacdtj +ndacvykmeozbsuwpiftlq +wodcqfputzknsyevilma + +aobpjhfwndq +wnbjofqdpah +fnwqdcgxphabj +wadfqbhinjp + +dfegup +pdgyu + +qmdthgnfsoacekpjr +zwqjois + +cuqwdn +cdnwi +cwyvd +tokwjdsxcr + +hlbrqytujx +fdcxlwjquyznksv +wyupmxqjfilsk + +hkrsp +yhwpsrk +krhsp +gorspkh + +kdnsfavte +snadektv +namkstved +etavlknds +esdatkvn + +zbvuponkx +zkjybcanxi +xbunzkv + +sixh +xbgha + +uxfay +urqibka +uao + +lsjkxqirzbcw +sqkbzwjclixr +qsclikrzhxwb + +ozldp +dlpz +dztglp + +rl +lr +lr + +xchdwlniyzjvfskqgu +jczdgywxisl +jxyspdclgizmw + +dblfawuprytvz +mceiqnsxkgltp +pmcxtohlg + +s +s +r +zdkl + +xsftzi +rhmvobe +gitkn +ucgzt + +zfboewhsdi +sfozwbdhie + +iulc +cilu +iluc +ucli + +orlegwpi +polwidg +pomlwiy + +wuzngeba +bnazuce +ubzane + +vywm +ym + +nfmsueclkpqgwai +utlevwmrcxosqkpd + +stkubmdgxnprayjvihocf +jdnhiurkyopfsbmagxtezcv +fokmgyscrpijnbhxtudav +caogfvytximuhrjdpbnsk + +rsabjcmtdwynx +bficzdrnlsjouhta + +mw +wm +mw + +iebmfugxoyqlrpcvjztkwdnh +pelfsdutxqcymaozjhnr + +pebjavucfqyrdzgml +cbzypflawgmjuvredq +yzrujflgcqebvdapm +gbfuqznldejsyvparmc +jcaqeuwvplbfgdmryz + +hkg +xelcms +f + +lihonytfdumjsewrzabpc +hlpcdubrwoazsfmiynetj +owuibptxmdhzyrecsfan + +riosndbpujgcwethz +hwfrzietbougpsdqjn +drntjpzeguiowshb +pwubneoztjsgdhri +rezkbtghcjwdoinspu + +njsa +u +fb + +sfx +s +s + +ucqsmn +istuq + +ingklxq +cnoekp + +jlygxaiwrpdfnheouvc +dvfaingtxwpkozjhylercu +pigfacjweynhuovxlrd + +vpxbtozuemlny +jkgymlvebinctudpxa +byzxemqvtulpn +ytvunxzwqblepm + +jfbkglhtpqudix +grnicbtpqzdxv + +bfokwpmzhtlgquaiejr +iawgbmqvzleoxrhtfpu +zwompxutlbhaifseqrg +xpbqhitclyzrunwodgfesma + +q +qg +q +vq +q + +ekipdozabfsxvugqltjwyrc +dztsokinlyrfxceqjwuavpbg + +eqnkifs +ifqknes + +laecqkp +pugqayce +elcxpraqoj +pecqvfwa +qcepljak + +arnb +qnab +nbaq +dnbaomv + +cbormguajxfiplwvts +dxifemjgwzrobtlpcqvua +aofmcpilxjvbguwtr + +umvdxnwzfqapk +pwuqfzadjmne +uzqpmfyacdw + +mhaeksjiqb +bfqjokusih +jgklnsivbywdc +sxpkfirjomqb + +nhzaplu +ahkipmvo +brtjwg + +mkjxlagycu +uckjxlgma +kjcuxmgal + +ve +ve + +jvkobmcq +gjmqkobc +qjbomcwk +cybojqmk +mjbqocfk + +ducqha +qdlhac + +wlfkid +hipcfkwdlryb +fwlkdi +kdifwvl + +ezs +sze +esz +zes +esz + +hz +utfzphv +ahzgk +shz + +jxclzr +rwfjmu +jro +ojrlny + +topn +wbcojtesg +yrdlqhfz + +wktxsnufbhygzraijlcoed +ciokuzgyrsenbaxhdwjft +nszoywipjhrfxgqbdaeutc +tcxzrysbfuieaovndhwj +bkyouicwtfzlxshjaednr + +aoylnseditpgum +ounmkyzedplaibqs + +fahocyurtgvbsq +byufcgohqvatr +guvoyqthcrbdfa +cbfhayvqrugto + +dgil +dig +idg +apdgi +dig + +rfzmeoyuq +remzyhbip +xtvrykdsancjzmw +pzryfugom +eryomgzlh + +ro +or +ro +doar +rpo + +tbomqznewpgu +zpwbegtquonm +gbunzwtqpmeo +pmnobqtewzgu + +tzkielrca +pwgouhfjvdybsnqm + +bqxr +om + +fkvlmqye +bnqlyda +yojczstxupq +qiye + +wcdl +wcld +lwcd +wdcl + +udx +suhx + +ypmrvaj +aphrjxowvyz +jarvpmq +vpcwarbj +tugveaprjsn + +cubgyqflopxnj +apnxvc + +c +c +c +c +c + +ykdeblvoijpqtns +sbnoigt +nbmitoxas +ibosnxt + +klbdfgmo +va +ylcu + +sgdrutfcbwxleyvmqjoz +hztjqbduiefkvxwcygmolr +eymudvjwlqcxrzfgtob + +jcghosr +jpagrmecsho + +xtlgomkfpciezyq +ylrgtxmchkq +dgtlkwymvxnqc +cgxalbkydwsjmqt + +lvg +vg +vjgka + +xulzdqyef +xuezfldyq +zduyfqexl +lqfezuydx + +afpboknehzmculswdyjqix +winjabfuyedmzoshxlcqpk +smnaybfjzkowdpleiuchqx +bqsuknafemzvpljihwycdox + +huvrzdawnce +irvodxzmnksq +tvrdneazfcu +nldygvuezr + +ifwousayrbjvxcpld +ugrnfjhvbcoatspxk +vsiobyrcpjdfzuaxq + +ubeisxaw +klqn +ok +rmf +n + +j +grpy +mnwf + +yrsnckxbuvhdtmgeqapj +asjkxuymdbrlechvqotngp +adrjpnbhmutgkxecyvqsi + +agtlryz +pywxhgqu +okyghqduj +mbycgvhjq + +aihswznpod +bdaezc + +grdiok +dtkoxqrnl + +vqjpfiembrcyohxlgdts +uhvgxiceoyafmtpqs +gqpcfextaviomwhys +voygtpxhmiqcfse + +alv +xohjegy + +k +z +h + +wdoc +dwco +domcw + +pencwlstgb +toapxnsye +taehsxpjn + +unhav +dbslritz +eucw +ekv +eag + +fewghvcj +hcejwfvg +jgxwfvclheu +ewjfzvghc +ehfcgjwv + +moaclkpxythqvesdgzuwib +nrvlkyaiuhwsxfjzeoqmdb + +hda +dah +dha +dha +dha + +kgu +efntky +liw +zyh + +zqtohusn +jmuhq +lxqvkruhciwey +mjqthzanbu + +ljtief +lijeft +jlteif +fiejlbt +fjtlie + +qdxygilu +tldagovk +npmdckoaltg + +i +i +i +i +i + +wk +dal +uzmbsen +k + +cqlxwzvetfakbidmgoujhs +afzghkswqibynljtoecvrx +swzkjhatgqvblxfneoci + +h +on +h +h + +fzvckrajbeso +ejrcfnsxv +tlupewdmcirygv +vjqrec + +hadxcqevfmr +hxdarvmfcqe +chdvexqmfr +vrhmxecq +ehoxqnrcumv + +wkdtuyegzqichna +uihqapcwdmteznykg +tnjrqcydihfgvwzbseuak +dagetcyqizhnuwk + +jie +bei +ei +eji + +td +t +t +t + +dbqvtxjeranwmofhigc +mtgcdevirwahnxjoqbf +cftanqvibjmhxgowyred + +iqgphzrawkevmjfds +jhifptdmra +jdxaobfypmnhirc +xtdamplhrfibj + +majypozns +pomjzusayn +zmspayjon +mjnzoaspy + +puvwane +avwpnue +ewvaun +dauqnevw + +jsvcumahzqktyp +obifedg +wnolrxg + +ewgot +odycnb +tjgwo + +di +id +id +di +idcw + +itovydpksgxmblqhun +ogxaiurvmhlsfwdbpzcy +gdemlsyaijofbpuvxhz + +kwdqozmvuegtsrxi +uyetkxigdwosq + +cw +cw +cw + +aoh +ano + +rnywdtil +dpvhtrf +tgblnpd +keactdx +tgrdzos + +mfip +impf +fmpi +impf +imfp + +kqpvbyjnewx +ywjxpknqzeb +nqeukpjbwxy +penxzqbjykw + +zpyjigfcuxdktarq +yapfiqrtdkcgjx +aepjcrbgyxftikdq +jptaiqdcykxrgf + +ftwedcvib +btcdfewl +ivdfwbtce +ftcdxeqbkwu +bvfeitwcd + +uiqj +qi + +oxghqnsd +udygoh +hdoxg +rpafchvogd + +hpbytijfwx +jywtpixhbsf +pwhyfjbxiqt +qtipwfjxbhy +xqhfbptywij + +dfslmxhie +smzwlfqehi + +kpr +stcve + +irt +rti +irt +rti + +bunl +nlb +lprhdby + +bo +ob +ob + +bowdlaegtqypmiz +wonjglmdyapqhike + +akwfdicyteo +kaoewyidtcf +wyafoeitckd +ctwaifokeyd + +usikpnl +plunkis +nliskuwp +upisnkl +alinspukr + +fmosyehatupnxcrbl +zmtfcoghsperajnbylxu +ltnfweypcbmarosxhu +fuabtspeojcrhknlmyx +pcmdlsoxrytevqfnbuahi + +tpjvhomdzurfsbqgxieynw +deopwshxkgtibylnzqmrfujv +bpxszafutyhgdenwvmqijro +ixtjfrpbozsngqwmduhyve +elfvxrhspguyinzjwtmbodq + +kvgqfjtzonx +lptjicfezk +tbxkfjmvz + +d +q +d +rg + +gvnmslbrqduhipyx +sygxvmblqrjhipau +ufirbqgpvhsklxmy +bhrpgqxmivyulzs + +mdfikeywgxsqlbn +ilqgnfbdkexymsw +mynqlfgeidbkxws +kndefxlymisbgqw +bmgfeiwxkndsqly + +firjqazycdmlpebwvkuh +nyopgcvhsxlujedkmfrq + +ctmupagrjydizes +hdqxglckzvabwi + +uogtnvfbwa +qkgxofaeictuvnj +ngfuolytshmvr + +bhgrcpltzvqjwfas +tchsrqzwbpgvafj +wgharjbsptqzfvc +qftchjazrgspbvw + +sbzjewryqhpxcivnk +expnzhsqykirbjcw +oyagjndwhkpxlqbmcrizefs + +sfhpqjndwvb +rjvbwnphsqfedm +ndbphlfwjvqs + +whrefxbvuma +hxmrubvfwea + +t +t +t + +favkeblzcnt +ymcz +xucgdszp +cjzrh +irpqwozc + +my +m +m + +alsknvxifqcpjymrz +fpjcrqzmlyxvsaikn + +yaj +ykanc +atx + +ilupyjozc +zcjbiolu +czjioulsg +cokzbjuil +auvmjzohqrwilc + +wsxunpgv +vgwsu +ugswvq +usafwhvg +gfwuqsv + +s +sw + +wvqdzfolabmirjc +ljwarzcmbfqodiv +aswzbmdjtnlfqovgxc + +znrmjsy +nsjrymz +ymrnzsj + +vpgac +dgjvpcua +vycgpfa +pvcga +rapvcg + +mb +mb +bmnt +bm + +gsnjzuby +wntqv +nhld + +onzrkyudwapxf +dkupywnraxof + +lmst +slmt +tldsmvp +tsmol +sltm + +s +n + +qsagxhkyeinrvb +kiyeqrnbgxvash +syerxqghivnkab +rqkasenivxghyb + +ncfrvqmgkahtpbozdjy +fvdzwkoam +lixodafekmzv +dokuazvfm +zdoakvfms + +vlhbq +ouqvrxhls +sfhqlvx + +qxorudp +peduq +qundp +qdpu + +rhpyabj +brycauhjp +apbhrxyj + +ygk +ktpy +kvyn +yvkn + +xkhagnmpdcv +hjoakl + +dxcjugqvpleairsytkh +rqndpilgchysvoeutxma + +njeikmhawblcdxoygufrpt +gnrxuicweofdtpkjhslamby +perifdanxhwtbzokgumyclj + +ghpdecujkxzltysfbv +xftkvhudgcplyjzesb +cbksuezftdjhwvxgipyl + +wxtz +wztx + +bcva +acvb +avcb + +oydfhxunzaijlpgeqb +qzeafxwrpiycndmogbj +finjbylagzdqxoep +pyqbjondvzgefixa +aonbixfejqdpgzy + +edzm +ejmz +mgliz + +q +qb +yn +glq +fwu + +whbkfvgpmjzdl +gzmvwpjdbltfh + +prkxeaoygt +zfrewaysbtx + +hoytqlezuxdmcnw +zqtyewudcfnomxh +hrxinwocqtdemzu +wzmjhquxdngcpoe + +pnwldbucofxq +nlwbcoqfxpud +icwpxnbodyqmluvf +ozfwdhclupxbqn +dcqonulbwpxf + +ywfjkqrgidnhbuea +aeyidkwghubrjqf +ihjrakdwbuefgqy +irdjgbwfeqaukyh +hyeujqrkiwdagfb + +jstapqk +wmeujqts +utzmwqjs +zxqbmstj +yrsthdignvqj + +yva +actvy + +okqvf +mfok +akfno +oakvf + +cdfugre +gedfucr +dfcerug + +ingczmjrfp +pmcfrgnijz +mepzjirfcgn +zsnmhpfguwircjq + +dpw +zlpwd +pwd +dpw + +wbzluvga +yiupsdj +yfu +ncfou +pfu + +fbxnrjdosah +rnfdasxjbhoz +nohdxufrjkabs + +dfgyeismzkr +nhukvdazrwgqisl +xbzkgsmderi +ksditprgzb +zkdsgir + +gjytlskbrhdcwfq +ljirabqwtygcosuhd + +bk +kbdi +yjk +ik + +ksquemnvtlxofj +xeqoflmadtunsvjkc +jtvnequxslfmok +qvnkmtxosljeuf + +zxqlnj +qzkjl +jqlz +jlqz +qjzl + +jniylks +jiyheksb +jydtiaks + +o +o +h + +e +e +e +e + +hrpgqasc +grpschqa +rzgcsjphq + +ecitkohxdb +okteihdcxb +xobijctedhk +ktboecaixhd + +paubelofzrwmsvhg +pagezysfb + +esgvqfzkijypan +zeivfdksgqapyrjn + +wi +i +inkm +i + +zcun +uc +uc +okcug + +trogu +oyrug +ozgrfuqn + +raj +oz +pbr + +iwhxjelgd +jiwhexldg +hlgjxdwei +jlwxhgeid +xhldjzgwtmief + +kclge +srlkec +kelc + +eofisurvqxh +ukvfrisqxoe +uexrqifsvo + +okdimecwvfuhrljtpxgyanbzqs +xacwijpeqlkbuvdsgofmtnzhyr + +amwgdsovpnryclfeit +rcwyfevgotlidanspm +vtneaoylpdifcrwgsm +tonlrdacsfigpyvewm +pisgdcmtovwfelnyra + +uetxnmzilhksb +kminofleutjwdpz +tmeculxqkzin +kqlimryetnavzu + +cmnjsbqvde +qmzdbnjsv +vngjtmpsbqd +dqnmspbvj +dmsqvjbn + +kgxdn +gxndf + +onpwxkus +sgnpkw +pwnrvks +sknbpwta +wopksn + +gfqylwtcvpjsk +cwvplskgfxty +lkgvywscptf +ogwspvfylktc + +dgbcvjfieurw +iknqeztowur + +fzsar +fno + +jiaxdfroq +rqhxjigaynd +iudjaqrx +qmxardfvji +qxjcdira + +ghfosy +yfgs +hfspb +fucaiq + +ynrbkleixc +sezybviarnl + +ywcanufmveh +vafuecjm + +qcrmvuihkboexdlftp +kufohcswxpearvbyqd +hrnzpkocxfdevqujbs +qoxuhjpfvbckdre +gkdfvpbheqocuxr + +wtk +ktw + +xcadnijfkvqystgluz +kznliathwoxsmvybrgeqf +klzsivxayqnfgut + +clo +lco +ocl +oacql +lco + +iyzkvsdhpngo +remlyvz + +uyzw +zuv +zu + +tq +t + +oeicrl +byxrsfdz +rcjog +cr +irck + +pgistdzl +y +xmq +m +afn + +g +dhg +g +vwg + +nfgtoy +ugyft +tygfo +futyegr +gstlwpkyf + +vn +nmv +vn +nv +nv + +ozivnfbaktuedlrcs +oramfqlcbuswtvdzjni + +jxp +xpj + +mc +wabq +lrgsuezypd +wiv + +eofl +snpkflyqmdzwb +jehlirf +cjflrh +fljc + +ltubcvkymoajwxzsrhndpgf +ogvibsazqtujrdewfxymph + +egdchpsvwjfaqybn +zndqagubwpkscyjh + +wlbjgnopeayszicrmf +nosbgiezpjaywqfmrlc +jgilbrmwosyzcafnep +agycorlqmzweibpjfsn +zjlrpnfbeasidmcgyowt + +vijh +ndsfcamyxz +woujvp + +uhealmbgtyix +zilxmb +pvxlfqmwsidb + +fjmdnvrbg +gdlvuqhkpb +kbczdvgp + +lqkt +tkjqi + +wcrmtpf +bkqws + +ngzltjq +nlkut +iwlrytn +xltsmnu +ztlnacfj + +exfviczl +iczhelxv +zelivxc +vfilzexcp +xlzvfice + +ytgac +tacyk +qacy +candymh + +yrqczhgfovwnisbu +vhlgknps + +sbwugclexy +wbzuhlgsc +umvwiknljcdotbfgs +rluhbcqgsaw + +vymaruskjc +akvrsmjuyc +vrcyuasmbjk +pursajkvycm +czpmyusvajrk + +ofwvqmlr +vmq +vmq + +ysnwieoauzq +nuyqesaowz +yoesanuwqz +kuzgoswayqnle + +eomivztrgn +ivmretong +invkmrge +vnmzegcri +vyrmflsjgiuen + +eqrmyzpvkwfbgtjlxshdoin +gzolfstrvybjeqnmxpikhd +nroxitkevgzmypjdqbsfhl +ofgmtrjilnbekxhsqyzdpv +dhlqnvgsjiyzbkpotxrefm + +hozruskcedfwiaq +coptzfyuvxldrm + +l +l +l + +dyslqoiw +ymjqdi + +syxnhbi +dpkvjr +eukgwozaf +ekjz + +yvwbgqcrotjlnpeha +lhpoetrgabvnqjwy +blgszmfkhyntepwoaixqrvj +byrpjoenhagwtuvql + +z +v +tgy + +d +d +d +d +d + +dc +dca +dc +cd +dcz + +locsfetpwknxbzgvja +jxgnvfzphceiskaotwl +fotrsavxmjyhnwpgzelck +sfvpqhxgyjeonazclmwkt +choefxapjniztgwlvskq + +kbyxoztlp +ilptzojgvnexw +atxmzkolcp +uqkszlopdxt + +zj +ojpz + +khjzinxbsvytagfwrdpclm +gkfnjmrsaxublcov +nxlacsrmgkvbfju +uagsxkrfmbvcjnl +kexajvcfrnlsmgb + +jwstzrmqyg +qiolxndue + +aljc +onxjpaltygwvucz +qacrjls +ajcfhl +ijqralc + +hinlgsoyjrwux +onlujsyxgirwh + +l +l +l +l +l + +eoqhmwpjxdkib +dpewgjm +epjmdw +edpnmjw +pjdewm + +wvhaks +vrgoah + +dvqanm +ladgcypwnmhjz +xsidnmae +fidranekum +datnmb + +vkashdfylrcigpz +fzpsydgrvwcl +kdpglscryfz +sgzqcytfoplebudmxr +ldzsywpjfrgc + +gtme +mgfptwe +tmge + +ameogqc +ogqcema +meocqag +ecmaoqg +oeamicgq + +jg +hgij +fjg + +dgypvjbrik +zriqkvgpdbjaxy + +ezfbiwhrtgl +ozfxebispgdtnv +btegzjafui + +jiabmdnuftcsgqw +kazroxypl + +mqoaxjcuzhngk +jgswxaykfmehvuiqzon +lbuakqzjhdmnxgo + +bacszqyketnvpguofhrwmx +ptszqxamuewikbngyfhvdroc +heqrcosaxtwgbplfnzuvykmj + +knxabluhoyviedjfpsmrqcw +scqixedwvumkoanjbrfyhl +tisjfuywcqnremhobldkaxv +shvojgwydialxekbmcufnrq + +nyxmrhszik +mapcikqstjfrzx + +gdlctrjzek +hjsgkeyr + +qepm +eqlpm +eqmp +mqxepn +pqem + +bvgkrl +vboc +wcbvziu +vqfpdabh + +gpn +ngmpc + +twpvxflgjqoumydkbc +uprelhcmqwdksixynzta + +h +h + +jhnxwesqrpc +vpsgmitbaoyfudjz + +yuwbhtsmjlcqefdv +ebmutvlfcqdsjhy +utswqzjlbvycpadefmh +sejvrxgqdlmbtouyhnfc +zijctvqmlyuahfbsdep + +dflwcg +mrflgw +wfduygl + +ytnlzrju +uvztnjly +zljbryutn +zyjlnut +tljuozyn + +hskjpotzxndciuveygqbf +tovpizqhkfjyxucsgdbne +zchinjfgpxuvqodbtseky +ewpzdvhbgqnkcfujixsoyt + +hwogmrjsanyfkxcuzlqip +zgefdbcrvawhsknxlup + +vpnoqlyctz +lazbrndtc +cbzlduthn +ztnslmcwkegjx + +g +g +g +mg + +scdpkxnwevjzuliaot +ieltzxk +etkilxz +ekrxizlmt +lztxefikb + +fojsglve + +mpdxfg +kfdxma +dkfxavtm +wnbxdmcof + +lsoytwjgnxfpu +jxnluyisgp +jygpxslnmur +npsjlguyx + +rdh +rdh + +apbutxfrwydzin +xrgnqelbdtoczafhjm +drkuztfnxba + +bdmstxhqnrzeyj +fubwrmohipenjclkgya + +usrxcktp +srxotup +rulpxit +euxptrn + +pryjxzemofknaqwh +owzqrhmknsjaedxyfb +ahkijzwfrmqnxolscvey +uqnxfkrwmatcsgeyohjz + +gq +q +q +q + +hbkieng +behdikgm +dkbeygh +ebgshk + +xcdliskjvqhazmgp +zdilgjchpavusmxk +jwxavzlkchdobmgyspi +vijgcxakdhlpqszm + +qkoxgd +zkuxdmbyqcglf + +hjxscnryl +nsmahy +snmhy +ovthdys + +vbwhoizkgsncaqr +waobkhsivcrznjqg +wzsrcgnabkhoqiv +oanbsyrhicgwvzkxq +hurqnbcgovfkawzis + +zxvbs +bdpn +qb +bv + +hdkixlmqovte +ihtrouqdnxlk +ltioudhqkx +bxidhtklufoqw + +s +scvai +s +sb +ws + +uaxeycr +aubsiqxrv +aohrdkxu +reaux + +trcfn +txbgc +tcp + +udrgmasezv +zotwyimlkq + +o +o +tdo +o + +ambertifpjuzvwk +dcyhwogqfiaxnlzps + +smzcqpikr +szmqcpkri +cqokmsrpzi + +tzkopc +pkcz +pckz + +avioqkyrntbesulwzp +oylhrtfzvainkuxbw + +hqieuv +hiqcu +ihwuq + +itfe +wcied +uvnigke +ltieq + +jrbmngvx +wousyqdiehcgk +ztfplg + +zdhewmyr +wjgqt +ynwdcef +kmvnwhfep +wyco + +x +x +x +x + +phkfsnxwce +dztiaygqu +jvrmltid + +ayhkqv +havyqk +vyhkaq +vyajenhgqk +vakhyq + +dxlepoksgznvuyjcihwqtf +lyqaihgexkcozwdsjnbtmfu +ysecldonhztfkruwxgjqi + +epo +azoeq +mfg +tbujywxr +eod + +myek +kmey +meky + +iwyngr +vishbag +kinsq +lzxoeticmudfp +nhjswiv + +fbtscavdzrkxeqyuhiw +orafstylxkgphmed +fehrsanktydx + +covl +ypkqdc +xzc +ejwsgafcbh +vcutm + +mlsfecori +ehpsya + +dpvgtqzocn +ngdvoqptzc +toqcdgvnpz +vdqptznocg +ncgzqdotvp + +adsqywe +msdeawq +edwaqs +vedwasnq +qdaswe + +bqmpnhvtoakiyr +roufkiapnqeym + +fydeiohqas +sqoycfhad +safyqhod +ghadsxfyqomv + +qdxmrofjwb +qwkidye +lgqyziawd + +erqsduihwmjcz +umericogzyjsqhn + +hsct +hsct +thcs +ctsh + +vtnbqai +qtianb + +tdwhrmbvyalqfojzicpxe +cltemhoxwbpqyrijvzad +wxjmpyzdqoeabichtrlv +ogzwhbdmtqxecvryjipla + +wnkjevsuqrtbfygih +jzagctiudpbqyfvhomkr +qtfkshvgryibujn + +qowgkyzsfetprnd +sgrdfepwnyzqtok +pgnrwdkzofyesqjt +wfcpkntezoyshgdlqr +dfrongetpszqwyk + +fdmxzviro +odcszimujfqaknx +xmoivfhdwz +yoidfzmvxbg + +nxmtopbehydczsrj +hrtspxjyiwczdngfb +uzjranxksdbltpyhv + +zoia +zioa +cazoi + +kwfnrcbjushlme +wsnmelhrjcubk + +lhf +hl +hl + +qvtia +vqal +ovqa +qva +valqy + +jxfkt +evhj +kgjo +puyasnjliz +xkmj + +cbhxvorjpgzd +dcbxgjhporzv +pjdbxhrogzvc +ogbrpjdvxzch + +ks +skh +sk diff --git a/resources/input07.txt b/resources/input07.txt new file mode 100644 index 0000000000000000000000000000000000000000..1390fba3afd7a0e2d60044dd00340162bbda4356 --- /dev/null +++ b/resources/input07.txt @@ -0,0 +1,594 @@ +mirrored gold bags contain 3 light teal bags. +clear gold bags contain 5 light maroon bags, 4 pale tomato bags, 5 clear blue bags. +dark olive bags contain 5 plaid black bags, 2 dim plum bags, 2 light cyan bags. +bright white bags contain 2 pale violet bags, 5 mirrored orange bags, 3 faded beige bags. +posh green bags contain 4 shiny gray bags. +posh lime bags contain 3 muted lavender bags, 1 clear magenta bag, 5 muted orange bags, 3 mirrored cyan bags. +striped turquoise bags contain 3 pale red bags, 4 wavy lime bags, 4 wavy aqua bags. +pale fuchsia bags contain 1 striped purple bag. +dark magenta bags contain 4 light indigo bags, 1 wavy lavender bag, 1 clear teal bag. +drab teal bags contain 5 pale bronze bags. +muted aqua bags contain 4 wavy bronze bags, 1 pale plum bag. +vibrant brown bags contain 4 dull turquoise bags. +vibrant green bags contain 5 dim violet bags, 2 dotted red bags, 2 dull indigo bags. +wavy black bags contain 3 posh yellow bags, 5 wavy coral bags. +light fuchsia bags contain 1 dull violet bag, 5 dim indigo bags, 4 plaid red bags, 5 dotted bronze bags. +drab bronze bags contain 5 dim tan bags, 4 mirrored yellow bags, 5 dim indigo bags. +plaid silver bags contain 4 pale orange bags. +wavy red bags contain 3 muted chartreuse bags, 4 light silver bags. +light aqua bags contain 4 dark cyan bags, 3 shiny aqua bags, 1 light olive bag, 3 wavy purple bags. +wavy salmon bags contain 1 shiny blue bag, 2 bright green bags, 5 dark beige bags. +vibrant indigo bags contain 4 drab lime bags, 5 plaid turquoise bags. +striped violet bags contain 3 dim violet bags, 3 striped purple bags. +dull salmon bags contain 5 vibrant turquoise bags, 5 muted black bags. +dark lavender bags contain 5 pale gold bags, 5 pale silver bags. +clear lavender bags contain 1 faded turquoise bag. +striped crimson bags contain 2 dull turquoise bags, 1 dotted red bag, 5 striped yellow bags. +posh chartreuse bags contain 2 wavy lavender bags, 2 striped black bags, 5 dim blue bags, 5 bright fuchsia bags. +clear tomato bags contain 1 mirrored violet bag, 4 pale gold bags, 5 bright bronze bags. +clear brown bags contain 3 plaid fuchsia bags. +pale aqua bags contain 3 pale indigo bags, 1 dark lime bag, 4 dim magenta bags. +bright maroon bags contain 4 wavy yellow bags, 4 bright tan bags, 2 posh indigo bags, 4 shiny white bags. +wavy purple bags contain 1 faded beige bag, 2 drab salmon bags, 3 mirrored yellow bags. +muted salmon bags contain 5 bright olive bags, 2 striped white bags, 3 dotted coral bags. +dotted maroon bags contain 4 striped brown bags. +wavy turquoise bags contain 1 dim indigo bag, 3 clear lavender bags. +muted tomato bags contain 2 wavy turquoise bags, 4 pale crimson bags. +faded teal bags contain 2 dotted yellow bags, 4 dull olive bags. +dotted blue bags contain 4 striped plum bags, 4 striped cyan bags, 2 drab bronze bags. +posh teal bags contain 2 vibrant purple bags, 4 plaid fuchsia bags, 2 light green bags, 3 light chartreuse bags. +muted gold bags contain 1 muted green bag, 1 vibrant brown bag, 5 pale crimson bags. +clear olive bags contain no other bags. +dotted beige bags contain 4 posh beige bags, 2 pale silver bags. +vibrant lavender bags contain 4 dark tomato bags, 5 dim black bags, 3 dim aqua bags. +wavy maroon bags contain 1 drab turquoise bag, 1 shiny indigo bag. +muted magenta bags contain 4 posh indigo bags, 4 faded brown bags. +dull tomato bags contain 1 pale green bag, 1 plaid gold bag, 5 plaid yellow bags, 5 mirrored blue bags. +mirrored black bags contain 5 drab crimson bags. +dull green bags contain 4 shiny orange bags. +dark cyan bags contain 3 pale gold bags. +faded black bags contain 2 clear beige bags, 4 bright red bags, 1 striped black bag. +wavy indigo bags contain 2 pale brown bags. +dim white bags contain 3 clear violet bags, 3 vibrant indigo bags. +muted green bags contain 1 bright white bag. +posh coral bags contain 3 shiny purple bags, 2 light brown bags, 3 pale gray bags, 1 dull turquoise bag. +dull white bags contain 5 bright plum bags, 5 light green bags, 3 plaid purple bags, 1 faded white bag. +bright salmon bags contain 3 dull indigo bags, 3 muted plum bags, 3 muted bronze bags. +dotted green bags contain 1 posh purple bag. +posh salmon bags contain 1 shiny brown bag, 2 dark red bags, 3 drab gold bags. +pale olive bags contain 4 shiny maroon bags, 3 shiny white bags, 2 dim lavender bags. +dotted lime bags contain 4 mirrored plum bags, 2 dotted blue bags, 3 light salmon bags. +dim blue bags contain 5 shiny lime bags, 5 wavy cyan bags, 3 dotted cyan bags, 5 vibrant turquoise bags. +dim gold bags contain 3 wavy lavender bags, 4 dark silver bags, 4 striped green bags, 4 posh plum bags. +drab lime bags contain 3 clear black bags. +dim red bags contain 1 mirrored olive bag, 1 plaid violet bag. +posh white bags contain 3 pale indigo bags, 1 pale black bag, 5 light green bags, 2 light maroon bags. +dim brown bags contain 5 dotted black bags, 5 dotted red bags. +drab gold bags contain 4 mirrored orange bags, 5 drab beige bags, 4 pale gold bags. +shiny green bags contain 5 mirrored gray bags, 4 pale maroon bags, 1 striped coral bag. +clear teal bags contain 3 vibrant crimson bags, 4 posh teal bags, 5 striped lime bags, 3 plaid green bags. +wavy coral bags contain 3 drab beige bags, 2 drab magenta bags. +plaid tan bags contain 4 faded yellow bags, 4 dull gray bags, 2 shiny lime bags. +shiny blue bags contain 1 faded white bag, 5 dull turquoise bags. +striped green bags contain 4 dull blue bags, 1 muted tan bag, 1 wavy lavender bag, 1 muted gray bag. +wavy tan bags contain 4 wavy bronze bags, 2 pale plum bags, 2 plaid indigo bags, 2 light lavender bags. +faded violet bags contain 5 dull turquoise bags, 4 bright orange bags, 5 drab lavender bags. +striped magenta bags contain 5 dotted orange bags, 5 wavy red bags. +drab beige bags contain 4 pale gold bags. +shiny coral bags contain 3 mirrored bronze bags. +faded indigo bags contain 5 clear violet bags, 5 vibrant fuchsia bags, 5 posh violet bags. +muted maroon bags contain 4 wavy coral bags. +pale violet bags contain 1 clear olive bag, 1 wavy fuchsia bag, 1 dull lime bag. +wavy chartreuse bags contain 2 faded blue bags. +faded purple bags contain 5 clear olive bags, 1 wavy orange bag, 2 posh beige bags, 1 mirrored salmon bag. +dull fuchsia bags contain 2 dark tan bags. +light gold bags contain 1 pale blue bag, 4 wavy cyan bags, 1 shiny chartreuse bag. +bright tan bags contain 2 shiny brown bags, 4 drab gold bags. +plaid fuchsia bags contain 4 shiny gold bags, 1 mirrored orange bag, 4 dark chartreuse bags, 1 faded tomato bag. +striped indigo bags contain 4 clear brown bags, 3 wavy silver bags, 1 plaid teal bag, 3 pale maroon bags. +drab salmon bags contain 1 wavy bronze bag, 2 pale violet bags, 5 plaid indigo bags. +muted teal bags contain 1 wavy maroon bag, 2 pale purple bags, 4 clear blue bags, 2 bright salmon bags. +clear violet bags contain 2 light chartreuse bags, 1 light silver bag, 4 dark brown bags. +posh red bags contain 4 light lavender bags, 4 plaid brown bags. +muted gray bags contain 1 pale olive bag. +posh black bags contain 1 muted maroon bag. +dotted silver bags contain 3 dull turquoise bags, 4 dotted black bags, 3 mirrored black bags. +wavy olive bags contain 3 dotted coral bags, 5 dim silver bags. +plaid olive bags contain 3 muted plum bags. +dim lavender bags contain 2 pale gold bags, 5 mirrored turquoise bags, 1 dull lime bag, 1 dull beige bag. +dark silver bags contain 4 light silver bags, 1 plaid fuchsia bag. +shiny tomato bags contain 2 pale coral bags, 4 dim lavender bags, 1 dim purple bag, 3 wavy magenta bags. +dull purple bags contain 1 shiny maroon bag. +wavy orange bags contain 2 dim black bags, 1 wavy aqua bag, 4 dull turquoise bags, 3 wavy bronze bags. +dim gray bags contain 2 faded bronze bags, 3 dull beige bags, 3 pale purple bags, 5 drab gold bags. +muted yellow bags contain 4 wavy aqua bags. +striped maroon bags contain 1 plaid plum bag, 5 dotted chartreuse bags, 3 dotted cyan bags, 2 bright plum bags. +muted white bags contain 2 dark blue bags, 4 posh aqua bags, 5 mirrored violet bags, 5 posh lavender bags. +wavy cyan bags contain 3 dim black bags, 2 striped lime bags. +striped teal bags contain 2 bright blue bags, 1 vibrant black bag. +posh olive bags contain 2 dim plum bags, 5 shiny turquoise bags, 1 vibrant tomato bag, 5 bright magenta bags. +dotted crimson bags contain 2 clear gray bags. +clear plum bags contain 4 vibrant teal bags. +vibrant chartreuse bags contain 4 posh bronze bags, 5 light purple bags. +vibrant teal bags contain 3 clear blue bags, 4 muted tan bags, 2 wavy fuchsia bags. +striped beige bags contain 4 faded tomato bags. +muted bronze bags contain 1 clear lavender bag, 4 mirrored gray bags. +light lavender bags contain 2 plaid turquoise bags. +dotted white bags contain 1 light yellow bag, 5 dull maroon bags, 5 posh brown bags, 2 clear olive bags. +pale teal bags contain 4 dark aqua bags, 5 dull violet bags. +wavy lime bags contain 2 drab red bags, 1 clear olive bag. +vibrant black bags contain 3 dim tan bags. +pale coral bags contain 5 dull gold bags. +plaid maroon bags contain 2 light fuchsia bags. +wavy aqua bags contain 5 dark coral bags, 5 mirrored orange bags, 3 muted aqua bags. +bright blue bags contain 3 faded bronze bags, 1 bright red bag, 5 mirrored coral bags. +wavy silver bags contain 1 posh olive bag, 1 shiny lime bag, 3 shiny beige bags. +faded maroon bags contain 1 dull tan bag. +light yellow bags contain 5 light lavender bags, 5 pale black bags, 1 plaid brown bag, 3 pale violet bags. +wavy fuchsia bags contain no other bags. +pale plum bags contain 4 light teal bags, 2 pale black bags, 1 pale green bag, 4 wavy bronze bags. +drab white bags contain 3 dark tan bags, 5 muted orange bags, 5 dull violet bags, 1 mirrored fuchsia bag. +pale salmon bags contain 5 faded violet bags, 1 clear cyan bag. +clear crimson bags contain 4 pale lavender bags, 1 dull turquoise bag, 2 mirrored blue bags. +posh gray bags contain 4 muted brown bags, 3 shiny teal bags. +dark aqua bags contain 1 shiny maroon bag, 5 dim brown bags, 4 striped maroon bags, 5 dim blue bags. +muted red bags contain 3 muted chartreuse bags, 4 wavy red bags, 1 drab tomato bag, 3 shiny yellow bags. +mirrored purple bags contain 2 clear blue bags, 2 mirrored lavender bags, 1 pale gold bag, 3 bright silver bags. +striped yellow bags contain 4 light silver bags, 2 dotted red bags, 3 mirrored black bags, 2 faded tomato bags. +dotted teal bags contain 1 drab bronze bag, 3 muted red bags, 5 mirrored gray bags, 4 bright olive bags. +clear turquoise bags contain 5 dim bronze bags, 3 faded silver bags, 1 dotted olive bag. +dull lavender bags contain 5 clear olive bags, 1 mirrored orange bag. +mirrored indigo bags contain 3 bright fuchsia bags, 3 dotted salmon bags. +shiny salmon bags contain 2 bright turquoise bags, 1 light plum bag. +plaid red bags contain 3 clear brown bags, 4 drab tomato bags, 2 plaid indigo bags. +drab black bags contain 5 dull maroon bags, 2 dark silver bags, 5 bright red bags, 5 bright cyan bags. +pale purple bags contain 5 light blue bags, 1 dull maroon bag. +plaid crimson bags contain 2 dark turquoise bags, 5 mirrored bronze bags, 5 dull gold bags, 2 posh yellow bags. +striped lime bags contain 2 wavy lime bags, 2 shiny teal bags. +plaid yellow bags contain 5 muted chartreuse bags. +dark violet bags contain 2 plaid fuchsia bags, 2 muted bronze bags, 3 posh green bags. +bright red bags contain 4 faded plum bags, 3 dim lavender bags. +striped purple bags contain 3 mirrored turquoise bags, 1 shiny yellow bag. +shiny red bags contain 4 wavy coral bags, 3 vibrant salmon bags. +striped cyan bags contain 2 dark yellow bags. +posh magenta bags contain 3 vibrant indigo bags, 2 pale violet bags, 3 bright fuchsia bags, 1 shiny teal bag. +drab cyan bags contain 3 plaid gold bags, 3 clear black bags, 5 striped green bags. +dim chartreuse bags contain 2 wavy coral bags, 2 striped black bags, 4 dotted tomato bags, 1 muted maroon bag. +faded beige bags contain 5 dim tomato bags, 3 plaid turquoise bags. +mirrored teal bags contain 4 posh silver bags, 3 dotted brown bags. +light turquoise bags contain 2 bright gray bags. +drab fuchsia bags contain 4 shiny brown bags, 1 muted olive bag. +mirrored bronze bags contain 3 dull turquoise bags, 3 mirrored turquoise bags, 2 drab red bags. +shiny fuchsia bags contain 3 striped gray bags, 3 faded blue bags. +dim beige bags contain 4 dark blue bags, 1 vibrant aqua bag, 2 shiny brown bags, 5 dull violet bags. +drab gray bags contain 1 wavy maroon bag. +drab orange bags contain 5 plaid brown bags, 1 vibrant yellow bag, 1 mirrored beige bag, 4 pale white bags. +dull magenta bags contain 4 light purple bags, 3 dark brown bags. +vibrant magenta bags contain 4 clear gray bags, 2 shiny aqua bags, 4 striped yellow bags, 3 shiny magenta bags. +drab tomato bags contain 5 drab crimson bags, 2 dull gold bags, 4 light silver bags. +wavy violet bags contain 3 faded plum bags. +mirrored fuchsia bags contain 1 mirrored black bag. +shiny white bags contain 4 light silver bags, 3 dotted fuchsia bags, 2 faded brown bags, 1 bright bronze bag. +clear chartreuse bags contain 4 plaid cyan bags, 1 striped gold bag. +muted turquoise bags contain 3 drab crimson bags, 3 drab olive bags. +faded aqua bags contain 1 dotted teal bag. +vibrant gold bags contain 2 light green bags, 1 dotted gold bag. +drab plum bags contain 5 dim salmon bags, 3 dotted teal bags. +dotted chartreuse bags contain 2 dull turquoise bags, 1 bright chartreuse bag, 4 faded tan bags, 1 mirrored lavender bag. +dull silver bags contain 1 mirrored indigo bag. +pale yellow bags contain 4 drab coral bags. +clear black bags contain 3 dim coral bags. +faded gold bags contain 3 faded chartreuse bags, 1 posh gray bag, 3 drab tomato bags. +muted chartreuse bags contain 1 clear olive bag. +shiny indigo bags contain 3 vibrant yellow bags, 2 plaid orange bags. +dull indigo bags contain 5 bright fuchsia bags, 2 shiny yellow bags, 2 plaid indigo bags, 4 bright olive bags. +faded silver bags contain 2 vibrant olive bags, 4 muted tomato bags. +pale green bags contain 1 pale red bag, 5 dull lavender bags, 4 clear olive bags. +dull violet bags contain 1 shiny black bag, 1 shiny fuchsia bag, 3 plaid indigo bags, 2 posh crimson bags. +dotted lavender bags contain 2 striped lavender bags. +clear orange bags contain 1 dotted cyan bag, 4 clear tomato bags. +bright crimson bags contain 1 dull black bag, 2 dim tomato bags, 1 drab bronze bag, 4 wavy orange bags. +dark orange bags contain 1 vibrant teal bag, 3 dull maroon bags, 4 light purple bags. +bright teal bags contain 5 mirrored tomato bags, 4 dull lime bags, 4 shiny olive bags. +vibrant beige bags contain 2 dark turquoise bags. +dark yellow bags contain 5 dark orange bags, 4 pale red bags, 2 striped fuchsia bags, 5 faded turquoise bags. +bright fuchsia bags contain 5 striped gray bags, 3 light teal bags, 5 mirrored orange bags. +clear maroon bags contain 2 dotted yellow bags, 1 mirrored green bag, 4 dotted coral bags, 3 dull indigo bags. +dim lime bags contain 3 dull fuchsia bags. +striped olive bags contain 5 wavy fuchsia bags, 2 light purple bags. +dull gray bags contain 4 dark beige bags, 1 mirrored white bag. +dim orange bags contain 5 mirrored white bags. +faded salmon bags contain 2 muted cyan bags. +clear red bags contain 2 dim violet bags, 1 shiny purple bag, 3 faded salmon bags, 2 mirrored brown bags. +plaid white bags contain 1 shiny aqua bag, 1 vibrant teal bag. +shiny violet bags contain 3 striped lime bags, 5 mirrored chartreuse bags, 3 pale red bags, 1 muted orange bag. +wavy green bags contain 2 dark tomato bags. +pale lavender bags contain 3 pale orange bags. +dark fuchsia bags contain 4 pale turquoise bags, 4 pale plum bags, 5 light purple bags, 3 dark beige bags. +posh indigo bags contain 2 pale violet bags, 5 shiny coral bags, 1 faded chartreuse bag, 2 plaid indigo bags. +light brown bags contain 1 posh black bag, 4 clear cyan bags. +faded red bags contain 1 drab maroon bag. +dark bronze bags contain 1 pale green bag, 4 shiny blue bags, 1 mirrored lime bag. +pale orange bags contain 4 plaid violet bags, 5 dim silver bags, 1 dim cyan bag, 3 clear blue bags. +dull brown bags contain 1 light tomato bag, 4 pale tomato bags. +mirrored plum bags contain 1 shiny tan bag, 5 wavy brown bags. +dull lime bags contain 4 mirrored orange bags. +drab yellow bags contain 3 clear teal bags, 3 posh aqua bags, 4 posh fuchsia bags, 3 posh turquoise bags. +bright cyan bags contain 5 muted lavender bags, 1 wavy purple bag. +drab chartreuse bags contain 1 wavy tan bag. +drab tan bags contain 5 drab bronze bags, 5 pale green bags, 1 wavy fuchsia bag. +shiny tan bags contain 1 pale red bag, 5 clear aqua bags. +dotted black bags contain 2 dim black bags. +dull blue bags contain 3 clear blue bags, 5 bright gold bags, 4 pale tomato bags, 4 drab beige bags. +light olive bags contain 2 mirrored salmon bags, 2 drab violet bags, 2 bright beige bags. +mirrored magenta bags contain 4 drab tomato bags, 5 clear teal bags, 3 dark coral bags, 5 shiny white bags. +bright silver bags contain 1 posh brown bag. +vibrant blue bags contain 3 clear tan bags. +dark indigo bags contain 3 dim aqua bags, 5 bright aqua bags. +bright brown bags contain 3 muted purple bags, 1 muted blue bag, 1 light green bag, 1 dark red bag. +dark salmon bags contain 3 dotted fuchsia bags, 2 dim tan bags. +mirrored maroon bags contain 2 posh purple bags. +faded crimson bags contain 1 posh white bag, 2 muted blue bags, 3 dark fuchsia bags, 3 light red bags. +bright lavender bags contain 4 bright chartreuse bags, 5 muted purple bags, 4 dull aqua bags, 1 shiny blue bag. +mirrored orange bags contain no other bags. +wavy bronze bags contain no other bags. +wavy yellow bags contain 2 mirrored yellow bags, 1 muted maroon bag, 2 striped purple bags, 4 pale silver bags. +drab magenta bags contain 3 dim indigo bags, 2 wavy bronze bags, 5 shiny yellow bags. +wavy blue bags contain 3 mirrored gold bags, 3 shiny lavender bags, 1 dim teal bag, 4 clear crimson bags. +clear purple bags contain 2 dark beige bags. +light cyan bags contain 1 dotted white bag, 5 muted yellow bags, 1 wavy lime bag. +clear yellow bags contain 2 plaid olive bags, 1 muted red bag, 1 mirrored bronze bag, 5 striped violet bags. +light plum bags contain 5 dotted fuchsia bags, 4 vibrant white bags, 5 muted red bags, 5 drab red bags. +vibrant fuchsia bags contain 1 posh green bag. +pale maroon bags contain 5 light purple bags, 5 shiny aqua bags, 3 clear teal bags, 2 clear green bags. +dark teal bags contain 2 dark lavender bags, 4 striped black bags, 1 drab lime bag, 2 dim teal bags. +clear fuchsia bags contain 2 shiny violet bags, 4 posh aqua bags, 4 bright red bags. +dotted magenta bags contain 2 dull olive bags, 1 clear magenta bag, 5 light beige bags, 1 dark brown bag. +muted black bags contain 2 clear blue bags, 2 muted red bags. +dim magenta bags contain 4 plaid silver bags, 4 plaid olive bags. +striped lavender bags contain 4 clear blue bags. +dull beige bags contain no other bags. +wavy lavender bags contain 2 shiny blue bags, 3 faded tomato bags, 5 dotted tan bags, 5 dull maroon bags. +light maroon bags contain 5 dim violet bags, 3 wavy turquoise bags, 3 mirrored salmon bags. +plaid green bags contain 1 dim teal bag, 5 pale brown bags, 2 striped chartreuse bags. +shiny plum bags contain 1 posh lavender bag, 3 vibrant red bags, 5 dark maroon bags, 1 dotted bronze bag. +plaid turquoise bags contain 4 light silver bags. +dim cyan bags contain 1 shiny coral bag, 4 bright lime bags. +shiny lime bags contain 3 wavy green bags, 5 posh white bags, 1 striped purple bag. +dim maroon bags contain 1 muted crimson bag. +dim aqua bags contain 1 dotted silver bag, 3 faded blue bags, 4 striped purple bags. +muted blue bags contain 2 posh yellow bags, 3 bright tan bags, 1 vibrant salmon bag. +vibrant olive bags contain 5 clear aqua bags. +plaid black bags contain 3 striped orange bags. +vibrant violet bags contain 2 pale gold bags. +light bronze bags contain 1 shiny maroon bag, 3 light blue bags. +pale magenta bags contain 5 pale tomato bags. +vibrant yellow bags contain 4 striped gray bags, 4 dotted yellow bags, 1 wavy fuchsia bag, 3 wavy purple bags. +shiny black bags contain 5 shiny yellow bags, 3 light purple bags, 1 pale olive bag, 1 clear blue bag. +dim crimson bags contain 5 posh gray bags, 1 bright chartreuse bag. +plaid salmon bags contain 2 wavy fuchsia bags, 1 posh olive bag, 2 dim tan bags. +shiny cyan bags contain 5 light green bags, 1 clear olive bag, 5 pale olive bags. +pale silver bags contain 3 mirrored orange bags, 1 light lavender bag, 2 faded tomato bags, 1 muted chartreuse bag. +light red bags contain 4 shiny gray bags, 4 wavy salmon bags, 4 clear lime bags. +dark turquoise bags contain 4 mirrored orange bags, 4 vibrant brown bags, 4 striped brown bags, 4 mirrored purple bags. +dark gray bags contain 1 pale violet bag, 5 striped turquoise bags, 2 wavy red bags, 2 light bronze bags. +pale gray bags contain 5 drab tan bags, 3 clear gray bags. +striped gold bags contain 2 dotted beige bags. +muted cyan bags contain 2 light bronze bags, 3 clear green bags. +faded white bags contain 3 striped tomato bags, 4 shiny black bags, 2 drab tomato bags. +clear lime bags contain 3 dotted fuchsia bags, 3 vibrant purple bags, 1 shiny bronze bag, 3 muted green bags. +dull bronze bags contain 5 plaid turquoise bags, 4 dark crimson bags, 3 pale yellow bags, 3 posh chartreuse bags. +mirrored cyan bags contain 4 clear olive bags, 2 vibrant purple bags, 4 dull olive bags. +pale bronze bags contain 3 vibrant purple bags, 4 dotted silver bags, 2 mirrored black bags. +pale blue bags contain 1 dark brown bag, 2 light brown bags, 2 drab lime bags. +clear bronze bags contain 4 clear blue bags, 2 light chartreuse bags, 1 pale violet bag. +clear aqua bags contain 2 clear cyan bags. +plaid plum bags contain 3 faded plum bags. +mirrored lime bags contain 4 posh brown bags. +plaid lavender bags contain 1 bright beige bag, 5 bright lime bags, 4 faded aqua bags. +drab crimson bags contain 2 shiny yellow bags, 1 posh brown bag. +shiny beige bags contain 2 muted aqua bags, 1 vibrant purple bag, 4 pale black bags, 3 dark chartreuse bags. +dim green bags contain 4 bright yellow bags, 1 shiny fuchsia bag, 1 wavy tomato bag, 4 shiny black bags. +drab coral bags contain 5 dark coral bags. +posh turquoise bags contain 1 dim violet bag, 2 faded turquoise bags. +dotted plum bags contain 2 dull salmon bags, 5 light green bags, 3 pale red bags, 2 posh yellow bags. +posh yellow bags contain 1 mirrored salmon bag, 1 drab tomato bag, 3 dark tomato bags, 2 dark chartreuse bags. +faded orange bags contain 1 drab yellow bag. +dull teal bags contain 2 plaid crimson bags, 5 shiny violet bags, 1 dull coral bag. +faded brown bags contain 5 muted red bags. +bright chartreuse bags contain 5 clear lime bags. +mirrored tan bags contain 4 striped lavender bags, 4 light plum bags. +clear indigo bags contain 5 plaid fuchsia bags, 2 plaid brown bags, 5 striped gray bags. +light teal bags contain 1 dull beige bag, 1 mirrored turquoise bag, 1 mirrored orange bag, 5 wavy bronze bags. +shiny gold bags contain 2 dark coral bags, 1 mirrored orange bag. +striped white bags contain 5 dull fuchsia bags. +wavy white bags contain 5 dull chartreuse bags, 5 wavy green bags. +mirrored beige bags contain 4 bright white bags, 5 plaid magenta bags, 3 plaid crimson bags, 1 shiny teal bag. +muted purple bags contain 5 pale black bags, 5 wavy aqua bags. +vibrant crimson bags contain 5 dim bronze bags, 2 vibrant plum bags. +striped aqua bags contain 3 plaid cyan bags, 3 light beige bags, 2 drab cyan bags. +dull crimson bags contain 1 light white bag, 3 drab indigo bags, 1 clear fuchsia bag. +clear magenta bags contain 4 light brown bags. +posh maroon bags contain 1 faded plum bag, 3 light olive bags. +bright violet bags contain 2 dotted bronze bags, 4 clear teal bags, 3 striped magenta bags, 3 muted indigo bags. +faded coral bags contain 5 dark violet bags, 3 plaid teal bags. +faded bronze bags contain 5 dotted fuchsia bags, 5 wavy bronze bags, 2 dotted purple bags, 5 dim black bags. +light beige bags contain 2 shiny olive bags. +mirrored white bags contain 1 dark indigo bag, 1 drab maroon bag, 3 shiny beige bags, 5 light blue bags. +muted silver bags contain 4 wavy lime bags, 1 dark tomato bag, 1 bright fuchsia bag, 4 dotted olive bags. +wavy gray bags contain 2 mirrored turquoise bags, 5 light lavender bags, 3 muted chartreuse bags. +clear salmon bags contain 5 bright tomato bags, 2 wavy aqua bags. +dull turquoise bags contain 1 pale tomato bag. +shiny yellow bags contain 4 dull lime bags, 3 shiny maroon bags, 3 light silver bags. +mirrored aqua bags contain 3 posh magenta bags, 4 drab tomato bags. +dull orange bags contain 5 dim teal bags, 3 light olive bags, 2 light magenta bags, 2 plaid orange bags. +plaid blue bags contain 3 pale purple bags, 1 shiny turquoise bag. +dim olive bags contain 3 shiny tomato bags, 4 dim black bags, 1 light plum bag. +dim fuchsia bags contain 1 dark chartreuse bag, 1 mirrored cyan bag, 3 plaid red bags. +dark plum bags contain 1 light yellow bag, 1 mirrored lime bag, 2 bright salmon bags. +faded tomato bags contain 2 muted chartreuse bags, 4 dark chartreuse bags. +dotted aqua bags contain 2 dull lavender bags, 4 pale tomato bags. +plaid lime bags contain 3 vibrant indigo bags, 1 muted red bag, 1 posh silver bag, 1 dim indigo bag. +vibrant lime bags contain 5 drab turquoise bags, 2 vibrant chartreuse bags, 4 clear blue bags. +posh brown bags contain 2 wavy red bags, 2 drab beige bags. +bright beige bags contain 3 faded blue bags, 4 muted red bags, 5 mirrored lavender bags, 2 pale red bags. +dotted yellow bags contain 5 striped gray bags, 3 pale gold bags, 2 clear olive bags, 5 mirrored yellow bags. +dull gold bags contain 5 clear tomato bags, 5 drab beige bags, 4 bright silver bags, 4 drab crimson bags. +dark maroon bags contain 2 wavy turquoise bags, 4 dark chartreuse bags. +drab olive bags contain 4 faded bronze bags. +posh plum bags contain 2 dull tan bags. +light indigo bags contain 2 wavy yellow bags. +vibrant tan bags contain 5 shiny teal bags. +dim purple bags contain 5 light olive bags, 5 mirrored violet bags. +vibrant gray bags contain 3 bright turquoise bags, 4 dim maroon bags, 4 vibrant chartreuse bags, 2 faded turquoise bags. +pale tan bags contain 2 light salmon bags, 3 dotted silver bags, 5 clear lime bags, 1 shiny teal bag. +dark tan bags contain 5 dim indigo bags, 3 shiny beige bags, 5 dim tan bags, 2 pale black bags. +dotted tomato bags contain 3 shiny black bags, 3 pale crimson bags, 2 dim tan bags. +posh violet bags contain 4 posh crimson bags, 1 muted fuchsia bag, 4 pale cyan bags, 3 mirrored gold bags. +clear tan bags contain 2 bright tan bags, 5 faded beige bags. +bright bronze bags contain no other bags. +dotted brown bags contain 2 dotted black bags, 3 wavy coral bags. +muted violet bags contain 3 faded magenta bags, 3 bright magenta bags. +faded plum bags contain 2 dull lime bags, 4 dim coral bags, 5 shiny maroon bags, 3 pale red bags. +dark lime bags contain 4 dim tomato bags. +dull aqua bags contain 4 drab beige bags, 4 drab maroon bags. +posh purple bags contain 2 vibrant purple bags, 5 shiny gold bags, 2 plaid turquoise bags. +dull plum bags contain 5 dark brown bags, 4 muted black bags, 1 striped lavender bag. +faded turquoise bags contain 3 shiny yellow bags, 4 faded plum bags, 5 pale violet bags, 4 dim lavender bags. +striped bronze bags contain 1 muted bronze bag, 4 clear green bags, 4 shiny fuchsia bags, 5 pale red bags. +mirrored blue bags contain 4 clear tomato bags, 5 shiny orange bags, 1 dull beige bag, 1 striped silver bag. +shiny orange bags contain 2 light bronze bags, 4 dark tomato bags, 2 drab gold bags. +shiny gray bags contain 1 dark maroon bag. +drab red bags contain 5 wavy purple bags. +posh fuchsia bags contain 3 mirrored chartreuse bags, 3 vibrant teal bags. +light crimson bags contain 2 shiny aqua bags, 2 plaid chartreuse bags, 1 shiny gold bag, 1 wavy maroon bag. +vibrant white bags contain 1 shiny brown bag, 5 light purple bags, 4 dull olive bags, 5 clear cyan bags. +dark green bags contain 5 drab indigo bags, 1 striped coral bag. +striped fuchsia bags contain 5 vibrant plum bags. +bright turquoise bags contain 1 striped fuchsia bag, 3 posh purple bags, 5 dim aqua bags. +striped tan bags contain 1 dotted cyan bag. +shiny magenta bags contain 2 dark yellow bags, 1 faded silver bag, 4 muted orange bags, 3 bright fuchsia bags. +dim violet bags contain 4 wavy bronze bags, 1 bright bronze bag. +vibrant orange bags contain 2 faded chartreuse bags, 2 vibrant turquoise bags, 2 dull white bags. +pale gold bags contain 5 light lavender bags, 4 mirrored orange bags, 4 muted chartreuse bags. +pale red bags contain no other bags. +plaid brown bags contain 3 mirrored orange bags. +posh aqua bags contain 5 light blue bags, 1 dark indigo bag, 1 pale red bag, 2 vibrant turquoise bags. +muted lime bags contain 1 dim chartreuse bag, 1 dotted olive bag, 4 pale violet bags, 3 muted fuchsia bags. +dotted fuchsia bags contain 4 light teal bags, 1 muted chartreuse bag, 3 dark chartreuse bags, 4 dim lavender bags. +dim turquoise bags contain 4 clear beige bags, 1 posh magenta bag, 3 faded brown bags. +muted coral bags contain 4 dark salmon bags, 1 pale tomato bag, 2 shiny brown bags. +dull chartreuse bags contain 3 shiny white bags, 4 shiny blue bags, 1 pale crimson bag. +muted indigo bags contain 4 posh silver bags, 1 pale maroon bag, 1 dotted red bag, 1 drab coral bag. +dim salmon bags contain 5 pale black bags, 3 dark salmon bags, 3 pale red bags, 5 dotted purple bags. +dotted bronze bags contain 1 dim aqua bag, 2 mirrored maroon bags, 4 muted olive bags, 3 dull fuchsia bags. +drab silver bags contain 2 dim coral bags, 3 dim salmon bags. +striped salmon bags contain 2 dotted purple bags, 2 posh green bags, 3 plaid beige bags. +mirrored tomato bags contain 5 faded tomato bags, 4 wavy red bags. +dotted cyan bags contain 1 posh white bag, 3 striped lime bags, 4 dotted purple bags, 2 muted red bags. +striped blue bags contain 4 dark silver bags, 4 pale silver bags. +faded green bags contain 3 dotted violet bags, 3 pale turquoise bags. +striped gray bags contain 2 pale tomato bags, 2 dark chartreuse bags, 5 muted red bags, 3 pale violet bags. +pale lime bags contain 4 posh maroon bags, 2 drab plum bags, 3 drab coral bags. +posh beige bags contain 4 wavy purple bags, 2 shiny gold bags, 1 dark tan bag. +dotted tan bags contain 2 bright silver bags, 1 posh bronze bag, 2 dim coral bags, 2 dim tomato bags. +shiny brown bags contain 4 dim violet bags, 5 bright silver bags. +mirrored silver bags contain 1 striped blue bag, 2 shiny teal bags, 2 light coral bags, 1 dim beige bag. +clear silver bags contain 4 mirrored fuchsia bags, 5 dull olive bags, 1 plaid crimson bag. +dotted orange bags contain 1 mirrored turquoise bag, 3 wavy lime bags, 3 dotted yellow bags, 5 muted lavender bags. +shiny purple bags contain 1 shiny beige bag, 3 plaid chartreuse bags. +drab brown bags contain 2 dull indigo bags, 3 mirrored cyan bags, 1 dim crimson bag. +vibrant tomato bags contain 5 faded plum bags. +light tan bags contain 1 dark gold bag, 3 light salmon bags. +vibrant cyan bags contain 4 shiny aqua bags. +dotted purple bags contain 4 wavy coral bags. +vibrant red bags contain 4 faded tan bags, 1 drab aqua bag, 4 striped black bags. +faded lime bags contain 3 light olive bags, 3 striped yellow bags. +posh gold bags contain 1 dull indigo bag, 1 mirrored chartreuse bag. +shiny aqua bags contain 2 vibrant turquoise bags. +light orange bags contain 3 vibrant violet bags, 2 dotted yellow bags, 1 dark gray bag, 5 striped chartreuse bags. +pale black bags contain 1 plaid brown bag, 2 muted chartreuse bags. +drab violet bags contain 5 clear cyan bags, 1 pale gold bag, 4 drab salmon bags, 2 posh orange bags. +dim silver bags contain 5 clear cyan bags. +muted beige bags contain 1 dim tomato bag, 3 light olive bags. +drab turquoise bags contain 3 plaid orange bags, 1 light purple bag. +dark red bags contain 2 vibrant yellow bags, 4 mirrored fuchsia bags, 5 posh bronze bags, 2 dark gold bags. +vibrant maroon bags contain 5 drab beige bags, 1 dark beige bag, 1 dark brown bag, 4 pale maroon bags. +wavy magenta bags contain 3 light tomato bags, 5 muted gold bags, 3 muted cyan bags. +shiny chartreuse bags contain 5 pale yellow bags. +dull cyan bags contain 4 bright maroon bags, 4 faded bronze bags. +light black bags contain 4 shiny teal bags, 5 faded beige bags, 1 muted gold bag, 4 plaid silver bags. +bright green bags contain 5 striped lime bags, 4 muted yellow bags, 4 light beige bags, 4 plaid violet bags. +striped orange bags contain 1 mirrored orange bag, 2 bright salmon bags. +muted plum bags contain 3 mirrored orange bags, 1 muted chartreuse bag, 2 dull olive bags, 4 dull brown bags. +pale white bags contain 5 light silver bags. +mirrored gray bags contain 1 mirrored violet bag, 5 striped gray bags, 5 dim aqua bags, 4 wavy fuchsia bags. +wavy beige bags contain 2 shiny beige bags. +dotted red bags contain 4 dotted purple bags, 3 muted aqua bags, 2 pale tomato bags, 4 pale bronze bags. +posh lavender bags contain 2 dotted tomato bags, 3 dim lavender bags, 2 muted gray bags, 3 light plum bags. +mirrored yellow bags contain 4 wavy gold bags. +wavy brown bags contain 3 dim fuchsia bags, 4 dull turquoise bags. +plaid chartreuse bags contain 5 plaid red bags. +shiny turquoise bags contain 2 faded turquoise bags, 3 muted tan bags. +mirrored brown bags contain 4 dotted fuchsia bags, 4 dim red bags, 2 dotted plum bags. +dim tan bags contain 1 drab tomato bag, 3 wavy red bags, 1 plaid turquoise bag, 2 clear lavender bags. +faded yellow bags contain 1 clear bronze bag, 3 clear olive bags. +bright orange bags contain 5 mirrored blue bags, 3 shiny blue bags. +striped red bags contain 5 bright green bags, 3 wavy yellow bags. +bright indigo bags contain 2 light maroon bags, 5 shiny bronze bags, 2 bright white bags. +light gray bags contain 2 dotted maroon bags. +light silver bags contain no other bags. +bright gold bags contain 2 striped fuchsia bags. +drab purple bags contain 5 light silver bags, 2 dull yellow bags, 2 shiny teal bags. +mirrored coral bags contain 4 dim plum bags. +light coral bags contain 3 dim lavender bags, 5 wavy green bags, 2 light bronze bags. +plaid indigo bags contain 3 mirrored orange bags, 5 pale gold bags. +dark crimson bags contain 4 dark turquoise bags, 4 plaid green bags, 4 clear fuchsia bags. +wavy teal bags contain 1 pale silver bag, 4 mirrored chartreuse bags, 4 shiny black bags. +dull tan bags contain 4 muted magenta bags. +light violet bags contain 4 faded yellow bags, 5 light maroon bags, 3 clear teal bags, 2 pale crimson bags. +striped silver bags contain 3 plaid fuchsia bags. +shiny crimson bags contain 5 muted yellow bags. +mirrored salmon bags contain 1 dim tan bag. +dotted coral bags contain 5 dark tan bags. +wavy gold bags contain 2 wavy turquoise bags, 4 dim indigo bags, 3 wavy bronze bags. +vibrant bronze bags contain 1 pale purple bag. +posh silver bags contain 4 posh chartreuse bags, 3 bright salmon bags, 1 dotted bronze bag, 3 shiny coral bags. +bright purple bags contain 5 clear beige bags, 3 pale yellow bags, 1 wavy tomato bag, 5 pale lavender bags. +muted tan bags contain 4 bright white bags, 5 dotted silver bags, 2 clear blue bags, 4 mirrored turquoise bags. +light white bags contain 2 shiny purple bags, 1 dull aqua bag, 2 vibrant blue bags. +faded fuchsia bags contain 2 dark green bags, 3 shiny violet bags, 4 drab plum bags, 3 vibrant olive bags. +clear gray bags contain 2 muted red bags. +dark tomato bags contain 4 dotted purple bags, 3 faded turquoise bags. +light magenta bags contain 1 dull fuchsia bag. +light purple bags contain 3 drab magenta bags, 4 dark coral bags, 3 light silver bags. +vibrant turquoise bags contain 4 dotted black bags. +dim indigo bags contain 4 muted chartreuse bags. +dim bronze bags contain 3 drab gold bags, 4 clear brown bags, 2 muted tan bags. +clear green bags contain 2 plaid fuchsia bags, 1 wavy bronze bag. +dull maroon bags contain 2 wavy yellow bags, 1 dotted fuchsia bag, 4 mirrored yellow bags. +dotted gray bags contain 5 dotted white bags, 2 pale tomato bags, 5 bright tan bags, 3 plaid turquoise bags. +plaid gray bags contain 5 wavy lime bags, 4 dull aqua bags. +mirrored crimson bags contain 1 shiny lavender bag, 4 plaid purple bags. +shiny silver bags contain 5 vibrant lavender bags, 3 light coral bags, 5 dark aqua bags. +dotted salmon bags contain 3 pale tomato bags. +muted crimson bags contain 4 clear olive bags, 3 dull plum bags, 1 dark gray bag, 1 wavy lime bag. +muted lavender bags contain 1 bright chartreuse bag, 3 pale yellow bags, 3 pale crimson bags. +posh tan bags contain 4 faded tomato bags, 3 dotted olive bags, 4 striped maroon bags. +vibrant salmon bags contain 4 vibrant indigo bags, 1 plaid orange bag. +faded chartreuse bags contain 2 mirrored orange bags, 1 pale crimson bag. +striped tomato bags contain 3 dim tan bags, 2 wavy gold bags. +dim yellow bags contain 1 clear purple bag, 1 wavy red bag, 1 drab bronze bag. +wavy tomato bags contain 5 dotted tomato bags, 3 dim salmon bags, 5 light tan bags, 3 dull brown bags. +bright lime bags contain 3 mirrored turquoise bags, 3 dotted tan bags, 3 posh black bags, 5 wavy gold bags. +muted brown bags contain 4 shiny indigo bags, 4 muted tan bags, 3 wavy tan bags. +pale cyan bags contain 1 dotted black bag. +drab green bags contain 1 muted cyan bag. +dim teal bags contain 4 faded lavender bags, 2 pale violet bags. +drab lavender bags contain 1 pale gold bag, 5 vibrant brown bags, 4 posh indigo bags, 1 plaid olive bag. +dotted turquoise bags contain 2 muted lime bags, 4 striped indigo bags. +clear white bags contain 2 bright lime bags, 1 mirrored coral bag. +dark purple bags contain 5 wavy crimson bags, 5 light olive bags. +light tomato bags contain 4 posh black bags, 1 faded blue bag, 5 dim black bags, 3 dull lime bags. +bright aqua bags contain 3 clear tomato bags. +bright tomato bags contain 1 clear green bag, 3 bright gray bags, 3 mirrored cyan bags, 5 posh chartreuse bags. +dull yellow bags contain 5 wavy purple bags, 3 light purple bags, 5 clear cyan bags, 2 wavy coral bags. +striped coral bags contain 3 mirrored black bags, 5 wavy coral bags, 2 posh white bags. +shiny bronze bags contain 2 dim tomato bags, 3 dull lime bags. +vibrant aqua bags contain 4 dull olive bags, 4 mirrored turquoise bags, 1 vibrant teal bag. +faded magenta bags contain 3 plaid chartreuse bags, 5 plaid white bags, 1 drab lime bag, 3 mirrored fuchsia bags. +pale beige bags contain 3 wavy gray bags, 5 mirrored tomato bags, 1 bright beige bag. +pale crimson bags contain 1 pale violet bag, 4 pale black bags, 5 dim tomato bags, 1 mirrored turquoise bag. +dark blue bags contain 4 dark maroon bags, 1 faded brown bag, 2 wavy red bags. +posh tomato bags contain 2 posh beige bags, 4 dark maroon bags. +dim plum bags contain 2 muted crimson bags, 1 striped coral bag, 2 plaid yellow bags, 5 striped violet bags. +dull black bags contain 3 posh tomato bags, 1 vibrant yellow bag, 4 mirrored salmon bags, 2 light green bags. +wavy plum bags contain 4 wavy blue bags. +bright coral bags contain 4 posh gold bags, 2 plaid lime bags, 3 shiny black bags, 5 dim magenta bags. +posh blue bags contain 2 dotted turquoise bags, 2 bright olive bags, 2 plaid gold bags. +vibrant purple bags contain 2 mirrored orange bags, 4 dull lavender bags, 2 pale red bags. +dark white bags contain 4 drab lime bags. +wavy crimson bags contain 2 dark salmon bags, 5 wavy yellow bags, 2 bright bronze bags, 2 drab crimson bags. +clear coral bags contain 4 vibrant blue bags. +muted olive bags contain 3 plaid brown bags, 1 dim fuchsia bag, 2 posh yellow bags. +plaid violet bags contain 4 muted aqua bags. +plaid teal bags contain 4 bright tan bags, 2 dark tomato bags. +plaid purple bags contain 3 posh teal bags. +pale turquoise bags contain 2 faded purple bags, 4 mirrored maroon bags, 1 mirrored salmon bag. +muted fuchsia bags contain 5 bright bronze bags, 4 muted gold bags. +bright olive bags contain 2 faded blue bags, 3 faded turquoise bags, 5 light bronze bags, 3 dim tan bags. +bright gray bags contain 1 bright white bag, 2 muted orange bags. +light blue bags contain 1 dotted purple bag, 3 dim black bags, 3 posh purple bags, 2 mirrored violet bags. +posh bronze bags contain 3 plaid fuchsia bags, 1 drab gold bag, 4 mirrored orange bags, 4 light teal bags. +faded olive bags contain 3 striped blue bags, 3 dim salmon bags, 4 pale red bags, 2 dull maroon bags. +dull coral bags contain 2 wavy gold bags, 1 dark magenta bag. +dull olive bags contain 3 plaid turquoise bags, 3 plaid fuchsia bags, 4 wavy lime bags, 1 dotted black bag. +plaid orange bags contain 1 dark salmon bag, 1 striped turquoise bag. +clear blue bags contain 3 dim tan bags, 3 muted red bags, 3 faded tomato bags. +dark chartreuse bags contain 4 bright bronze bags, 1 dim indigo bag. +plaid tomato bags contain 5 shiny turquoise bags, 4 clear tan bags, 2 dotted bronze bags, 5 muted magenta bags. +mirrored green bags contain 2 light silver bags, 3 light brown bags, 4 vibrant purple bags, 2 posh green bags. +drab blue bags contain 4 drab indigo bags. +vibrant silver bags contain 3 striped violet bags, 1 striped white bag, 2 bright blue bags. +shiny olive bags contain 3 drab tomato bags. +dull red bags contain 4 dim cyan bags, 3 wavy lime bags. +vibrant plum bags contain 3 wavy coral bags, 2 light lavender bags. +faded cyan bags contain 1 dim brown bag, 5 posh indigo bags. +dotted violet bags contain 1 pale tomato bag, 5 dim plum bags. +striped brown bags contain 5 dim coral bags, 4 clear blue bags. +dotted indigo bags contain 5 clear salmon bags, 4 dim bronze bags. +posh cyan bags contain 2 vibrant magenta bags. +clear beige bags contain 1 bright olive bag. +dark black bags contain 4 dull crimson bags, 3 plaid green bags. +mirrored lavender bags contain 5 dark silver bags. +bright black bags contain 4 shiny brown bags, 1 vibrant crimson bag, 2 posh white bags, 3 wavy gold bags. +pale indigo bags contain 5 shiny gold bags, 3 light bronze bags, 3 striped turquoise bags. +plaid cyan bags contain 1 shiny tan bag, 4 dark tan bags, 1 dull yellow bag. +bright plum bags contain 1 pale chartreuse bag, 3 plaid red bags, 1 faded beige bag, 1 posh gray bag. +drab maroon bags contain 3 dull olive bags, 1 pale green bag, 2 mirrored turquoise bags. +pale chartreuse bags contain 4 dim tomato bags. +striped black bags contain 4 vibrant turquoise bags, 3 faded white bags, 4 light plum bags, 1 pale black bag. +dotted gold bags contain 5 posh teal bags, 5 striped violet bags. +posh orange bags contain 1 clear green bag. +light green bags contain 5 wavy turquoise bags, 2 pale red bags, 3 dark tomato bags, 3 dull turquoise bags. +plaid beige bags contain 4 light silver bags, 4 plaid turquoise bags, 5 drab purple bags, 4 clear lime bags. +mirrored violet bags contain 2 wavy fuchsia bags, 5 bright bronze bags. +striped plum bags contain 2 plaid indigo bags, 5 bright yellow bags, 1 wavy magenta bag. +bright yellow bags contain 3 wavy yellow bags. +drab aqua bags contain 5 dark red bags, 2 light gold bags. +plaid bronze bags contain 1 drab magenta bag. +faded tan bags contain 4 shiny aqua bags, 2 light chartreuse bags. +drab indigo bags contain 5 dotted beige bags, 3 dull lime bags, 1 striped violet bag, 4 vibrant tan bags. +dark gold bags contain 4 mirrored lime bags, 3 dark salmon bags. +muted orange bags contain 1 dull yellow bag, 2 shiny brown bags. +plaid gold bags contain 4 drab coral bags, 5 shiny cyan bags. +posh crimson bags contain 3 light brown bags, 3 bright bronze bags, 3 shiny yellow bags. +bright magenta bags contain 5 dim lavender bags. +light chartreuse bags contain 2 drab bronze bags, 3 dim coral bags. +dim tomato bags contain no other bags. +dark beige bags contain 3 mirrored yellow bags, 2 dull olive bags, 5 striped brown bags. +clear cyan bags contain 5 drab beige bags, 1 shiny yellow bag, 5 wavy purple bags, 5 dark chartreuse bags. +dark coral bags contain 3 dim lavender bags, 3 pale green bags, 4 mirrored orange bags, 1 dim coral bag. +light lime bags contain 5 mirrored brown bags. +shiny lavender bags contain 5 drab tan bags. +faded lavender bags contain 1 light salmon bag, 2 dotted purple bags, 5 pale gold bags, 3 muted gold bags. +pale tomato bags contain 5 dim coral bags. +plaid coral bags contain 3 dull blue bags, 1 posh white bag, 3 light orange bags. +dim coral bags contain no other bags. +dotted olive bags contain 5 mirrored green bags, 3 drab aqua bags, 2 dull beige bags, 3 dim indigo bags. +dark brown bags contain 1 muted tan bag, 5 wavy lime bags. +mirrored red bags contain 5 vibrant aqua bags, 3 bright gray bags, 4 striped gray bags, 2 light lavender bags. +mirrored olive bags contain 5 dark chartreuse bags, 1 dim lavender bag, 5 faded plum bags. +dim black bags contain 1 shiny yellow bag, 4 plaid indigo bags. +shiny maroon bags contain 1 mirrored orange bag, 1 muted chartreuse bag, 5 wavy bronze bags, 1 dull lavender bag. +pale brown bags contain 4 light teal bags, 1 light plum bag, 3 bright aqua bags. +striped chartreuse bags contain 2 shiny maroon bags. +mirrored chartreuse bags contain 4 dotted tan bags, 4 bright bronze bags. +plaid magenta bags contain 1 vibrant yellow bag, 5 wavy aqua bags, 5 dull turquoise bags, 2 wavy fuchsia bags. +light salmon bags contain 3 muted tan bags, 3 faded turquoise bags, 4 drab bronze bags, 3 bright bronze bags. +faded blue bags contain 1 wavy red bag, 5 wavy fuchsia bags, 4 bright bronze bags, 3 faded turquoise bags. +plaid aqua bags contain 1 pale tan bag, 3 light white bags. +mirrored turquoise bags contain 5 drab beige bags, 1 faded plum bag, 4 mirrored orange bags. +shiny teal bags contain 2 pale black bags, 4 dull indigo bags, 4 vibrant teal bags. +vibrant coral bags contain 3 drab turquoise bags, 4 striped beige bags, 1 wavy turquoise bag, 4 light crimson bags. +faded gray bags contain 3 striped purple bags. diff --git a/resources/input08.txt b/resources/input08.txt new file mode 100644 index 0000000000000000000000000000000000000000..2aacf1d97e45e6bedf087c8d108304b404723bb1 --- /dev/null +++ b/resources/input08.txt @@ -0,0 +1,636 @@ +jmp +1 +acc -15 +acc +14 +acc +18 +jmp +443 +jmp +286 +acc +27 +jmp +522 +jmp +1 +acc -19 +acc +22 +acc +37 +jmp +111 +acc +28 +acc +43 +acc +18 +nop +597 +jmp +479 +jmp +604 +jmp +499 +acc +0 +acc +22 +acc +13 +jmp +566 +acc -12 +acc +0 +nop +153 +jmp +173 +jmp +192 +jmp +292 +acc +36 +acc +7 +jmp +440 +acc -17 +acc +40 +acc +24 +acc -7 +jmp +519 +nop +16 +acc +15 +acc +42 +jmp +445 +jmp +350 +acc +42 +acc +12 +acc +2 +jmp +133 +acc +12 +acc +3 +acc +27 +jmp +186 +acc +25 +acc +46 +jmp +285 +acc +32 +acc -11 +acc -6 +jmp +565 +nop +215 +acc +1 +acc +35 +jmp +1 +jmp +502 +acc +27 +acc +19 +acc -8 +acc -8 +jmp +531 +jmp -21 +nop +292 +acc +8 +acc -13 +jmp +26 +acc +1 +acc +45 +nop -42 +jmp +323 +jmp +39 +jmp +336 +acc +19 +jmp -51 +acc +45 +acc +26 +jmp +278 +jmp +6 +acc +40 +nop +271 +acc -10 +nop -4 +jmp +272 +nop -61 +acc +4 +acc -14 +acc +27 +jmp -70 +acc -9 +acc +29 +jmp +416 +acc +25 +acc +45 +jmp +19 +jmp +39 +acc -19 +acc +7 +jmp +248 +acc +11 +acc +36 +jmp +515 +acc +45 +acc +49 +jmp +329 +acc +30 +acc +31 +acc +28 +acc +26 +jmp +8 +jmp +283 +acc +32 +jmp +127 +acc +4 +acc +20 +jmp +92 +jmp +50 +jmp +133 +acc +5 +acc +8 +jmp +313 +acc +38 +acc +34 +jmp +395 +acc +14 +acc +29 +jmp +392 +nop +246 +jmp +374 +nop +429 +nop +388 +acc +3 +acc +0 +jmp +432 +acc -1 +acc +35 +acc +35 +jmp +148 +acc +8 +acc +11 +acc +12 +acc -10 +jmp +434 +acc -19 +jmp +330 +nop +329 +acc +30 +jmp +239 +acc -6 +jmp -136 +jmp +418 +nop +385 +jmp +1 +acc +34 +acc +9 +jmp +410 +nop -13 +acc +31 +acc +15 +acc +37 +jmp -142 +jmp +109 +acc -16 +nop +405 +nop +343 +jmp +8 +acc +44 +acc -15 +acc +7 +acc +9 +jmp +185 +acc +6 +jmp +35 +nop -25 +jmp +93 +acc +22 +acc -17 +acc +15 +acc +39 +jmp +41 +nop -123 +acc +15 +acc +6 +jmp -35 +acc +48 +jmp +422 +acc -7 +nop +67 +nop +66 +acc +48 +jmp -29 +acc -11 +acc +16 +jmp +92 +acc +45 +jmp +92 +jmp +212 +acc -3 +acc -18 +nop -186 +nop +7 +jmp -28 +nop +292 +acc +7 +nop -120 +acc +46 +jmp +48 +acc -3 +acc -16 +acc +50 +jmp -44 +acc -2 +acc -11 +jmp +236 +jmp +344 +acc +33 +acc +44 +acc +39 +nop -45 +jmp -53 +acc -11 +nop +380 +acc +35 +jmp +113 +nop +203 +acc +40 +jmp +167 +acc +44 +jmp +394 +jmp +229 +jmp -167 +jmp -204 +acc +21 +acc +49 +jmp +25 +acc -19 +acc -17 +acc +44 +jmp -11 +acc +40 +acc +12 +jmp +253 +acc +21 +jmp +349 +jmp +285 +acc +0 +nop +261 +acc +15 +acc +38 +jmp +10 +acc +27 +jmp +1 +jmp +373 +jmp -151 +acc +6 +jmp -48 +acc +14 +acc -8 +jmp -61 +acc +8 +acc +20 +jmp +1 +jmp +1 +jmp +208 +acc -18 +acc +32 +jmp +94 +jmp +262 +acc +0 +jmp -156 +nop +188 +nop +312 +acc +21 +acc +6 +jmp -123 +acc +47 +jmp +316 +acc +25 +nop +290 +jmp +62 +acc -7 +acc +36 +nop +212 +acc +14 +jmp +332 +jmp +291 +jmp +226 +acc +30 +jmp -161 +acc +39 +acc +38 +jmp +203 +nop +63 +nop -6 +acc -15 +nop -56 +jmp +72 +acc +1 +acc +34 +acc +22 +acc +19 +jmp -135 +acc +27 +jmp -303 +acc +1 +acc +48 +acc -19 +jmp +142 +acc +50 +jmp +298 +acc +43 +acc +0 +acc +50 +acc +12 +jmp +137 +acc +41 +nop +252 +jmp -310 +acc +13 +acc +34 +acc -15 +acc +43 +jmp +236 +acc +5 +acc -8 +acc +25 +acc +45 +jmp +153 +acc -12 +acc +31 +acc -1 +jmp +120 +jmp +236 +acc +38 +nop -238 +jmp -328 +jmp +81 +acc +48 +acc +15 +acc -9 +jmp -73 +nop -49 +jmp -271 +acc -17 +acc -17 +jmp +106 +nop +212 +jmp -290 +acc +36 +nop +109 +jmp +186 +jmp -310 +acc +4 +acc +16 +jmp +117 +jmp +1 +acc +10 +jmp +20 +acc +12 +jmp -311 +acc +12 +acc +30 +nop +182 +jmp -315 +acc +25 +acc +12 +acc +30 +jmp +50 +acc -19 +jmp -333 +acc +30 +nop +87 +jmp -199 +acc +8 +jmp +112 +acc -8 +jmp -313 +acc +7 +acc +32 +jmp +1 +jmp +230 +acc +25 +acc +45 +acc +20 +acc +0 +jmp -307 +acc +30 +nop -253 +acc +7 +acc +39 +jmp -113 +acc -12 +jmp +209 +acc +42 +acc +17 +acc -19 +acc +24 +jmp -170 +acc +30 +acc +9 +acc -1 +jmp -328 +acc +19 +acc +45 +jmp +132 +nop -244 +nop +35 +jmp +34 +acc -10 +acc +26 +acc +35 +nop -238 +jmp +54 +acc +15 +nop -378 +acc +42 +jmp -43 +acc -9 +acc -5 +acc -11 +nop -307 +jmp -129 +nop -202 +acc -9 +nop -376 +acc +11 +jmp -75 +jmp +14 +acc -1 +acc +32 +acc -14 +acc +16 +jmp +39 +acc +42 +acc +32 +jmp -133 +acc +1 +acc +17 +nop +85 +acc +35 +jmp +83 +acc +27 +acc +0 +acc -12 +jmp -93 +acc +48 +acc +35 +nop +154 +jmp -287 +jmp -347 +jmp -348 +acc +18 +jmp -374 +acc -15 +jmp +36 +jmp -123 +acc -11 +jmp +55 +acc +19 +acc +23 +jmp -339 +nop +5 +acc +44 +acc +2 +jmp +1 +jmp -417 +acc +23 +jmp -253 +acc -9 +acc -3 +jmp -138 +jmp -227 +acc +12 +jmp -437 +acc +47 +acc +19 +acc -6 +jmp -245 +acc +2 +jmp -328 +acc -14 +acc +25 +acc +4 +acc -2 +jmp -411 +jmp -351 +jmp -459 +acc +3 +acc +48 +jmp -134 +nop +54 +acc -14 +jmp -298 +jmp -401 +acc -14 +acc +25 +nop -55 +acc -10 +jmp -312 +acc -7 +acc +45 +jmp -74 +acc +30 +jmp -462 +acc +5 +acc -8 +jmp -355 +acc +9 +acc +44 +acc +44 +jmp -150 +jmp -484 +acc +14 +acc +19 +acc -6 +jmp -474 +acc -18 +jmp -166 +jmp -264 +acc -15 +acc +17 +acc +29 +jmp -149 +nop -273 +acc +31 +acc +0 +acc -2 +jmp -410 +jmp -411 +acc +47 +acc -6 +nop -287 +jmp -436 +acc +4 +nop +88 +jmp -158 +acc +32 +jmp +1 +acc -15 +jmp -319 +acc -6 +acc -18 +acc +49 +jmp -256 +acc -18 +acc +31 +acc +27 +acc +27 +jmp -351 +jmp +58 +acc +12 +jmp +1 +acc +32 +nop -151 +jmp -411 +acc +19 +acc +7 +jmp -287 +acc +30 +jmp -496 +acc -11 +acc +5 +acc +42 +acc +25 +jmp -249 +acc -1 +jmp -243 +jmp -190 +acc +32 +acc +32 +acc +14 +jmp +12 +acc +5 +acc +30 +acc +34 +jmp -46 +acc -13 +acc +5 +acc +45 +jmp -271 +acc +29 +acc +37 +jmp -323 +nop -18 +acc -2 +acc +21 +acc -12 +jmp -453 +acc -14 +acc +19 +nop -173 +jmp -411 +acc +24 +acc -7 +nop -136 +acc +6 +jmp -357 +acc -1 +acc -1 +acc +32 +jmp -264 +acc +26 +jmp -175 +acc +10 +acc +35 +nop -361 +jmp -493 +acc +14 +jmp -206 +jmp -138 +acc -1 +jmp -156 +acc +3 +acc +11 +acc -2 +jmp -213 +acc +35 +acc -13 +acc +47 +acc +45 +jmp -376 +jmp -543 +jmp -479 +acc +29 +jmp -532 +acc +28 +acc +47 +acc -11 +acc -14 +jmp +1 diff --git a/src/aoc/core.clj b/src/aoc/core.clj new file mode 100644 index 0000000000000000000000000000000000000000..5e738f4897f54572cff41ae3c096fa75cc098eff --- /dev/null +++ b/src/aoc/core.clj @@ -0,0 +1,7 @@ +(ns aoc.core + (:gen-class)) + +(defn -main + "I don't do a whole lot ... yet." + [& args] + (println "Hello, World!")) diff --git a/src/aoc/day01.clj b/src/aoc/day01.clj new file mode 100644 index 0000000000000000000000000000000000000000..7631b42a348e9e0331be0f9dcf109196919bc51d --- /dev/null +++ b/src/aoc/day01.clj @@ -0,0 +1,48 @@ +(ns aoc.day01 + (:require [clojure.java.io :as io])) + +(defn lines [s] + (clojure.string/split s #"\n")) + +;; ------------ + +(defn read-input [] + (->> "input01.txt" + io/resource + slurp + lines + (map read-string))) + +(defn produce-matches-1 [input] + (for [x input] + (for [y input] + (when (= 2020 (+ x y)) + [x y])))) + +(defn compute-1 [input] + (->> (produce-matches-1 input) + flatten + (remove nil?) + (take 2) + (apply *))) + +(defn produce-matches-2 [input] + (for [x input] + (for [y input] + (for [z input] + (when (= 2020 (+ x y z)) + [x y z]))))) + +(defn compute-2 [input] + (->> (produce-matches-2 input) + flatten + (remove nil?) + (take 3) + (apply *))) + +(defn main [] + (let [input (read-input)] + (println (compute-1 input)) + (println (compute-2 input)))) + +(main) diff --git a/src/aoc/day02.clj b/src/aoc/day02.clj new file mode 100644 index 0000000000000000000000000000000000000000..becd7e95d1e05aada5d2962eb60b4bf68211cd12 --- /dev/null +++ b/src/aoc/day02.clj @@ -0,0 +1,81 @@ +(ns aoc.day02 + (:require [clojure.java.io :as io])) + +(def example "1-3 a: abcde +1-3 b: cdefg +2-9 c: ccccccccc") + +;; https://gist.github.com/edbond/665401 +(defmacro xor + "Evaluates exprs one at a time, from left to right. If only one form returns + a logical true value (neither nil nor false), returns true. If more than one + value returns logical true or no value returns logical true, retuns a logical + false value. As soon as two logically true forms are encountered, no + remaining expression is evaluated. (xor) returns nil." + ([] nil) + ([f & r] + `(loop [t# false f# '[~f ~@r]] + (if-not (seq f#) t# + (let [fv# (eval (first f#))] + (cond + (and t# fv#) false + (and (not t#) fv#) (recur true (rest f#)) + :else (recur t# (rest f#)))))))) + +(defn parse-line [line] + (zipmap [:min :max :letter :password] + (rest + (re-find #"(\d+)-(\d+) (\w): (\w+)" line)))) + +(defn string-to-char [s] + (first (char-array s))) + +(defn password-valid? [p] + (let [min (read-string (:min p)) + max (read-string (:max p)) + freqs (frequencies (:password p)) + letter (string-to-char (:letter p)) + letter-count (get freqs letter 0)] + (and + (>= letter-count min) + (<= letter-count max)))) + +(defn password-valid-2? [p] + (let [pass (:password p) + idx-1 (get pass (dec (read-string (:min p)))) + idx-2 (get pass (dec (read-string (:max p)))) + letter (string-to-char (:letter p))] + (xor + (= idx-1 letter) + (= idx-2 letter)))) + +(defn check-passwords [acc val] + (if (password-valid? val) + (inc acc) + acc)) + +(defn check-passwords-2 [acc val] + (if (password-valid-2? val) + (inc acc) + acc)) + +;; ---- + +(defn read-input [] + (->> (io/resource "input02.txt") + slurp + clojure.string/split-lines + (map parse-line))) + +(defn compute-1 [input] + (reduce check-passwords 0 input)) + +(defn compute-2 [input] + (reduce check-passwords-2 0 input)) + +(defn main [] + (let [input (read-input)] + (println (compute-1 input)) + (println (compute-2 input)))) + +(main) diff --git a/src/aoc/day03.clj b/src/aoc/day03.clj new file mode 100644 index 0000000000000000000000000000000000000000..9b3ee50ca76655faec3e48d657bfabffb1bd3ab3 --- /dev/null +++ b/src/aoc/day03.clj @@ -0,0 +1,73 @@ +(ns aoc.day03 + (:require [clojure.java.io :as io])) + +(def example + "..##....... +#...#...#.. +.#....#..#. +..#.#...#.# +.#...##..#. +..#.##..... +.#.#.#....# +.#........# +#.##...#... +#...##....# +.#..#...#.#") + +(def paths + [[1 1] + [3 1] + [5 1] + [7 1] + [1 2]]) + +(defn read-input [] + (->> (slurp (io/resource "input03.txt")) + clojure.string/split-lines)) + +(defn all-coordinates [[x y]] + (iterate (fn [[xx yy]] + [(+ x xx) + (+ y yy)]) + [0 0])) + +(defn tree? [s] + (= s \#)) + +(defn count-trees [lines] + (fn [acc [x y]] + (let [line (nth lines y) + spot (nth line x)] + (if (tree? spot) + (inc acc) + acc)))) + +(defn compute [input coords] + (let [infinite-lines (map cycle input) + needed-coords (take-while #(< (second %) + (count input)) + coords)] + (reduce (count-trees infinite-lines) 0 needed-coords))) + +;; ---------------------------------------------------------------------------- + +(defn compute-1 [input] + (let [infinite-lines (map cycle input) + infinite-coords (all-coordinates [3 1]) + needed-coords (take-while #(< (second %) + (count input)) infinite-coords)] + (reduce (count-trees infinite-lines) 0 needed-coords))) + +(defn compute-2 [input] + (let [c (partial compute input) + coords (map all-coordinates paths)] + (->> coords + (map c) + (apply *)))) + +(defn main [] + (let [input (read-input)] + (println (compute-1 input)) + (println (compute-2 input)))) + +(main) diff --git a/src/aoc/day04.clj b/src/aoc/day04.clj new file mode 100644 index 0000000000000000000000000000000000000000..9d16cca19bb465a1e41db1f36b82311ff15f4a7c --- /dev/null +++ b/src/aoc/day04.clj @@ -0,0 +1,90 @@ +(ns aoc.day04 + (:require [clojure.java.io :as io])) + +(def fields #{:byr :iyr :eyr :hgt :hcl :ecl :pid :cid}) + +(def height-pattern #"(\d+)(cm|in)") + +(def hcolor-pattern #"#[a-f0-9]{6}") + +(def eye-color-set #{"amb" "blu" "brn" "gry" "grn" "hzl" "oth"}) + +(def pid-pattern #"\d{9}") + +(def validation + {:byr (fn [v] + (when (= 4 (count v)) + (let [n (read-string v)] + (<= 1920 n 2002)))) + :iyr (fn [v] + (when (= 4 (count v)) + (let [n (read-string v)] + (<= 2010 n 2020)))) + :eyr (fn [v] + (when (= 4 (count v)) + (let [n (read-string v)] + (<= 2020 n 2030)))) + :hgt (fn [v] + (when-let [[_ digits u] (re-find height-pattern v)] + (let [n (read-string digits)] + (case u + "cm" (<= 150 n 193) + "in" (<= 59 n 76))))) + :hcl (fn [v] + (re-matches hcolor-pattern v)) + :ecl (fn [v] + (contains? eye-color-set v)) + :pid (fn [v] + (re-matches pid-pattern v)) + :cid (fn [v] true)}) + +(def optional-fields (set [:cid])) + +(def required-fields + (clojure.set/difference fields optional-fields)) + +(defn collect-pair [acc p] + (let [[k v] (clojure.string/split p #":")] + (assoc acc (keyword k )v))) + +(defn parse-passport [s] + (let [lines (clojure.string/split-lines s) + joined (clojure.string/join " " lines) + pairs (clojure.string/split joined #" ")] + (reduce collect-pair {} pairs))) + +(defn valid? [p] + (let [pfields (set (keys p))] + (= + (clojure.set/intersection required-fields pfields) + required-fields))) + +(defn valid-2? [p] + (when (valid? p) + (let [ok (map (fn [field] + (let [f (get validation field (constantly true)) + v (get p field)] + (f v))) + required-fields)] + (every? identity ok)))) + +;; ----------------------------------------------------------------------------- + +(defn read-input [] + (->> (clojure.string/split (slurp (io/resource "input04.txt")) #"\n\n") + (map parse-passport))) + +(defn compute-1 [input] + (count + (filter valid? input))) + +(defn compute-2 [input] + (count + (filter valid-2? input))) + +(defn main [] + (let [input (read-input)] + (println (compute-1 input)) + (println (compute-2 input)))) + +(main) diff --git a/src/aoc/day05.clj b/src/aoc/day05.clj new file mode 100644 index 0000000000000000000000000000000000000000..3e80f6789d380702945f82d149e973770e2782d5 --- /dev/null +++ b/src/aoc/day05.clj @@ -0,0 +1,65 @@ +(ns aoc.day05 + (:require [clojure.java.io :as io])) + +(def example "FBFBBFFRLR") ;; 44 5 + +(defn reduce-range [lower upper] + (fn [coll direction] + (let [size (/ (count coll) 2)] + (condp = direction + lower (take size coll) + upper (drop size coll))))) + +(defn find-row [directions] + (first + (reduce + (reduce-range \F \B) + (range 0 128) + directions))) + +(defn find-column [directions] + (first + (reduce + (reduce-range \L \R) + (range 0 8) + directions))) + +(defn find-seat [boarding-pass] + {:row (find-row (take 7 boarding-pass)) + :column (find-column (drop 7 boarding-pass))}) + +(defn seat-id [{:keys [row column]}] + (+ (* row 8) + column)) + +(defn read-input [] + (->> (slurp (io/resource "input05.txt")) + (clojure.string/split-lines))) + +(defn compute-1 [input] + (->> input + (map find-seat) + (map seat-id) + sort + reverse + first)) + +(defn all-seat-ids [input] + (->> input + (map find-seat) + (map seat-id) + sort)) + +(defn compute-2 [input] + (let [seat-ids (all-seat-ids input) + coll (range (first seat-ids) (inc (last seat-ids)))] + (clojure.set/difference + (set coll) + (set seat-ids)))) + +(defn main [] + (let [input (read-input)] + (println (compute-1 input)) + (println (compute-2 input)))) + +(main) diff --git a/src/aoc/day06.clj b/src/aoc/day06.clj new file mode 100644 index 0000000000000000000000000000000000000000..2b5fa69763a0bb472325cc7c86fb03467a275cde --- /dev/null +++ b/src/aoc/day06.clj @@ -0,0 +1,52 @@ +(ns aoc.day06 + (:require [clojure.java.io :as io])) + +(def example "abc + +a +b +c + +ab +ac + +a +a +a +a + +b") + +(defn group-said-yes [group] + (apply clojure.set/union + (map set group))) + +(defn group-all-said-yes [group] + (apply clojure.set/intersection + (map set group))) + +;; ---- + +(defn read-input [] + (->> (clojure.string/split (slurp (io/resource "input06.txt")) #"\n\n") + (map clojure.string/split-lines))) + +(defn compute-1 [input] + (->> input + (map group-said-yes) + (map count) + (apply +)) + ) + +(defn compute-2 [input] + (->> input + (map group-all-said-yes) + (map count) + (apply +))) + +(defn main [] + (let [input (read-input)] + (println (compute-1 input)) + (println (compute-2 input)))) + +(main) diff --git a/src/aoc/day07.clj b/src/aoc/day07.clj new file mode 100644 index 0000000000000000000000000000000000000000..e9198658d042efbdeb103cbbb168166e3f15dd6b --- /dev/null +++ b/src/aoc/day07.clj @@ -0,0 +1,99 @@ +(ns aoc.day07 + (:require [clojure.java.io :as io])) + +(def example + "light red bags contain 1 bright white bag, 2 muted yellow bags. +dark orange bags contain 3 bright white bags, 4 muted yellow bags. +bright white bags contain 1 shiny gold bag. +muted yellow bags contain 2 shiny gold bags, 9 faded blue bags. +shiny gold bags contain 1 dark olive bag, 2 vibrant plum bags. +dark olive bags contain 3 faded blue bags, 4 dotted black bags. +vibrant plum bags contain 5 faded blue bags, 6 dotted black bags. +faded blue bags contain no other bags. +dotted black bags contain no other bags.") + +(def rule-pattern #"(\d+) (\w+ \w+)") +(def mine "shiny gold") + +(defn parse-sub [s] + (let [[_ number color] (re-find rule-pattern s)] + {:color color + :number (read-string number)})) + +(defn parse-contents [s] + (when-not (clojure.string/starts-with? s "no") + (let [rules (clojure.string/split s #", ")] + (map parse-sub rules)))) + +(defn parse-rule [s] + (let [[bag contents] (clojure.string/split s #" contain ") + [shade color _] (clojure.string/split bag #" ") + contents (parse-contents contents)] + {:color (str shade " " color) + :contents contents})) + +(defn graph [rules] + (reduce (fn [acc {:keys [color contents]}] + (reduce (fn [acc content] + (update acc (:color content) conj {:color color + :number (:number content)})) + acc contents)) + {} rules)) + +(defn graph2 [rules] + (reduce (fn [acc {:keys [color contents]}] + (reduce (fn [acc2 content] + (update acc2 color conj content)) + acc contents)) + {} rules)) + +(defn get-parents [graph color] + (get graph color)) + +(defn fold [g] + (loop [r (into #{} (->> (get-parents g mine) + (map :color)))] + (let [r2 (reduce (fn [acc color] + (into acc + (->> + (get-parents g color) + (map :color)))) + r r)] + (if (= r r2) + r + (recur r2))))) + +(defn count-contents [g c] + (let [contents (get-parents g c)] + (println "con" contents) + (if (seq contents) + (reduce + (fn [acc {:keys [color number]}] + (+ acc (* number (count-contents g color)))) + 1 + contents) + 1))) + +;; --- + +(defn read-input [] + (->> (slurp (io/resource "input07.txt")) + (clojure.string/split-lines))) + +(defn compute-1 [input] + (let [rules (map parse-rule input) + g (graph rules)] + (count (fold g)))) + +(defn compute-2 [input] + (let [rules (map parse-rule input) + g (graph2 rules)] + (dec + (count-contents g mine)))) + +(defn main [] + (let [input (read-input)] + (println (compute-1 input)) + (println (compute-2 input)))) + +(main) diff --git a/src/aoc/day08.clj b/src/aoc/day08.clj new file mode 100644 index 0000000000000000000000000000000000000000..a969f09d5caf70362723efedd8a951a63e8986b2 --- /dev/null +++ b/src/aoc/day08.clj @@ -0,0 +1,96 @@ +(ns aoc.day08 + (:require [clojure.java.io :as io]) + +(def example "nop +0 +acc +1 +jmp +4 +acc +3 +jmp -3 +acc -99 +acc +1 +jmp -4 +acc +6") + +(def example-terminating "nop +0 +acc +1 +jmp +4 +acc +3 +jmp -3 +acc -99 +acc +1 +nop -4 +acc +6") + +(defn parse-instruction [s] + (let [[op n] (clojure.string/split s #" ")] + (assoc {} + :op (keyword op) + :value (read-string n)))) + +(defn accumulate [acc value] + (if (>= value 0) + (+ acc value) + (- acc value))) + +(defn step [acc index {:keys [op value]}] + (case op + :acc [(+ acc value) (inc index)] + :jmp [acc (+ index value)] + :nop [acc (inc index)])) + +(defn run-computer [coll] + (loop [index 0 + acc 0 + log #{}] + (if (contains? log index) + acc + (let [[new-acc new-index] (step acc index (nth coll index))] + (recur new-index new-acc (conj log index)))))) + +(defn run-computer-2 [coll] + (loop [index 0 + acc 0 + log #{}] + (cond + (contains? log index) :infinite-loop + (= index (count coll)) acc + :else (let [[new-acc new-index] (step acc index (nth coll index))] + (recur new-index new-acc (conj log index)))))) + + +;; ----------------------------------------------------------------------------- + +(defn read-input [] + (->> (slurp (io/resource "input08.txt")) + clojure.string/split-lines + (map parse-instruction))) + +(defn compute-1 [input] + (run-computer input)) + +(defn reverse-it [op] + ;; LOL + (get {:jmp :nop + :nop :jmp} + op)) + +(defn compute-2 [input] + (let [input (vec input) + indexes (range (count input)) + possibilities (map (fn [i] + (let [{:keys [op]} (nth input i)] + (if (contains? #{:jmp :nop} op) + (assoc-in input [i :op] (reverse-it op)) + input))) + indexes)] + (->> possibilities + (map run-computer-2) + (remove #(= :infinite-loop %)) + first))) + +(defn main [] + (let [input (read-input)] + (println (compute-1 input)) + (println (compute-2 input)))) + +(main)