├── .gitignore ├── README.md ├── project.clj ├── resources ├── day1.txt ├── day12.txt ├── day13.txt ├── day14.txt ├── day15.txt ├── day16.txt ├── day17.txt ├── day18.txt ├── day19.txt ├── day2.txt ├── day23.txt ├── day24.txt ├── day3.txt ├── day5.txt ├── day6.txt ├── day7.txt ├── day8.txt └── day9.txt └── src └── advent_of_code_2015 ├── day1.clj ├── day10.clj ├── day11.clj ├── day12.clj ├── day13.clj ├── day14.clj ├── day15.clj ├── day16.clj ├── day17.clj ├── day18.clj ├── day19.clj ├── day2.clj ├── day20.clj ├── day21.clj ├── day22.clj ├── day23.clj ├── day24.clj ├── day25.clj ├── day3.clj ├── day4.clj ├── day5.clj ├── day6.clj ├── day7.clj ├── day8.clj └── day9.clj /.gitignore: -------------------------------------------------------------------------------- 1 | /target 2 | /classes 3 | /checkouts 4 | pom.xml 5 | pom.xml.asc 6 | *.jar 7 | *.class 8 | /.lein-* 9 | /.nrepl-port 10 | .hgignore 11 | .hg/ 12 | *~ 13 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Advent of Code 2 | 3 | My solutions to [Advent of Code](http://adventofcode.com/) puzzles 4 | using Clojure. 5 | 6 | General implementation notes: 7 | 8 | * I'm not striving for perfect or particularly impressive 9 | solutions. This is supposed to be fun, after all! 10 | * I'm not trying to make my code as small as possible, though I 11 | embrace concision when suitable to the problem at hand. 12 | * I give no consideration to performance except when absolutely 13 | necessary. 14 | * I've done all development within a REPL, so not all examples will run 15 | unmodified. 16 | -------------------------------------------------------------------------------- /project.clj: -------------------------------------------------------------------------------- 1 | (defproject advent-of-code-2015 "0.1.0-SNAPSHOT" 2 | :description "FIXME: write description" 3 | :url "http://example.com/FIXME" 4 | :license {:name "Eclipse Public License" 5 | :url "http://www.eclipse.org/legal/epl-v10.html"} 6 | :dependencies [[org.clojure/clojure "1.7.0"] 7 | [org.clojure/math.combinatorics "0.1.1"] 8 | [com.cognitect/transit-clj "0.8.285"] 9 | [com.rpl/specter "0.8.0"]]) 10 | -------------------------------------------------------------------------------- /resources/day1.txt: -------------------------------------------------------------------------------- 1 | ((((()(()(((((((()))(((()((((()())(())()(((()((((((()((()(()(((()(()((())))()((()()())))))))))()((((((())((()))(((((()(((((((((()()))((()(())()((())((()(()))((()))()))()(((((()(((()()))()())((()((((())()())()((((())()(()(()(((()(())(()(())(((((((())()()(((())(()(()(()(())))(()((((())((()))(((()(()()(((((()()(()(((()(((((())()))()((()(()))()((()((((())((((())(()(((())()()(()()()()()(())((((())((())(()()))()((((())))((((()())()((((())((()())((())(())(((((()((((()(((()((((())(()(((()()))()))((((((()((())()())))(((()(()))(()()(()(((()(()))((()()()())((()()()(((())())()())())())((()))(()(()))(((((()(()(())((()(())(())()((((()())()))((((())(())((())())((((()(((())(())((()()((((()((((((()(())()()(()(()()((((()))(())()())()))(())))(())))())()()(())(()))()((()(()(())()()))(()())))))(()))(()()))(())(((((()(()(()()((())()())))))((())())((())(()(())((()))(())(((()((((((((()()()(()))()()(((()))()((()()(())(())())()(()(())))(((((()(())(())(()))))())()))(()))()(()(((((((()((((())))())())())())()((((((((((((((()()((((((()()()())())()())())())(())(())))())((()())((()(()))))))()))))))))))))))))())((())((())()()))))))(((()((()(()()))((())(()()))()()())))(())))))))(()(((())))())()())))()()(())()))()(()))())((()()))))(()))))()))(()()(())))))))()(((()))))()(()))(())())))))()))((()))((()))())(())))))))))((((())()))()))()))())(())()()(())))())))(()())()))((()()(())))(())((((((()(())((()(((()(()()(())))()))))))()))()(()((()))()(()))(()(((())((((())())(())(()))))))))())))))))())())))))())))))()()(((())()(()))))))))())))))(())()()()))()))()))(()(())()()())())))))))())()(()(()))))()()()))))())(()))))()()))))()())))))(((())()()))(()))))))))))()()))))()()()))))(()())())()()())()(()))))()(()))(())))))))(((((())(())())()()))()()))(())))))()(()))))(())(()()))()())()))()))()))()))))())()()))())())))(()))(()))))))())()(((())()))))))))()))()())))())))())))()))))))))))()()))(()()))))))(())()(()))))())(()))))(()))))(()())))))())())()()))))())()))))))))(()))))()))))))()(()())))))))()))())))())))())))())))))))())(()()))))))(()())())))()())()))))))))))))))())))()(())))()))())()()(())(()()))(())))())()())(()(()(()))))())))))))))))())(()))()))()))))(())()())()())))))))))))()()))))))))))))())())))))(()())))))))))))())(())))()))))))))())())(()))()))(())))()))()()(())()))))))()((((())()))())())))))()))()))))((()())()))))())))(())))))))))))))))))()))))()()())()))()()))))())()))((()())))())))(()))(()())))))))()))()))))(())))))))(())))))())()()(()))())()))()()))))())()()))))())()))())))))))(()))))()())()))))))))(()))())))(()))()))))(())()))())())(())())())))))))((((())))))()))()))()())()(())))()))()))()())(()())()()(()())()))))())())))))(()))()))))())(()()(())))))(())()()((())())))))(())(())))))))())))))))))()(())))))))()())())())()(()))))))))(()))))))))())()()))()(()))))))()))))))())))))))(())))()()(())()())))))(((())))()((())()))())))(()()))())(())())))()(((()())))))()(()()())))()()(()()(()()))())()(()()()))())()()))()())(()))))())))))())))(())()()))))(()))))(())(()))(())))))()()))()))))())()))()()(())())))((()))())()))))))()()))))((()(()))))()()))))))())))))())(()((()())))))))))))()())())))()))(()))))))(()))(())()())))(()))))))))())()()()()))))(()())))))))((())))()))(()))(())(())()())()))))))))(())))())))(()))()()))(()()))(()))())))()(())))())((()((()(())))((())))()))))((((())())()())))(())))()))))))())(()()((())))())()(()())))))(()())()))())))))))((())())))))))(()(()))())()()(()()(((()(((()())))))()))))))()(())(()()((()()(())()()))())()())()))()())())())))))))(((())))))))()()))))))(((())()))(()()))(()()))))(()(()()((((())()())((()()))))(()(())))))()((()()()())()()((()((()()))(()))(((()()()))(((())))()(((())()))))))((()(())())))(()())(((((()(()))(()((()))(()())()))))(()(()))()(()))(())(((())(()()))))()()))(((()))))(()()()()))())))((()()()(())()))()))))()()))()))))))((((((()()()))))())((()()(((()))))(()(())(()()())())())))()(((()()))(())((())))(()))(()()()())((())())())(()))))()))()((()(())()(()()(())(()))(())()))(())(()))))(())(())())(()()(()((()()((())))((()))()((())))(((()()()()((((()))(()()))()()()(((())((())())(()()(()()()))()((())(())()))())(((()()(())))()((()()())()())(()(())())(((())(())())((())(())()(((()()))(())))((())(()())())(())((()()()((((((())))((()(((((())()))()))(())(()()))()))(())()()))(())((()()())()()(()))())()((())))()((()()())((((()())((())())())((()((()))()))((())((()()(()((()()(((())(()()))))((()((())()(((())(()((())())((())(()((((((())())()(()())()(())(((())((((((()(())(()((()()()((()()(()()()())))()()(((((()()))()((((((()))()(()(()(()(((()())((()))())()((()))(())))()))()()))())()()))())((((())(()(()))(((((((())(((()(((((()(((()()((((())(((())())))(()()()(()(()))()))((((((()))((()(((()(())((()((((()((((((())(((((())))(((()(()))))(((()(((())()((())(()((()))(((()()(((())((((()(()(((((()))(((()(((((((()(()()()(()(()(()()())(())(((((()(())())()())(()(()(()))()(()()()())(()()(()((()))()((())())()(()))((())(()))()(()))()(((()(()(()((((((()()()()())()(((((()()(((()()()((()(((((()))((((((((()()()(((((()))))))(()()()(())(()))(()()))))(())()))(((((()(((((()()(()(()())(((()))((((()((()(()(()((()(()((())))()(((()((()))((()))(((((((((()((()((()(())))()((((()((()()))((())(((()(((((()()(()(()()((()(()()()(((((((())())()())))))((((()()(()))()))(()((())()(()(((((((((()()(((()(()())(()((()())((())())((((()(((()(((()((((()((()((((()(()((((((())((((((((((((()()(()()((((((((((((((()((()()))()((((((((((((())((((()(()())((()(()(()))()(((((()()(((()()))()())(())((()(((((()((())(((((()((()(((((()))()()((((())()((((())(((((((((()(())(()(())))())(()((())(((())(())(())())(()(()(())()()((()((())()(((()(((((()(())))()(((()((())))((()()()(((()(((()((()(()(())(()((()())(()(()(((()(((((((((())(()((((()()))(()((((()()()()(((()((((((((()(()()((((((()(()()(()((()((((((((((()()(((((((()())(())))(((()()))(((((()((()()())(()()((((())((()((((()))))(())((()(()()(((()(()(((()((((()(((((()))())())(()((())()))(((()())((())((())((((()((()((((((())(()((((()()))((((((())()(()))((()(((())((((((((((()()(((((()(((((()((()()()((((())))(()))()((()(())()()((()((((((((((()((())(())(((((()(()(()()))((((()((((()()((()(((()(((((((((()(()((()((()))((((((()(((())()()((()(((((((()())))()()(()((()((()()(((()(()()()()((((()((())((((()(((((((((()(((()()(((()(()(((()(((()((())()(()((()(()(()(()))()(((()))(()((((()((())((((())((((((())(()))(()((((())((()(()((((((((()()((((((()(()(()()()(())((()((()()(((()(((((((()()((()(((((((()))(((((()(((()(()()()(()(((()((()()((())(()(((((((((()(()((()((((((()()((())()))(((((()((())()())()(((((((((((()))((((()()()()())(()()(()(()()))()))(()))(()(((()()))())(()(()))()()((())(()())()())()(()))()))(()()(()((((((())((()(((((((((((()(())()((()(()((()((()(()((()((((((((((()()())((())()(())))((())()())()(((((()(()())((((()((()(())(()))(((())()((()))(((((())(()))()()(()))(((())((((()((((()(())))(((((((()))))())()())(())((())()(()()((()(()))()(()()(()()((()())((())((()()))((((()))()()))(()()(())()()(((((()(())((()((((()))()))(()())())(((()()(()()))(())))))(()))((())(((((()((((()))()((((()))()((())(((())))(((()())))((()(()()(( -------------------------------------------------------------------------------- /resources/day12.txt: -------------------------------------------------------------------------------- 1 | {"e":{"a":{"e":-39,"c":119,"a":{"c":65,"a":"orange","b":"green","d":"orange"},"g":"violet","b":{"e":6,"c":{"c":"violet","a":8,"b":["red",{"a":37},"green",84,"yellow","green",[24,45,"blue","blue",56,"yellow"],"orange"]},"a":"violet","b":{"a":85},"d":[109,66,["yellow","violet",21,-30],"violet","blue",-43,{"e":"violet","c":"red","a":"blue","b":-22,"d":[71,"red",30,"violet","red",26,120],"f":["red"]},"red"]},"d":{"e":"violet","a":"blue","d":"blue","c":"blue","h":"orange","b":{"e":"red","a":{"c":115,"a":137,"b":"green"},"d":-25,"c":"blue","h":{"a":161,"b":["yellow",56,129,-31,"yellow","red","green",105,"orange",130]},"b":142,"g":194,"f":122,"i":-16},"g":173,"f":["orange","green",54,-9],"i":-23},"f":{"c":110,"a":"yellow","b":[{"a":155},156,"violet",94,"yellow"],"d":{"e":91,"a":-18,"d":"red","c":["green","orange","orange",190,"yellow",158,"blue","orange","blue",4],"h":143,"b":"orange","g":145,"f":["orange",37,"yellow",-22,{"c":30,"a":78,"b":196,"d":84},-7,["yellow"]]}}},"b":[[{"c":0,"a":108,"b":"green","d":{"e":59,"c":119,"a":104,"b":167,"d":"blue"}},[189,"blue",121,[["green","orange","orange",-17,192,"red"],{"a":"violet"},"green",{"c":42,"a":"blue","b":"red"},{"e":78,"a":"blue","d":"violet","c":-9,"h":"violet","b":115,"g":"orange","f":"violet","i":"red"}],57,"violet"],"green"],[["blue",[1,53,"orange"],{"e":["green",-12,"blue","orange","green",136,173],"a":"violet","d":-43,"c":{"e":144,"c":133,"a":"yellow","g":154,"b":"orange","d":127,"f":194},"h":{"e":52,"a":-43,"d":"orange","c":-45,"h":"orange","b":150,"g":-12,"f":91,"i":6},"b":{"e":"yellow","c":"blue","a":"violet","g":112,"b":174,"d":"violet","f":90},"g":177,"f":"blue"},"red","violet",96],"green","violet",[{"a":["red","red",46,"red"],"b":["green",193,54,"orange"]},["orange",8,1,["violet",84,"violet"],155,"yellow",151,"blue",196],"yellow","red",{"a":["green","orange","green",61,"blue",39,-2,46,"red",54]},"violet",128]]]},"a":{"e":[{"e":["yellow"],"c":93,"a":"violet","b":{"a":{"a":"yellow","b":"blue"},"b":-4},"d":"violet"},171,103,[13,"orange",[[51,"violet","yellow",{"c":85,"a":103,"b":"green"},97,{"e":"orange","a":-11,"d":62,"j":"yellow","c":"orange","h":47,"b":83,"g":119,"f":180,"i":136},{"a":177},80],{"e":{"c":"yellow","a":"orange","b":3,"d":197},"a":130,"d":"red","j":"red","c":-44,"h":-15,"b":64,"g":125,"f":82,"i":"green"}],{"e":["orange",42,["orange",197,"violet","yellow","blue",11,"yellow"],189,"yellow","blue","green","violet"],"a":{"a":149,"b":69},"d":128,"c":[["green",150,45,86,"red",-8,41,"orange","blue"]],"h":[[-4,127,"yellow","violet",124,112,196,"violet",161,40],37,0,"orange",-30,-43,[-24,"orange",142,"violet","red"],"blue",66],"b":{"c":"violet","a":["yellow",91,182,20,"orange",159,46,55,141],"b":{"c":173,"a":-40,"b":"green","d":"violet"},"d":[67,80,27,-15]},"g":"red","f":{"c":"orange","a":99,"b":"green"}},{"e":{"c":40,"a":"orange","b":"green"},"c":"green","a":-44,"b":{"e":"blue","c":56,"a":"yellow","g":62,"b":188,"d":141,"f":-21},"d":"yellow","f":{"e":"yellow","c":67,"a":33,"g":"yellow","b":"yellow","d":51,"f":195}}],["orange","violet",["red"],["green",35,[170,-30,"orange",140,"green","violet","violet",["orange","yellow","yellow",35,"blue","violet",-36,182,"yellow",141],146]],{"a":61,"b":"orange"},[31,"blue","green",65,"red","green"],"violet"],{"c":"blue","a":["blue"],"b":17},95],"c":[[48,"blue",[49],"orange",{"e":"violet","c":"green","a":"red","b":"red","d":-29,"f":["orange",20,190,97,["orange","blue",-30,"blue","green"],"blue","yellow",-47,[123,"yellow","green"],-41]},"green",{"a":170,"b":32},[{"c":"green","a":"violet","b":"red"},["yellow",36,"yellow","violet",149,{"e":"red","c":141,"a":-24,"b":"yellow","d":-13,"f":"red"},69,"orange",19,[87,"red",167,"red",77,110]],"orange","violet"],{"a":-16}],[["red"],"violet"],{"a":[["red",83,{"e":"red","c":"blue","a":"blue","b":"orange","d":"orange"},49,"green","violet"],{"e":"yellow","a":"violet","d":17,"j":"green","c":{"e":"orange","c":"green","a":"green","b":99,"d":"yellow","f":"orange"},"h":9,"b":159,"g":"yellow","f":167,"i":147},["blue","green","violet"],"yellow",["violet",197,"blue",[170,81,"yellow","orange",196],-24,99,193],-8,["red",81,-11,"green","red","blue","yellow","blue",["blue","violet",131,184,160,-1]],"green"]},"orange"],"a":[{"e":"blue","a":"violet","d":[{"a":"blue","b":46},"violet",72,35,61,161],"j":["green",78,144,[168,["red",77,38,"green","red"],"green","yellow",-8,"yellow"],190,40,"yellow",17,171],"c":{"e":"red","c":"violet","a":"violet","b":-14,"d":"red","f":167},"h":[[[83,"green",69,"red"],"green",155,133],106,1,"orange"],"b":-41,"g":{"a":27},"f":"red","i":{"e":"green","c":"green","a":182,"g":"orange","b":"orange","d":["orange"],"f":"orange"}},"yellow","green",-26],"b":{"e":[-32,-11,{"e":"red","c":"yellow","a":{"e":"green","a":"red","d":105,"c":-20,"h":85,"b":{"e":47,"a":89,"d":"green","c":"violet","h":"orange","b":"green","g":140,"f":"green"},"g":111,"f":"orange","i":"yellow"},"b":143,"d":{"e":{"e":"orange","c":129,"a":"blue","b":142,"d":"violet"},"c":"blue","a":122,"b":["violet","orange",84,"orange"],"d":"red","f":"blue"}},58,[147]],"a":{"e":"orange","c":[{"e":141,"c":114,"a":137,"g":"orange","b":61,"d":105,"f":33}],"a":["red","red",{"e":"green","c":4,"a":"violet","b":"red","d":"blue"},"yellow",["green",15,"green",-40,149,"orange",{"e":-7,"c":74,"a":"red","b":"green","d":32}],"blue","yellow",146,[191,"blue",["orange","blue",187,"blue","orange",127,"yellow",38],120,161,55,-30,"green",-10,"violet"],"orange"],"b":{"a":-32,"b":"blue"},"d":{"e":["green",27],"c":[94,"violet","red",18,166,"yellow"],"a":{"e":"green","a":95,"d":"green","j":176,"c":84,"h":"violet","b":"yellow","g":-25,"f":51,"i":119},"b":144,"d":{"c":"violet","a":"yellow","b":"red"}}},"d":{"e":{"e":140,"a":{"e":"green","c":"green","a":0,"b":68,"d":152,"f":"red"},"d":["blue",6],"c":-29,"h":"green","b":["violet",106,"violet","orange",-38,175],"g":54,"f":[177,31,"violet","yellow"],"i":185},"a":"green","d":[111,49,"yellow","blue","orange",{"e":"yellow","a":"orange","d":"violet","j":"blue","c":"red","h":88,"b":-1,"g":"red","f":"red","i":{"e":121,"a":112,"d":195,"j":103,"c":94,"h":"red","b":12,"g":8,"f":22,"i":"orange"}},64,["violet",["blue",76,"blue","red","red"],["violet","blue","orange","yellow",144],185,{"a":66,"b":"orange"},199,"green","green"],14],"c":{"e":"green","a":"orange","d":{"c":[-23,189,-11,"green","violet",178,-4,"blue",68,"violet"],"a":["orange","red"],"b":"yellow","d":"yellow"},"j":{"c":-33,"a":"blue","b":"violet"},"c":107,"h":{"e":-16,"a":174,"d":{"e":"orange","c":"green","a":-28,"b":-30,"d":73},"j":"yellow","c":"orange","h":"orange","b":["blue","violet",-4,76,"red","red"],"g":59,"f":12,"i":199},"b":{"a":"green","b":54},"g":"violet","f":174,"i":["orange",41,85,"yellow","green",25,"red",-20,156,143]},"h":"yellow","b":"red","g":90,"f":-37,"i":{"a":146,"b":"violet"}},"j":"blue","c":[1,["yellow",-11,"green",66,"red",90,"green","yellow",3,{"e":-34,"a":194,"d":"green","c":[-11,"yellow"],"h":59,"b":"yellow","g":"blue","f":162,"i":"violet"}],81,158,170],"h":"blue","b":"green","g":["violet",["blue","blue"]],"f":[-44,"yellow",[35,[122,"red","yellow",{"a":"red","b":"violet"},"blue","orange","violet"],"violet",{"e":-48,"a":6,"d":-6,"c":4,"h":"yellow","b":"blue","g":"red","f":"red"}],[{"e":-2,"a":156,"d":"red","j":69,"c":0,"h":"violet","b":"orange","g":61,"f":102,"i":["orange","blue","violet",-1,137]},{"a":183,"b":89}],{"a":167,"b":"orange"},193,95,[97,[66,154,-32,"orange",121,{"e":198,"a":"blue","d":102,"c":"red","h":"green","b":135,"g":"orange","f":-49,"i":151},97,7,"red"],195,"blue",49,"green",10]],"i":["violet",1,{"e":"orange","c":196,"a":"blue","g":"red","b":190,"d":87,"f":128},"blue",128,147]},"d":[[{"a":"green","b":43},169,-8,"orange",{"a":["violet",["red","violet","orange","yellow",-49,"violet",-25],"violet",60,33,"violet",["yellow","orange",31,144,"red","yellow",73,"orange","red","green"],["green",-31,"red"],"orange","blue"]},"violet","blue"],40,154,{"a":{"c":"violet","a":145,"b":166,"d":["blue",["blue",125,185,"yellow","red",152,89,-18,"blue",141],26,2,35,"orange",190]}},170,"violet",-31,[[151,"orange","green",["blue",114,-5,"yellow"],"blue","green","orange","yellow",62,{"c":22,"a":"green","b":"blue"}],17,[176],"violet",129,67,{"c":{"c":"red","a":140,"b":25},"a":["blue","green",163],"b":30,"d":[60,"green","red",126,[48,"green"],-26,["yellow","green",150,"red","violet","red","violet",59,-12],167,"yellow"]},"yellow","yellow"],"blue"]},"d":{"c":"green","a":52,"b":[136,{"c":{"a":[197,["orange","red",138,67,"orange",172,2,"orange"],"red"]},"a":"violet","b":{"a":{"e":172,"c":171,"a":"yellow","b":191,"d":{"e":171,"a":"red","d":"violet","c":"green","h":"yellow","b":"yellow","g":73,"f":"yellow"}}},"d":[86,-11,-5,["orange","green",64,["blue",15,"orange","yellow","violet",181,"green","blue"],"yellow","yellow",{"e":27,"c":156,"a":"blue","g":"violet","b":38,"d":51,"f":23},"orange","violet"],10]},[55,{"e":191,"c":"blue","a":"orange","b":"yellow","d":109},"blue",{"c":164,"a":[198,-9,183,{"e":14,"a":176,"d":117,"c":"violet","h":"violet","b":-44,"g":"violet","f":"red","i":"orange"},"yellow",0],"b":58,"d":33},"red",[125,23,"blue",149,[["blue",-44,22,133,"orange","yellow","yellow","violet","violet",131],"violet",-1,"red",66,"blue"],"green","red","red",[-31,"blue",["orange","orange","yellow",44,"green","yellow","green",160,"violet"],"yellow",["orange","violet","green","violet",194,"blue",-27],"green",{"e":"violet","a":"red","d":67,"c":68,"h":"blue","b":"orange","g":"orange","f":"violet","i":"violet"},"yellow"]],"violet",[59,158,{"e":"blue","c":"blue","a":"orange","g":73,"b":97,"d":"red","f":"orange"}],["red",[31,[95,72,"orange","yellow"],"blue",192,63],[197,"green",{"e":112,"a":"violet","d":"blue","c":-2,"h":"blue","b":"green","g":124,"f":"blue"},177,"green","blue",162,107]]],43,[{"e":"red","c":{"e":["green",-33,11,154,"yellow",-4],"c":"yellow","a":[7,"orange","orange","yellow",118,169,"red","blue"],"b":"green","d":114},"a":{"e":"green","a":"green","d":187,"j":{"e":106,"c":-41,"a":"violet","b":173,"d":12},"c":"red","h":"violet","b":-4,"g":{"c":"violet","a":-26,"b":87,"d":-33},"f":"green","i":-46},"b":"green","d":13,"f":"yellow"}],["blue","violet","orange","red",{"e":"green","a":["violet",140,[76,"green",94,33,"green",31,"orange",53],"violet","yellow","violet","blue",["blue",196,"orange","yellow","orange",-42,"orange",171,-47,"violet"],"green",110],"d":31,"c":"orange","h":{"e":-45,"a":"green","d":["violet"],"c":"red","h":105,"b":130,"g":-36,"f":"orange","i":{"e":"red","c":137,"a":54,"g":"blue","b":"violet","d":102,"f":178}},"b":-41,"g":{"e":6,"a":-25,"d":66,"j":"violet","c":39,"h":30,"b":63,"g":46,"f":56,"i":"blue"},"f":6,"i":"violet"},[84,175,"orange",{"a":"green"},"green",66,{"e":"red","a":{"a":178,"b":"yellow"},"d":"yellow","c":["red","red",38,"orange","blue",136,"red",137,"red"],"h":163,"b":["orange",84,"red",178],"g":65,"f":"blue"}],[98,"yellow",[46,"orange","yellow","yellow"],"blue",151,189,["yellow",{"e":"orange","a":27,"d":45,"c":48,"h":"green","b":90,"g":180,"f":-43},"yellow"],"blue"],{"a":"green"},"blue",{"c":37,"a":{"e":59,"c":["blue"],"a":"yellow","g":38,"b":"blue","d":"violet","f":"orange"},"b":"orange","d":"violet"}],{"c":75,"a":{"e":{"a":130},"a":5,"d":1,"c":72,"h":{"e":"red","a":11,"d":157,"c":97,"h":-24,"b":"red","g":111,"f":21},"b":{"e":145,"a":"red","d":"violet","j":[-11,191,-43,"blue","orange",105,158],"c":"red","h":143,"b":{"e":"orange","c":"yellow","a":-31,"g":177,"b":"violet","d":"blue","f":"green"},"g":"green","f":48,"i":{"e":18,"a":142,"d":"yellow","c":116,"h":"violet","b":135,"g":37,"f":36}},"g":-26,"f":[186,192,"orange",117,-9,"violet",-19,55,"green",167],"i":"green"},"b":"yellow","d":{"a":138}}]},"c":"blue","h":[[19],"orange",[{"e":["yellow",68,28,29,{"e":"red","a":"violet","d":"green","c":143,"h":"red","b":"orange","g":44,"f":123,"i":"orange"},38,28,65,{"e":-26,"c":["red",132,"red",124,"yellow",115],"a":170,"g":"yellow","b":"green","d":-18,"f":{"c":1,"a":"red","b":-1}}],"a":"orange","d":129,"c":33,"h":"violet","b":"orange","g":"green","f":-24},["violet",-22],[64,-20,{"e":46,"a":76,"d":97,"c":-21,"h":98,"b":"violet","g":{"e":-7,"c":"violet","a":190,"b":"violet","d":138,"f":"violet"},"f":[178,"blue","blue"],"i":"red"},{"e":"orange","c":"red","a":{"e":"orange","a":["green"],"d":[19,"red"],"c":-32,"h":-15,"b":"yellow","g":116,"f":"blue","i":"orange"},"b":96,"d":"green","f":176},[[104,99,"yellow",-13,"red",{"c":"blue","a":"red","b":46,"d":60},-13,9],-22,-26,133,["green",["red",188,"green","green"],166,"yellow",{"e":"yellow","c":197,"a":65,"b":83,"d":-19,"f":"yellow"},[157,"violet","blue","yellow",-30,"violet",-3],21,{"a":-15}],43,["orange","blue",88,"yellow",103,31],"orange",-24]],{"c":"violet","a":{"a":26,"b":"yellow"},"b":["violet","violet",{"e":102,"a":"red","d":178,"j":187,"c":"orange","h":"violet","b":72,"g":-37,"f":"violet","i":"orange"},44,114,"yellow",85]}],{"e":150,"c":"green","a":{"e":{"e":{"e":{"e":"orange","a":48,"d":41,"j":"orange","c":"orange","h":30,"b":"yellow","g":41,"f":-40,"i":8},"c":199,"a":32,"b":"yellow","d":-28},"a":46,"d":[50,"red","violet",63,"red",56,-18,"orange","violet","red"],"c":"blue","h":{"e":"green","c":172,"a":"green","b":-30,"d":22,"f":"yellow"},"b":"orange","g":65,"f":"yellow","i":174},"a":"green","d":[196,{"e":{"e":176,"a":"violet","d":"orange","j":-37,"c":19,"h":31,"b":155,"g":"red","f":106,"i":"green"},"c":"red","a":64,"b":"orange","d":179,"f":8},"yellow",103,"violet",{"e":142,"a":111,"d":"yellow","c":"violet","h":"red","b":148,"g":29,"f":179,"i":"green"},-26],"c":-19,"h":["red",134,"green","green",105],"b":"orange","g":126,"f":76,"i":158},"b":55,"d":"green"},[[[61],[["orange","red"],[151,"yellow",127,"yellow",185,"yellow",{"e":105,"c":"yellow","a":198,"b":"orange","d":"blue","f":89},140,{"e":"violet","a":-15,"d":169,"j":3,"c":"yellow","h":74,"b":-41,"g":29,"f":112,"i":18}]],101,{"e":[45,"green","yellow","blue","violet",["violet","yellow",159,0,"orange","yellow",100,"green","blue",49],[5,-37],"blue","orange"],"c":88,"a":"blue","b":-32,"d":23},77,{"e":["yellow",119,197,["orange",-28,"yellow",179,130,74,-10,115,"violet",79],"orange",63,-15,17,"blue","violet"],"c":{"e":164,"a":83,"d":"yellow","c":119,"h":"yellow","b":148,"g":-22,"f":[-17,17,"violet","green","red"],"i":67},"a":{"e":54,"a":147,"d":"yellow","c":86,"h":113,"b":"yellow","g":77,"f":101,"i":"blue"},"g":"orange","b":[193,"orange","orange","red",39,44,43,-29],"d":"violet","f":191}],"orange",["red","violet","yellow",["red",54,{"e":{"a":41,"b":"violet"},"c":"red","a":{"e":"red","a":"yellow","d":"green","j":-33,"c":96,"h":137,"b":"yellow","g":30,"f":"green","i":"blue"},"b":181,"d":"violet","f":"green"},49,"yellow"],"orange","yellow",{"e":"orange","c":[46,"orange",["blue","green","blue","yellow","yellow","violet","orange","orange",1],"yellow",155,194,"yellow",149],"a":"green","b":-3,"d":153,"f":[-21,-26,-25,"blue","red",108,169,["green",100,43],51,-9]}],71,[[[{"a":"violet","b":27},148,109,["blue",60,47,"violet","yellow",-47,"violet"],"red",{"e":97,"c":-21,"a":"yellow","b":"green","d":126},"yellow",85,89],{"a":["red","orange","violet","blue","blue","blue",128,"blue"]},{"e":-48,"c":{"c":90,"a":"orange","b":"yellow"},"a":"yellow","b":"red","d":172},"yellow",{"a":"orange"},[{"e":"yellow","a":40,"d":-9,"j":"violet","c":153,"h":79,"b":"violet","g":178,"f":2,"i":"yellow"},"green",-29],"red",-9,[9,{"a":39,"b":"green"},5,"violet",26,{"e":167,"c":"blue","a":"yellow","b":90,"d":33},"green",88,12,"blue"]],"red",{"c":{"e":"yellow","a":-44,"d":62,"j":-19,"c":96,"h":"green","b":-12,"g":"green","f":"red","i":134},"a":22,"b":24,"d":33},"red","violet",{"e":181,"c":64,"a":"violet","g":"green","b":"yellow","d":"violet","f":101},"green",[132,93,[-6,[-3,28,"red"],-21,"red","violet",{"a":180},"red","blue",-15],{"e":171,"a":{"e":"green","c":49,"a":"orange","g":22,"b":"violet","d":"orange","f":"orange"},"d":"red","c":113,"h":"green","b":[30,"blue"],"g":{"a":139,"b":47},"f":"red","i":"red"},"violet",158,"green",5,-1],19],"red"],{"e":{"c":["orange",93,162,"green","violet",["green",178],{"a":"green","b":{"e":-12,"a":-16,"d":144,"c":"red","h":"violet","b":43,"g":"green","f":-42}}],"a":"blue","b":"blue","d":{"e":["orange","red",{"c":-19,"a":"green","b":93},"yellow","green","orange","orange","red","green"],"a":"green","d":{"e":"yellow","a":2,"d":"violet","j":"green","c":"blue","h":19,"b":"violet","g":"blue","f":[157,"green",109,59,"red",74,"red","blue","green"],"i":"orange"},"j":"yellow","c":166,"h":"yellow","b":"yellow","g":["violet",138,["violet",141,"green"]],"f":28,"i":{"e":52,"c":"yellow","a":"green","b":5,"d":{"e":153,"a":"yellow","d":191,"j":"green","c":"green","h":124,"b":"green","g":181,"f":134,"i":"yellow"},"f":193}}},"c":"violet","a":{"a":{"a":"green"},"b":[132]},"b":[{"e":11,"a":"green","d":{"e":{"e":119,"a":"violet","d":"red","c":"red","h":"violet","b":-6,"g":"blue","f":"orange","i":"orange"},"a":183,"d":[-36,"yellow"],"c":"red","h":71,"b":"yellow","g":2,"f":"orange"},"c":"green","h":"yellow","b":29,"g":"green","f":"blue","i":{"e":"yellow","a":-24,"d":[55,125,193,70,60,190,199],"c":"green","h":[49,"yellow","yellow",74,"red",163],"b":198,"g":50,"f":"blue","i":70}},"orange"],"d":"blue"},{"c":{"e":-20,"a":8,"d":["orange",157,152,"green",46,"green",7,89,"violet",[-22,-49,81,127]],"c":35,"h":["blue","yellow","orange",94,"orange","yellow"],"b":"red","g":{"a":"green","b":["yellow","orange",198]},"f":"violet","i":17},"a":-48,"b":"blue"}],"b":[[149,[{"e":"blue","c":-30,"a":"violet","g":"violet","b":"yellow","d":178,"f":-4}],"orange",131,"yellow",{"a":"red","b":"violet"},"blue"],[11],{"e":[35,118,{"e":39,"a":"yellow","d":[119,"orange",120,-43],"j":"violet","c":"orange","h":"blue","b":-32,"g":[{"e":"green","c":106,"a":144,"b":147,"d":"green"},"violet","orange"],"f":116,"i":"orange"},112,"yellow"],"a":{"e":19,"a":"orange","d":61,"c":"red","h":"blue","b":164,"g":{"c":"red","a":-10,"b":{"e":{"e":"green","c":82,"a":103,"g":67,"b":153,"d":"violet","f":22},"c":-22,"a":101,"b":71,"d":{"a":152,"b":"green"},"f":"orange"}},"f":157,"i":{"e":"green","a":"orange","d":-8,"j":[159,73,182,"red","green"],"c":13,"h":"blue","b":"yellow","g":186,"f":"orange","i":81}},"d":13,"c":[186,["yellow",["violet","violet"],"green",-28],54,["blue",[119,"red",119,91,181],117],-15,190,{"c":"red","a":13,"b":[{"c":"green","a":70,"b":8,"d":175},"orange","green","yellow","green"]},"blue",-43],"h":{"e":[{"a":"green"},88,"red","violet",10],"a":{"a":"orange","b":[62,"yellow","green"]},"d":151,"c":"red","h":"orange","b":126,"g":{"a":"orange"},"f":"orange","i":46},"b":[[-2,"violet","violet","red",{"a":192},"green",122],["orange","red",{"c":62,"a":52,"b":-45},{"e":{"a":"violet","b":-45},"a":"red","d":"orange","c":"yellow","h":{"e":67,"c":-27,"a":116,"b":"violet","d":"green","f":-18},"b":"yellow","g":"blue","f":"blue"},27,{"c":37,"a":-39,"b":"blue"}],107,"yellow",["blue","red",143],"blue",{"e":"orange","a":["yellow",["blue",8,149,141,"red",-28,"red"],18],"d":29,"c":"violet","h":-21,"b":[{"e":66,"c":"green","a":"blue","b":-29,"d":"orange","f":"violet"},"blue",-21],"g":"green","f":112},73],"g":["red",{"a":{"e":93,"a":13,"d":"violet","c":175,"h":158,"b":9,"g":194,"f":-10},"b":"blue"}],"f":130}],"g":[["red","orange","orange",172,154,{"e":{"a":"blue","b":{"a":"yellow","b":53}},"c":-11,"a":"orange","g":"yellow","b":{"e":{"e":94,"a":123,"d":184,"j":-4,"c":193,"h":152,"b":"blue","g":"red","f":101,"i":178},"c":"blue","a":178,"b":154,"d":[103,109,190,"yellow",29,"red","orange","yellow",79,"green"],"f":"orange"},"d":{"e":25,"a":{"a":"blue"},"d":"green","c":"orange","h":{"e":144,"c":["red","blue","violet",15,"green",109,72],"a":"yellow","b":"orange","d":"yellow"},"b":151,"g":[141,"orange",134,"blue","blue",4,21,"blue","green"],"f":96},"f":"blue"},"blue"],80,186,[[194,"violet",70,"green"],{"a":"orange","b":"green"},[{"e":"orange","a":179,"d":{"e":164,"c":-14,"a":"blue","g":"yellow","b":"violet","d":76,"f":-33},"c":"green","h":"violet","b":"orange","g":"blue","f":"orange","i":"green"},"blue"]],"orange","yellow",66],"f":{"a":["violet"],"b":87},"i":{"e":{"c":[{"e":"red","a":19,"d":100,"j":"red","c":"red","h":"red","b":"yellow","g":-41,"f":10,"i":"blue"},42,92,"violet","red",[149,"green",91,"blue"],-33,["green",73,129],110,{"e":168,"c":153,"a":-30,"b":"yellow","d":[192,{"c":"blue","a":"blue","b":-16,"d":-18},{"e":"red","c":"yellow","a":"violet","b":31,"d":"green"},"blue"],"f":{"c":9,"a":"yellow","b":-16,"d":128}}],"a":[[["green","violet",136,59,"orange",173,116,113,"yellow"],"green",{"e":"blue","c":"green","a":"blue","g":"red","b":98,"d":-25,"f":21},"orange",184],4,"yellow","red",-24,{"c":"orange","a":15,"b":{"e":109,"c":179,"a":61,"b":"orange","d":190,"f":9}}],"b":[[92,148,{"e":"blue","a":0,"d":108,"c":197,"h":"red","b":"orange","g":-22,"f":105,"i":"blue"},"blue"],-7,149]},"a":{"e":{"a":{"e":"green","a":["violet",172],"d":-10,"c":42,"h":"blue","b":80,"g":{"e":"red","c":"orange","a":"yellow","g":87,"b":{"e":31,"c":129,"a":"orange","b":43,"d":"blue"},"d":"blue","f":81},"f":"violet"},"b":"orange"},"a":182,"d":{"c":{"a":154},"a":"blue","b":{"e":31,"a":["yellow","blue","red",{"a":"orange"},"red",62,39,"red",["green","orange","yellow",47,"orange",55,"blue"]],"d":[72,187,"red","orange",59,"yellow","violet","green"],"j":"orange","c":"yellow","h":185,"b":{"e":"blue","c":"violet","a":["orange",7,180,150,46,"yellow",176,"orange"],"b":148,"d":"blue"},"g":"blue","f":"yellow","i":102}},"c":"red","h":-9,"b":14,"g":{"a":"green","b":{"c":-18,"a":81,"b":104}},"f":[[{"e":-33,"c":"green","a":"orange","b":"blue","d":"blue"},"yellow",141,[42,197],[-12,61,{"e":"violet","a":"violet","d":"green","c":-21,"h":-5,"b":"orange","g":39,"f":"green"},"blue"],31,[[101,"blue",-14,"red",88],58,["red","blue","violet",34],-14,"yellow",98,106,91,131],"yellow",[151,"red","green",{"e":"violet","c":"green","a":49,"g":155,"b":96,"d":"blue","f":"orange"},-18,184,{"c":"blue","a":1,"b":162},{"e":115,"a":94,"d":97,"j":-34,"c":"blue","h":115,"b":"red","g":"orange","f":149,"i":105}],38],{"c":{"e":"blue","c":90,"a":"yellow","b":142,"d":"violet"},"a":-38,"b":"violet"}],"i":189},"d":"orange","c":[[103,8,"green",13,23,"violet",55],[{"e":79,"c":74,"a":{"e":"violet","a":{"c":"red","a":"violet","b":168},"d":142,"j":"blue","c":173,"h":"yellow","b":"green","g":"blue","f":"blue","i":"blue"},"g":[{"c":"violet","a":82,"b":90},-24,{"a":"orange"},"yellow",[126,53,153,6],52,137,"violet",181],"b":105,"d":166,"f":{"e":"blue","c":-35,"a":"blue","b":188,"d":-14,"f":63}},{"e":95,"a":"green","d":"yellow","j":"red","c":81,"h":107,"b":-46,"g":162,"f":"green","i":"red"},[{"e":"violet","a":150,"d":126,"c":10,"h":{"e":"green","a":"orange","d":19,"c":"green","h":"green","b":79,"g":"red","f":"yellow","i":"blue"},"b":{"a":25,"b":147},"g":180,"f":126},{"e":-48,"a":192,"d":-45,"c":25,"h":"green","b":{"c":165,"a":"orange","b":"red","d":"blue"},"g":"green","f":-24},95,{"e":"blue","a":"violet","d":"yellow","j":"blue","c":44,"h":["blue","green","red",142,"red"],"b":[-43,"violet","green",53],"g":33,"f":"orange","i":196},"orange","green",43,[113,"violet","orange",129,{"c":6,"a":"violet","b":"green","d":"green"},20]],"green"]],"h":{"a":-11},"b":{"e":"violet","c":174,"a":"violet","g":[{"e":105,"a":{"c":-5,"a":177,"b":63},"d":-41,"c":80,"h":[110,109,113,"blue"],"b":-28,"g":"red","f":129},["green",[108],{"a":4},[182,96,29,[181,14,"yellow","violet"],13,{"e":132,"a":115,"d":"red","c":"violet","h":"violet","b":"violet","g":"green","f":"green"},{"e":"orange","a":"yellow","d":"blue","j":"red","c":137,"h":"violet","b":"green","g":-22,"f":"yellow","i":-12},"green","yellow",57],-44,{"a":88,"b":-3},22,{"c":"red","a":"violet","b":-21}],[[14,"orange"]],-36,128,"yellow",[-47,[-7,36,177],"blue","blue",["yellow","violet",-23,"violet",-40,"orange",{"e":129,"a":21,"d":51,"j":"violet","c":"red","h":15,"b":174,"g":191,"f":101,"i":105}],23,[-47,[133,66,"violet"],177,"violet","yellow","green",159,"yellow"]],{"e":[{"a":"orange"},"green",69,"orange",43,"violet","violet",192,140,"green"],"a":62,"d":"violet","j":{"c":"violet","a":-25,"b":"violet"},"c":120,"h":"red","b":{"a":13},"g":"green","f":124,"i":33},[[19,176,174,"orange","violet","violet",105,128,"red"],{"a":10,"b":"red"},["orange",37,187,"green",176],"blue","red",[153,"yellow","violet",137,"orange","blue",[70,"red",174,"blue","green","yellow",99,"red"],"violet","violet","red"]]],"b":[{"c":133,"a":"orange","b":98,"d":{"c":"red","a":-9,"b":103}},"blue",[155,"yellow"],[["yellow",-8,{"e":"blue","c":59,"a":71,"g":"orange","b":88,"d":"orange","f":17},"blue",-37],{"e":82,"c":"violet","a":99,"b":81,"d":"yellow","f":161},"blue",{"c":-7,"a":154,"b":"violet"},-9,-13,53,{"e":"violet","a":"yellow","d":-26,"c":179,"h":"green","b":"red","g":-24,"f":133,"i":-36}]],"d":{"e":[9,[49],28,"red",{"c":23,"a":157,"b":{"c":"violet","a":"green","b":-11,"d":"green"},"d":139},"orange","green",93,44,[-19]],"a":-6,"d":7,"c":{"e":{"c":"violet","a":-21,"b":12},"c":["green",[-23,-40,157],"red",["orange","blue"],"violet","red",85,"violet","yellow",150],"a":162,"g":"yellow","b":"green","d":["green","yellow",181,"green",-2,{"e":"red","a":"yellow","d":129,"c":-34,"h":129,"b":152,"g":"yellow","f":80,"i":"red"},"green","red",-9,"red"],"f":6},"h":{"e":136,"a":"violet","d":["violet",-15,129,"green",5,"green",[-28,156,141,"blue",22,"green",34],"green"],"c":149,"h":["violet"],"b":149,"g":"green","f":149},"b":{"e":123,"a":"red","d":{"e":0,"c":"green","a":"violet","b":"yellow","d":"red","f":"green"},"c":{"e":{"e":"yellow","c":"red","a":"red","b":"violet","d":"yellow"},"a":"yellow","d":{"e":-39,"a":-11,"d":63,"c":179,"h":4,"b":44,"g":"orange","f":"violet","i":"yellow"},"c":-43,"h":"green","b":"violet","g":"blue","f":"yellow","i":124},"h":48,"b":129,"g":["orange",147,174,"blue","green",115],"f":172,"i":-36},"g":"red","f":30,"i":"violet"},"f":"red"},"g":{"e":{"e":[[126,"orange",196,"orange","red",{"e":23,"a":"yellow","d":128,"c":12,"h":-49,"b":"green","g":"yellow","f":41,"i":45},"red","violet"]],"c":[["red",103,{"e":69,"a":"violet","d":"yellow","c":"green","h":"red","b":133,"g":25,"f":"violet"}],88,"green","red",-29,"red"],"a":37,"b":"green","d":{"e":"orange","c":{"e":{"e":109,"c":144,"a":"yellow","b":70,"d":83},"c":-3,"a":"green","b":"yellow","d":146},"a":86,"b":-1,"d":{"a":68}}},"c":{"c":[155,18,"blue",-16,"orange",-36,49,"red",["yellow",136,140,-10,11,"violet","red",134,156,"violet"]],"a":64,"b":{"e":"violet","c":193,"a":101,"b":["green"],"d":182,"f":86},"d":[198]},"a":"yellow","g":"violet","b":1,"d":-27,"f":"orange"},"f":{"e":20,"c":{"e":155,"c":{"c":[181,{"e":-32,"a":"orange","d":"orange","j":"yellow","c":66,"h":-39,"b":"violet","g":"violet","f":"red","i":23},4,"blue",70,"violet","blue",141,{"a":"yellow","b":184},"violet"],"a":160,"b":158,"d":197},"a":138,"g":[48],"b":26,"d":11,"f":{"c":"yellow","a":179,"b":"red","d":90}},"a":148,"g":"yellow","b":[[{"a":["yellow"]},"yellow",19,"green",39],{"c":{"a":"blue"},"a":{"e":41,"c":191,"a":173,"b":"green","d":-14,"f":19},"b":{"a":["orange",4,48],"b":193},"d":"green"},["yellow",{"e":"orange","a":"orange","d":"blue","c":-39,"h":28,"b":"yellow","g":"red","f":"orange","i":[116,"red",173,76,24,-1,"green",101,-10]},70,{"c":"violet","a":44,"b":"violet","d":36},128,{"c":"yellow","a":"red","b":["yellow",-10]},-10,6]],"d":"violet","f":{"e":"violet","c":5,"a":"violet","g":173,"b":100,"d":["violet",194,{"e":["blue",181,"violet","yellow","blue",-7,137,43,112],"c":-19,"a":120,"b":"green","d":165},-1,195,"green",104],"f":128}}}} 2 | -------------------------------------------------------------------------------- /resources/day13.txt: -------------------------------------------------------------------------------- 1 | Alice would gain 2 happiness units by sitting next to Bob. 2 | Alice would gain 26 happiness units by sitting next to Carol. 3 | Alice would lose 82 happiness units by sitting next to David. 4 | Alice would lose 75 happiness units by sitting next to Eric. 5 | Alice would gain 42 happiness units by sitting next to Frank. 6 | Alice would gain 38 happiness units by sitting next to George. 7 | Alice would gain 39 happiness units by sitting next to Mallory. 8 | Bob would gain 40 happiness units by sitting next to Alice. 9 | Bob would lose 61 happiness units by sitting next to Carol. 10 | Bob would lose 15 happiness units by sitting next to David. 11 | Bob would gain 63 happiness units by sitting next to Eric. 12 | Bob would gain 41 happiness units by sitting next to Frank. 13 | Bob would gain 30 happiness units by sitting next to George. 14 | Bob would gain 87 happiness units by sitting next to Mallory. 15 | Carol would lose 35 happiness units by sitting next to Alice. 16 | Carol would lose 99 happiness units by sitting next to Bob. 17 | Carol would lose 51 happiness units by sitting next to David. 18 | Carol would gain 95 happiness units by sitting next to Eric. 19 | Carol would gain 90 happiness units by sitting next to Frank. 20 | Carol would lose 16 happiness units by sitting next to George. 21 | Carol would gain 94 happiness units by sitting next to Mallory. 22 | David would gain 36 happiness units by sitting next to Alice. 23 | David would lose 18 happiness units by sitting next to Bob. 24 | David would lose 65 happiness units by sitting next to Carol. 25 | David would lose 18 happiness units by sitting next to Eric. 26 | David would lose 22 happiness units by sitting next to Frank. 27 | David would gain 2 happiness units by sitting next to George. 28 | David would gain 42 happiness units by sitting next to Mallory. 29 | Eric would lose 65 happiness units by sitting next to Alice. 30 | Eric would gain 24 happiness units by sitting next to Bob. 31 | Eric would gain 100 happiness units by sitting next to Carol. 32 | Eric would gain 51 happiness units by sitting next to David. 33 | Eric would gain 21 happiness units by sitting next to Frank. 34 | Eric would gain 55 happiness units by sitting next to George. 35 | Eric would lose 44 happiness units by sitting next to Mallory. 36 | Frank would lose 48 happiness units by sitting next to Alice. 37 | Frank would gain 91 happiness units by sitting next to Bob. 38 | Frank would gain 8 happiness units by sitting next to Carol. 39 | Frank would lose 66 happiness units by sitting next to David. 40 | Frank would gain 97 happiness units by sitting next to Eric. 41 | Frank would lose 9 happiness units by sitting next to George. 42 | Frank would lose 92 happiness units by sitting next to Mallory. 43 | George would lose 44 happiness units by sitting next to Alice. 44 | George would lose 25 happiness units by sitting next to Bob. 45 | George would gain 17 happiness units by sitting next to Carol. 46 | George would gain 92 happiness units by sitting next to David. 47 | George would lose 92 happiness units by sitting next to Eric. 48 | George would gain 18 happiness units by sitting next to Frank. 49 | George would gain 97 happiness units by sitting next to Mallory. 50 | Mallory would gain 92 happiness units by sitting next to Alice. 51 | Mallory would lose 96 happiness units by sitting next to Bob. 52 | Mallory would lose 51 happiness units by sitting next to Carol. 53 | Mallory would lose 81 happiness units by sitting next to David. 54 | Mallory would gain 31 happiness units by sitting next to Eric. 55 | Mallory would lose 73 happiness units by sitting next to Frank. 56 | Mallory would lose 89 happiness units by sitting next to George. 57 | -------------------------------------------------------------------------------- /resources/day14.txt: -------------------------------------------------------------------------------- 1 | Dancer can fly 27 km/s for 5 seconds, but then must rest for 132 seconds. 2 | Cupid can fly 22 km/s for 2 seconds, but then must rest for 41 seconds. 3 | Rudolph can fly 11 km/s for 5 seconds, but then must rest for 48 seconds. 4 | Donner can fly 28 km/s for 5 seconds, but then must rest for 134 seconds. 5 | Dasher can fly 4 km/s for 16 seconds, but then must rest for 55 seconds. 6 | Blitzen can fly 14 km/s for 3 seconds, but then must rest for 38 seconds. 7 | Prancer can fly 3 km/s for 21 seconds, but then must rest for 40 seconds. 8 | Comet can fly 18 km/s for 6 seconds, but then must rest for 103 seconds. 9 | Vixen can fly 18 km/s for 5 seconds, but then must rest for 84 seconds. 10 | -------------------------------------------------------------------------------- /resources/day15.txt: -------------------------------------------------------------------------------- 1 | Sprinkles: capacity 5, durability -1, flavor 0, texture 0, calories 5 2 | PeanutButter: capacity -1, durability 3, flavor 0, texture 0, calories 1 3 | Frosting: capacity 0, durability -1, flavor 4, texture 0, calories 6 4 | Sugar: capacity -1, durability 0, flavor 0, texture 2, calories 8 5 | -------------------------------------------------------------------------------- /resources/day16.txt: -------------------------------------------------------------------------------- 1 | Sue 1: cars: 9, akitas: 3, goldfish: 0 2 | Sue 2: akitas: 9, children: 3, samoyeds: 9 3 | Sue 3: trees: 6, cars: 6, children: 4 4 | Sue 4: trees: 4, vizslas: 4, goldfish: 9 5 | Sue 5: akitas: 9, vizslas: 7, cars: 5 6 | Sue 6: vizslas: 6, goldfish: 6, akitas: 3 7 | Sue 7: pomeranians: 5, samoyeds: 0, perfumes: 10 8 | Sue 8: cars: 10, pomeranians: 7, goldfish: 8 9 | Sue 9: trees: 2, vizslas: 7, samoyeds: 6 10 | Sue 10: perfumes: 5, pomeranians: 4, children: 9 11 | Sue 11: vizslas: 5, perfumes: 8, cars: 10 12 | Sue 12: children: 10, cars: 6, perfumes: 5 13 | Sue 13: cats: 4, samoyeds: 7, pomeranians: 8 14 | Sue 14: perfumes: 6, goldfish: 10, children: 7 15 | Sue 15: perfumes: 4, pomeranians: 3, cars: 6 16 | Sue 16: perfumes: 7, cars: 9, pomeranians: 6 17 | Sue 17: goldfish: 3, cars: 6, vizslas: 7 18 | Sue 18: perfumes: 6, cars: 7, goldfish: 3 19 | Sue 19: trees: 0, akitas: 3, pomeranians: 8 20 | Sue 20: goldfish: 6, trees: 2, akitas: 6 21 | Sue 21: pomeranians: 9, akitas: 9, samoyeds: 9 22 | Sue 22: vizslas: 2, cars: 9, perfumes: 5 23 | Sue 23: goldfish: 10, samoyeds: 8, children: 9 24 | Sue 24: akitas: 4, goldfish: 1, vizslas: 5 25 | Sue 25: goldfish: 10, trees: 8, perfumes: 6 26 | Sue 26: vizslas: 5, akitas: 8, trees: 1 27 | Sue 27: trees: 3, cars: 6, perfumes: 2 28 | Sue 28: goldfish: 8, trees: 7, akitas: 10 29 | Sue 29: children: 5, trees: 1, goldfish: 10 30 | Sue 30: vizslas: 3, perfumes: 8, akitas: 3 31 | Sue 31: cars: 6, children: 10, perfumes: 7 32 | Sue 32: cars: 10, perfumes: 3, goldfish: 10 33 | Sue 33: perfumes: 9, vizslas: 3, akitas: 4 34 | Sue 34: perfumes: 10, vizslas: 7, children: 8 35 | Sue 35: cars: 5, perfumes: 5, vizslas: 9 36 | Sue 36: trees: 9, cars: 9, akitas: 7 37 | Sue 37: samoyeds: 9, perfumes: 2, cars: 10 38 | Sue 38: akitas: 7, cars: 5, trees: 5 39 | Sue 39: goldfish: 8, trees: 9, cars: 10 40 | Sue 40: trees: 0, cats: 1, pomeranians: 1 41 | Sue 41: pomeranians: 6, perfumes: 9, samoyeds: 1 42 | Sue 42: vizslas: 6, akitas: 3, pomeranians: 1 43 | Sue 43: vizslas: 2, perfumes: 3, pomeranians: 6 44 | Sue 44: akitas: 5, pomeranians: 0, vizslas: 10 45 | Sue 45: vizslas: 4, goldfish: 1, cars: 5 46 | Sue 46: cars: 4, vizslas: 8, cats: 0 47 | Sue 47: cats: 5, children: 8, pomeranians: 2 48 | Sue 48: vizslas: 3, perfumes: 6, cats: 0 49 | Sue 49: akitas: 7, perfumes: 0, trees: 7 50 | Sue 50: trees: 4, akitas: 10, vizslas: 2 51 | Sue 51: goldfish: 10, cars: 9, trees: 4 52 | Sue 52: cars: 5, children: 9, perfumes: 0 53 | Sue 53: vizslas: 5, cars: 3, cats: 8 54 | Sue 54: cars: 5, akitas: 1, goldfish: 10 55 | Sue 55: akitas: 10, vizslas: 2, cars: 6 56 | Sue 56: cats: 6, trees: 0, cars: 4 57 | Sue 57: vizslas: 1, akitas: 1, samoyeds: 7 58 | Sue 58: samoyeds: 6, vizslas: 1, akitas: 7 59 | Sue 59: akitas: 9, cars: 8, vizslas: 1 60 | Sue 60: cars: 6, vizslas: 7, goldfish: 0 61 | Sue 61: pomeranians: 5, akitas: 6, vizslas: 2 62 | Sue 62: samoyeds: 2, cats: 8, goldfish: 7 63 | Sue 63: vizslas: 10, goldfish: 7, samoyeds: 9 64 | Sue 64: perfumes: 2, trees: 1, akitas: 6 65 | Sue 65: cars: 8, perfumes: 10, vizslas: 9 66 | Sue 66: akitas: 8, vizslas: 8, perfumes: 8 67 | Sue 67: goldfish: 7, cars: 9, samoyeds: 9 68 | Sue 68: perfumes: 2, children: 7, akitas: 1 69 | Sue 69: perfumes: 7, vizslas: 9, akitas: 1 70 | Sue 70: samoyeds: 3, vizslas: 1, trees: 1 71 | Sue 71: vizslas: 8, goldfish: 7, trees: 9 72 | Sue 72: goldfish: 8, cars: 6, trees: 9 73 | Sue 73: perfumes: 5, cars: 10, samoyeds: 7 74 | Sue 74: pomeranians: 4, perfumes: 3, cars: 5 75 | Sue 75: samoyeds: 1, perfumes: 1, pomeranians: 1 76 | Sue 76: goldfish: 4, cats: 6, akitas: 7 77 | Sue 77: perfumes: 5, akitas: 4, vizslas: 8 78 | Sue 78: perfumes: 4, cats: 3, children: 4 79 | Sue 79: vizslas: 5, pomeranians: 9, samoyeds: 7 80 | Sue 80: cars: 3, samoyeds: 5, pomeranians: 7 81 | Sue 81: vizslas: 2, samoyeds: 4, perfumes: 2 82 | Sue 82: trees: 1, akitas: 10, vizslas: 9 83 | Sue 83: vizslas: 0, akitas: 2, samoyeds: 5 84 | Sue 84: perfumes: 5, vizslas: 7, children: 8 85 | Sue 85: cats: 3, children: 2, trees: 0 86 | Sue 86: cars: 3, perfumes: 2, goldfish: 2 87 | Sue 87: trees: 1, akitas: 7, vizslas: 0 88 | Sue 88: trees: 1, akitas: 2, samoyeds: 1 89 | Sue 89: cars: 4, vizslas: 8, akitas: 1 90 | Sue 90: perfumes: 5, cats: 3, vizslas: 0 91 | Sue 91: samoyeds: 7, cats: 6, goldfish: 8 92 | Sue 92: samoyeds: 10, cats: 0, cars: 7 93 | Sue 93: cars: 6, akitas: 7, samoyeds: 2 94 | Sue 94: perfumes: 0, goldfish: 6, trees: 9 95 | Sue 95: cars: 6, pomeranians: 2, samoyeds: 8 96 | Sue 96: cars: 2, trees: 9, samoyeds: 4 97 | Sue 97: goldfish: 5, trees: 1, children: 0 98 | Sue 98: akitas: 9, goldfish: 7, children: 6 99 | Sue 99: goldfish: 9, akitas: 0, pomeranians: 0 100 | Sue 100: samoyeds: 6, children: 8, vizslas: 5 101 | Sue 101: vizslas: 6, cars: 5, goldfish: 4 102 | Sue 102: vizslas: 6, akitas: 2, perfumes: 6 103 | Sue 103: samoyeds: 3, akitas: 7, children: 4 104 | Sue 104: cars: 3, perfumes: 10, cats: 6 105 | Sue 105: vizslas: 9, pomeranians: 0, cars: 1 106 | Sue 106: cats: 6, samoyeds: 8, pomeranians: 5 107 | Sue 107: cars: 7, trees: 4, akitas: 10 108 | Sue 108: perfumes: 3, vizslas: 1, goldfish: 9 109 | Sue 109: trees: 6, cars: 8, goldfish: 5 110 | Sue 110: pomeranians: 2, children: 1, vizslas: 7 111 | Sue 111: akitas: 0, vizslas: 8, cars: 0 112 | Sue 112: goldfish: 3, vizslas: 6, akitas: 2 113 | Sue 113: akitas: 10, pomeranians: 7, perfumes: 7 114 | Sue 114: cars: 10, cats: 2, vizslas: 8 115 | Sue 115: akitas: 8, trees: 1, vizslas: 2 116 | Sue 116: vizslas: 2, akitas: 7, perfumes: 1 117 | Sue 117: goldfish: 0, vizslas: 10, trees: 9 118 | Sue 118: trees: 3, cars: 0, goldfish: 0 119 | Sue 119: perfumes: 7, goldfish: 5, trees: 9 120 | Sue 120: children: 9, vizslas: 3, trees: 5 121 | Sue 121: vizslas: 1, goldfish: 7, akitas: 10 122 | Sue 122: perfumes: 1, cars: 6, trees: 1 123 | Sue 123: akitas: 2, vizslas: 0, goldfish: 7 124 | Sue 124: vizslas: 10, pomeranians: 7, akitas: 0 125 | Sue 125: perfumes: 4, cats: 5, vizslas: 2 126 | Sue 126: cars: 6, samoyeds: 8, akitas: 3 127 | Sue 127: trees: 9, goldfish: 7, akitas: 9 128 | Sue 128: cars: 8, trees: 0, perfumes: 2 129 | Sue 129: pomeranians: 7, vizslas: 2, perfumes: 6 130 | Sue 130: vizslas: 9, pomeranians: 3, trees: 6 131 | Sue 131: vizslas: 7, cars: 9, perfumes: 1 132 | Sue 132: akitas: 2, pomeranians: 9, vizslas: 7 133 | Sue 133: trees: 9, pomeranians: 10, samoyeds: 0 134 | Sue 134: children: 4, akitas: 10, perfumes: 4 135 | Sue 135: vizslas: 1, cats: 1, trees: 8 136 | Sue 136: samoyeds: 7, cars: 8, goldfish: 5 137 | Sue 137: perfumes: 0, children: 1, pomeranians: 10 138 | Sue 138: vizslas: 4, perfumes: 5, cars: 5 139 | Sue 139: trees: 2, perfumes: 8, goldfish: 0 140 | Sue 140: cars: 10, akitas: 5, goldfish: 7 141 | Sue 141: children: 4, trees: 3, goldfish: 8 142 | Sue 142: cars: 8, perfumes: 6, trees: 7 143 | Sue 143: akitas: 6, goldfish: 0, trees: 10 144 | Sue 144: akitas: 7, pomeranians: 10, perfumes: 10 145 | Sue 145: trees: 10, vizslas: 3, goldfish: 4 146 | Sue 146: samoyeds: 4, akitas: 3, perfumes: 6 147 | Sue 147: akitas: 8, perfumes: 2, pomeranians: 10 148 | Sue 148: cars: 2, perfumes: 0, goldfish: 8 149 | Sue 149: goldfish: 6, akitas: 7, perfumes: 6 150 | Sue 150: cars: 2, pomeranians: 5, perfumes: 4 151 | Sue 151: goldfish: 1, cars: 5, trees: 0 152 | Sue 152: pomeranians: 4, cars: 7, children: 1 153 | Sue 153: goldfish: 8, cars: 1, children: 10 154 | Sue 154: cars: 6, perfumes: 8, trees: 1 155 | Sue 155: akitas: 4, perfumes: 6, pomeranians: 2 156 | Sue 156: pomeranians: 5, cars: 4, akitas: 1 157 | Sue 157: cats: 5, cars: 9, goldfish: 8 158 | Sue 158: vizslas: 5, samoyeds: 1, children: 7 159 | Sue 159: vizslas: 1, perfumes: 3, akitas: 1 160 | Sue 160: goldfish: 10, pomeranians: 9, perfumes: 5 161 | Sue 161: samoyeds: 3, trees: 7, cars: 2 162 | Sue 162: cars: 2, pomeranians: 1, vizslas: 6 163 | Sue 163: vizslas: 3, perfumes: 5, akitas: 6 164 | Sue 164: vizslas: 1, trees: 0, akitas: 5 165 | Sue 165: vizslas: 5, cars: 6, pomeranians: 8 166 | Sue 166: cars: 10, perfumes: 2, trees: 9 167 | Sue 167: cars: 10, pomeranians: 6, perfumes: 4 168 | Sue 168: akitas: 7, trees: 10, goldfish: 7 169 | Sue 169: akitas: 1, perfumes: 10, cars: 10 170 | Sue 170: akitas: 5, samoyeds: 8, vizslas: 6 171 | Sue 171: children: 3, akitas: 2, vizslas: 3 172 | Sue 172: goldfish: 5, vizslas: 5, perfumes: 9 173 | Sue 173: perfumes: 5, goldfish: 10, trees: 5 174 | Sue 174: akitas: 5, vizslas: 2, children: 7 175 | Sue 175: perfumes: 5, cars: 7, samoyeds: 2 176 | Sue 176: cars: 8, vizslas: 10, akitas: 7 177 | Sue 177: perfumes: 7, children: 8, goldfish: 7 178 | Sue 178: cars: 1, pomeranians: 9, samoyeds: 0 179 | Sue 179: perfumes: 6, cars: 2, trees: 6 180 | Sue 180: trees: 3, vizslas: 7, children: 3 181 | Sue 181: vizslas: 8, samoyeds: 2, trees: 9 182 | Sue 182: perfumes: 3, cats: 1, children: 5 183 | Sue 183: akitas: 9, cats: 6, children: 3 184 | Sue 184: pomeranians: 9, cars: 6, perfumes: 8 185 | Sue 185: vizslas: 9, trees: 0, akitas: 9 186 | Sue 186: perfumes: 6, cars: 5, goldfish: 5 187 | Sue 187: perfumes: 4, cats: 7, vizslas: 2 188 | Sue 188: akitas: 7, cars: 4, children: 10 189 | Sue 189: akitas: 0, goldfish: 7, vizslas: 5 190 | Sue 190: akitas: 5, cars: 5, cats: 6 191 | Sue 191: cars: 6, children: 0, perfumes: 3 192 | Sue 192: cats: 2, perfumes: 10, goldfish: 7 193 | Sue 193: trees: 1, perfumes: 0, cars: 8 194 | Sue 194: perfumes: 9, children: 4, cats: 6 195 | Sue 195: akitas: 7, trees: 3, goldfish: 6 196 | Sue 196: goldfish: 8, cars: 8, samoyeds: 0 197 | Sue 197: cats: 0, akitas: 10, vizslas: 0 198 | Sue 198: goldfish: 1, perfumes: 3, cars: 8 199 | Sue 199: akitas: 10, vizslas: 5, samoyeds: 6 200 | Sue 200: pomeranians: 9, goldfish: 9, samoyeds: 7 201 | Sue 201: samoyeds: 0, goldfish: 7, akitas: 6 202 | Sue 202: vizslas: 0, goldfish: 2, akitas: 1 203 | Sue 203: goldfish: 3, children: 0, vizslas: 8 204 | Sue 204: cars: 8, trees: 2, perfumes: 2 205 | Sue 205: cars: 4, perfumes: 5, goldfish: 8 206 | Sue 206: vizslas: 3, trees: 2, akitas: 1 207 | Sue 207: cars: 7, goldfish: 5, trees: 1 208 | Sue 208: goldfish: 1, cars: 6, vizslas: 8 209 | Sue 209: cats: 4, trees: 1, children: 0 210 | Sue 210: cats: 10, children: 0, perfumes: 0 211 | Sue 211: cars: 4, pomeranians: 7, samoyeds: 5 212 | Sue 212: cars: 2, pomeranians: 10, trees: 1 213 | Sue 213: trees: 10, cats: 5, cars: 10 214 | Sue 214: perfumes: 5, trees: 1, vizslas: 1 215 | Sue 215: akitas: 10, vizslas: 8, samoyeds: 8 216 | Sue 216: vizslas: 2, cats: 5, pomeranians: 3 217 | Sue 217: akitas: 10, perfumes: 0, cats: 10 218 | Sue 218: trees: 8, cats: 5, vizslas: 2 219 | Sue 219: goldfish: 10, perfumes: 8, children: 2 220 | Sue 220: samoyeds: 9, trees: 8, vizslas: 7 221 | Sue 221: children: 7, trees: 6, cars: 6 222 | Sue 222: cats: 4, akitas: 5, pomeranians: 0 223 | Sue 223: trees: 8, goldfish: 2, perfumes: 8 224 | Sue 224: pomeranians: 9, cars: 8, akitas: 5 225 | Sue 225: akitas: 10, vizslas: 0, trees: 2 226 | Sue 226: akitas: 8, cats: 6, cars: 7 227 | Sue 227: trees: 1, akitas: 3, goldfish: 4 228 | Sue 228: pomeranians: 6, cats: 3, goldfish: 3 229 | Sue 229: trees: 10, perfumes: 3, vizslas: 7 230 | Sue 230: perfumes: 8, cars: 7, akitas: 0 231 | Sue 231: perfumes: 10, goldfish: 4, cars: 6 232 | Sue 232: goldfish: 7, trees: 3, cats: 2 233 | Sue 233: perfumes: 6, trees: 4, akitas: 4 234 | Sue 234: goldfish: 9, cats: 4, cars: 7 235 | Sue 235: pomeranians: 6, vizslas: 0, akitas: 6 236 | Sue 236: samoyeds: 5, cars: 5, children: 4 237 | Sue 237: vizslas: 10, cars: 4, goldfish: 4 238 | Sue 238: goldfish: 3, samoyeds: 7, akitas: 2 239 | Sue 239: cats: 8, children: 2, vizslas: 7 240 | Sue 240: cars: 9, perfumes: 4, trees: 9 241 | Sue 241: trees: 8, vizslas: 2, goldfish: 5 242 | Sue 242: cars: 6, trees: 3, vizslas: 3 243 | Sue 243: cats: 6, children: 7, cars: 4 244 | Sue 244: cats: 10, perfumes: 2, goldfish: 7 245 | Sue 245: akitas: 8, cats: 10, perfumes: 8 246 | Sue 246: vizslas: 8, akitas: 5, perfumes: 10 247 | Sue 247: goldfish: 2, vizslas: 5, akitas: 7 248 | Sue 248: akitas: 3, perfumes: 0, trees: 10 249 | Sue 249: cats: 4, vizslas: 5, pomeranians: 6 250 | Sue 250: children: 3, vizslas: 7, perfumes: 2 251 | Sue 251: cars: 0, pomeranians: 10, perfumes: 0 252 | Sue 252: akitas: 0, goldfish: 9, cars: 6 253 | Sue 253: perfumes: 7, cars: 4, samoyeds: 5 254 | Sue 254: akitas: 9, trees: 10, cars: 4 255 | Sue 255: samoyeds: 10, children: 6, akitas: 7 256 | Sue 256: trees: 8, goldfish: 8, perfumes: 8 257 | Sue 257: goldfish: 3, akitas: 2, perfumes: 6 258 | Sue 258: cats: 7, trees: 0, vizslas: 1 259 | Sue 259: perfumes: 7, cars: 7, akitas: 7 260 | Sue 260: goldfish: 0, vizslas: 0, samoyeds: 2 261 | Sue 261: vizslas: 2, children: 2, cats: 3 262 | Sue 262: vizslas: 2, pomeranians: 9, samoyeds: 3 263 | Sue 263: cats: 1, akitas: 3, vizslas: 1 264 | Sue 264: pomeranians: 10, trees: 2, goldfish: 7 265 | Sue 265: samoyeds: 5, trees: 7, perfumes: 4 266 | Sue 266: perfumes: 10, cars: 1, pomeranians: 3 267 | Sue 267: trees: 6, goldfish: 1, cars: 0 268 | Sue 268: cars: 6, samoyeds: 4, pomeranians: 5 269 | Sue 269: goldfish: 3, vizslas: 3, akitas: 3 270 | Sue 270: children: 5, cats: 0, cars: 4 271 | Sue 271: goldfish: 3, perfumes: 8, pomeranians: 7 272 | Sue 272: samoyeds: 6, cars: 7, perfumes: 10 273 | Sue 273: trees: 4, cars: 2, vizslas: 7 274 | Sue 274: samoyeds: 10, perfumes: 9, goldfish: 6 275 | Sue 275: cars: 4, trees: 2, perfumes: 7 276 | Sue 276: akitas: 3, perfumes: 9, cars: 9 277 | Sue 277: akitas: 8, vizslas: 2, cats: 6 278 | Sue 278: trees: 5, goldfish: 7, akitas: 3 279 | Sue 279: perfumes: 9, cars: 8, vizslas: 2 280 | Sue 280: trees: 3, vizslas: 0, children: 0 281 | Sue 281: cars: 7, trees: 2, cats: 5 282 | Sue 282: vizslas: 4, cars: 10, cats: 3 283 | Sue 283: akitas: 10, cats: 3, samoyeds: 9 284 | Sue 284: trees: 7, children: 5, goldfish: 6 285 | Sue 285: cars: 2, perfumes: 5, cats: 7 286 | Sue 286: samoyeds: 5, trees: 10, goldfish: 6 287 | Sue 287: goldfish: 10, perfumes: 4, trees: 7 288 | Sue 288: vizslas: 9, trees: 9, perfumes: 0 289 | Sue 289: trees: 4, goldfish: 9, vizslas: 8 290 | Sue 290: vizslas: 3, cars: 3, trees: 2 291 | Sue 291: goldfish: 2, akitas: 2, trees: 2 292 | Sue 292: children: 1, cars: 0, vizslas: 5 293 | Sue 293: trees: 5, akitas: 4, goldfish: 6 294 | Sue 294: akitas: 3, vizslas: 7, pomeranians: 5 295 | Sue 295: goldfish: 10, vizslas: 3, trees: 1 296 | Sue 296: cars: 2, trees: 1, akitas: 0 297 | Sue 297: akitas: 10, vizslas: 6, samoyeds: 2 298 | Sue 298: children: 5, trees: 1, samoyeds: 9 299 | Sue 299: perfumes: 9, trees: 6, vizslas: 1 300 | Sue 300: akitas: 7, pomeranians: 6, vizslas: 6 301 | Sue 301: cats: 7, children: 6, vizslas: 7 302 | Sue 302: trees: 2, vizslas: 7, samoyeds: 4 303 | Sue 303: goldfish: 0, samoyeds: 10, cars: 4 304 | Sue 304: pomeranians: 9, children: 3, vizslas: 5 305 | Sue 305: akitas: 8, vizslas: 4, cars: 5 306 | Sue 306: akitas: 0, perfumes: 2, pomeranians: 10 307 | Sue 307: akitas: 9, cars: 0, trees: 2 308 | Sue 308: vizslas: 10, goldfish: 8, akitas: 6 309 | Sue 309: trees: 0, cats: 6, perfumes: 2 310 | Sue 310: vizslas: 10, cars: 1, trees: 4 311 | Sue 311: goldfish: 8, perfumes: 6, cats: 3 312 | Sue 312: goldfish: 0, children: 1, akitas: 2 313 | Sue 313: pomeranians: 10, trees: 6, samoyeds: 6 314 | Sue 314: vizslas: 5, akitas: 4, pomeranians: 2 315 | Sue 315: goldfish: 7, trees: 0, akitas: 5 316 | Sue 316: goldfish: 4, vizslas: 5, cars: 7 317 | Sue 317: perfumes: 7, cats: 10, cars: 4 318 | Sue 318: samoyeds: 10, cars: 9, trees: 7 319 | Sue 319: pomeranians: 8, vizslas: 6, cars: 3 320 | Sue 320: cars: 4, cats: 9, akitas: 4 321 | Sue 321: cars: 6, trees: 2, perfumes: 6 322 | Sue 322: goldfish: 1, cats: 2, perfumes: 4 323 | Sue 323: akitas: 6, cats: 5, cars: 8 324 | Sue 324: cats: 4, vizslas: 9, akitas: 0 325 | Sue 325: children: 8, samoyeds: 9, trees: 4 326 | Sue 326: vizslas: 2, samoyeds: 10, perfumes: 7 327 | Sue 327: goldfish: 7, pomeranians: 4, akitas: 10 328 | Sue 328: perfumes: 8, cats: 4, akitas: 10 329 | Sue 329: trees: 0, cars: 9, goldfish: 3 330 | Sue 330: trees: 5, samoyeds: 7, perfumes: 8 331 | Sue 331: cars: 4, perfumes: 2, goldfish: 0 332 | Sue 332: vizslas: 4, pomeranians: 7, akitas: 1 333 | Sue 333: akitas: 4, goldfish: 3, perfumes: 0 334 | Sue 334: samoyeds: 3, akitas: 10, vizslas: 0 335 | Sue 335: goldfish: 1, akitas: 7, vizslas: 6 336 | Sue 336: perfumes: 1, goldfish: 1, pomeranians: 8 337 | Sue 337: children: 5, cars: 4, cats: 4 338 | Sue 338: vizslas: 5, cars: 10, cats: 3 339 | Sue 339: trees: 2, goldfish: 3, cars: 1 340 | Sue 340: trees: 10, goldfish: 6, perfumes: 2 341 | Sue 341: akitas: 5, trees: 6, cats: 3 342 | Sue 342: cars: 10, children: 8, goldfish: 0 343 | Sue 343: cats: 2, akitas: 0, pomeranians: 4 344 | Sue 344: perfumes: 1, vizslas: 3, cars: 3 345 | Sue 345: samoyeds: 8, cats: 5, perfumes: 8 346 | Sue 346: cars: 5, akitas: 10, trees: 2 347 | Sue 347: vizslas: 9, akitas: 9, cars: 3 348 | Sue 348: cars: 3, perfumes: 1, pomeranians: 9 349 | Sue 349: akitas: 1, cars: 4, perfumes: 0 350 | Sue 350: perfumes: 8, vizslas: 2, trees: 6 351 | Sue 351: pomeranians: 5, akitas: 9, cats: 8 352 | Sue 352: pomeranians: 8, vizslas: 3, goldfish: 10 353 | Sue 353: trees: 2, pomeranians: 0, goldfish: 6 354 | Sue 354: cats: 5, akitas: 7, goldfish: 6 355 | Sue 355: goldfish: 6, children: 4, trees: 10 356 | Sue 356: children: 1, trees: 3, akitas: 7 357 | Sue 357: trees: 2, samoyeds: 10, goldfish: 3 358 | Sue 358: samoyeds: 10, cats: 0, goldfish: 0 359 | Sue 359: perfumes: 3, children: 6, pomeranians: 1 360 | Sue 360: cars: 10, pomeranians: 1, samoyeds: 5 361 | Sue 361: samoyeds: 9, pomeranians: 7, perfumes: 6 362 | Sue 362: goldfish: 6, trees: 8, perfumes: 9 363 | Sue 363: samoyeds: 10, pomeranians: 9, children: 10 364 | Sue 364: perfumes: 3, goldfish: 7, cars: 9 365 | Sue 365: cats: 3, children: 4, samoyeds: 8 366 | Sue 366: trees: 0, cars: 10, vizslas: 10 367 | Sue 367: pomeranians: 10, children: 8, perfumes: 2 368 | Sue 368: cars: 5, vizslas: 0, samoyeds: 3 369 | Sue 369: trees: 1, goldfish: 8, cars: 8 370 | Sue 370: vizslas: 0, cars: 2, perfumes: 5 371 | Sue 371: trees: 2, cars: 3, vizslas: 8 372 | Sue 372: trees: 10, children: 9, cats: 1 373 | Sue 373: pomeranians: 3, perfumes: 1, vizslas: 0 374 | Sue 374: vizslas: 0, perfumes: 6, trees: 0 375 | Sue 375: vizslas: 7, pomeranians: 1, akitas: 10 376 | Sue 376: vizslas: 8, trees: 2, cars: 10 377 | Sue 377: perfumes: 9, cats: 5, goldfish: 5 378 | Sue 378: cats: 0, akitas: 10, perfumes: 9 379 | Sue 379: cars: 4, akitas: 1, trees: 1 380 | Sue 380: cars: 4, perfumes: 5, trees: 3 381 | Sue 381: goldfish: 3, akitas: 5, samoyeds: 9 382 | Sue 382: goldfish: 7, perfumes: 5, trees: 5 383 | Sue 383: akitas: 4, cats: 6, cars: 8 384 | Sue 384: children: 6, goldfish: 10, akitas: 7 385 | Sue 385: akitas: 7, vizslas: 5, perfumes: 10 386 | Sue 386: children: 7, vizslas: 10, akitas: 10 387 | Sue 387: goldfish: 6, akitas: 7, trees: 2 388 | Sue 388: vizslas: 6, trees: 1, akitas: 2 389 | Sue 389: cars: 5, vizslas: 3, akitas: 7 390 | Sue 390: vizslas: 4, cats: 8, perfumes: 7 391 | Sue 391: akitas: 3, trees: 0, children: 2 392 | Sue 392: cats: 7, cars: 3, children: 9 393 | Sue 393: trees: 10, vizslas: 3, goldfish: 7 394 | Sue 394: perfumes: 0, goldfish: 7, akitas: 4 395 | Sue 395: cats: 6, cars: 7, vizslas: 0 396 | Sue 396: vizslas: 4, perfumes: 6, goldfish: 5 397 | Sue 397: pomeranians: 8, trees: 1, akitas: 9 398 | Sue 398: goldfish: 7, pomeranians: 6, samoyeds: 9 399 | Sue 399: perfumes: 10, cars: 1, trees: 8 400 | Sue 400: trees: 0, goldfish: 9, children: 6 401 | Sue 401: trees: 1, cars: 6, pomeranians: 8 402 | Sue 402: perfumes: 9, cars: 0, vizslas: 10 403 | Sue 403: samoyeds: 4, akitas: 1, vizslas: 9 404 | Sue 404: perfumes: 0, trees: 2, cars: 4 405 | Sue 405: akitas: 0, perfumes: 5, samoyeds: 4 406 | Sue 406: akitas: 8, vizslas: 6, children: 2 407 | Sue 407: children: 1, trees: 8, goldfish: 10 408 | Sue 408: pomeranians: 4, trees: 10, cars: 9 409 | Sue 409: perfumes: 5, vizslas: 5, akitas: 4 410 | Sue 410: trees: 1, akitas: 10, vizslas: 6 411 | Sue 411: samoyeds: 0, goldfish: 9, perfumes: 7 412 | Sue 412: goldfish: 7, samoyeds: 10, trees: 1 413 | Sue 413: samoyeds: 0, pomeranians: 10, vizslas: 6 414 | Sue 414: children: 2, cars: 10, samoyeds: 2 415 | Sue 415: trees: 2, goldfish: 8, cars: 0 416 | Sue 416: samoyeds: 4, goldfish: 9, trees: 2 417 | Sue 417: trees: 8, akitas: 10, perfumes: 3 418 | Sue 418: samoyeds: 9, goldfish: 2, cars: 1 419 | Sue 419: akitas: 2, perfumes: 8, trees: 2 420 | Sue 420: children: 3, goldfish: 6, perfumes: 5 421 | Sue 421: akitas: 8, perfumes: 2, samoyeds: 6 422 | Sue 422: vizslas: 10, akitas: 4, pomeranians: 3 423 | Sue 423: cats: 8, perfumes: 3, trees: 4 424 | Sue 424: cars: 2, children: 4, pomeranians: 8 425 | Sue 425: pomeranians: 4, samoyeds: 2, goldfish: 4 426 | Sue 426: perfumes: 6, cars: 4, goldfish: 4 427 | Sue 427: akitas: 0, goldfish: 7, perfumes: 5 428 | Sue 428: perfumes: 4, cars: 3, akitas: 5 429 | Sue 429: trees: 0, vizslas: 0, goldfish: 1 430 | Sue 430: perfumes: 4, vizslas: 2, cars: 7 431 | Sue 431: goldfish: 7, pomeranians: 8, trees: 0 432 | Sue 432: goldfish: 7, children: 9, trees: 3 433 | Sue 433: akitas: 1, vizslas: 10, trees: 2 434 | Sue 434: perfumes: 2, cars: 4, goldfish: 10 435 | Sue 435: pomeranians: 6, vizslas: 9, trees: 1 436 | Sue 436: cars: 9, trees: 0, goldfish: 0 437 | Sue 437: trees: 1, goldfish: 1, vizslas: 8 438 | Sue 438: goldfish: 7, samoyeds: 8, children: 2 439 | Sue 439: children: 1, cats: 7, vizslas: 8 440 | Sue 440: cats: 2, pomeranians: 6, goldfish: 4 441 | Sue 441: perfumes: 7, cats: 3, vizslas: 6 442 | Sue 442: akitas: 4, samoyeds: 5, cars: 2 443 | Sue 443: akitas: 3, perfumes: 3, cats: 9 444 | Sue 444: perfumes: 10, akitas: 6, trees: 0 445 | Sue 445: cars: 5, children: 9, perfumes: 8 446 | Sue 446: vizslas: 10, cars: 3, perfumes: 5 447 | Sue 447: children: 9, perfumes: 1, cars: 10 448 | Sue 448: akitas: 0, goldfish: 8, trees: 3 449 | Sue 449: cars: 7, akitas: 8, children: 3 450 | Sue 450: cars: 4, akitas: 9, cats: 0 451 | Sue 451: perfumes: 4, samoyeds: 5, goldfish: 6 452 | Sue 452: perfumes: 10, akitas: 1, cars: 7 453 | Sue 453: trees: 1, goldfish: 3, vizslas: 6 454 | Sue 454: goldfish: 8, pomeranians: 6, trees: 10 455 | Sue 455: akitas: 5, vizslas: 8, goldfish: 10 456 | Sue 456: cats: 5, trees: 4, samoyeds: 0 457 | Sue 457: perfumes: 8, cars: 0, cats: 3 458 | Sue 458: akitas: 1, trees: 10, vizslas: 2 459 | Sue 459: vizslas: 6, akitas: 3, children: 10 460 | Sue 460: perfumes: 7, trees: 9, goldfish: 8 461 | Sue 461: children: 6, vizslas: 4, perfumes: 5 462 | Sue 462: vizslas: 6, akitas: 8, perfumes: 9 463 | Sue 463: goldfish: 8, cars: 4, trees: 10 464 | Sue 464: pomeranians: 8, cars: 5, vizslas: 0 465 | Sue 465: cats: 10, goldfish: 7, akitas: 1 466 | Sue 466: cats: 2, children: 1, cars: 6 467 | Sue 467: perfumes: 3, samoyeds: 6, cars: 0 468 | Sue 468: samoyeds: 10, pomeranians: 6, trees: 2 469 | Sue 469: children: 2, perfumes: 2, pomeranians: 4 470 | Sue 470: cats: 1, perfumes: 5, vizslas: 9 471 | Sue 471: vizslas: 5, perfumes: 2, akitas: 7 472 | Sue 472: samoyeds: 8, goldfish: 6, cats: 1 473 | Sue 473: goldfish: 10, perfumes: 9, cars: 4 474 | Sue 474: samoyeds: 0, cars: 4, vizslas: 4 475 | Sue 475: trees: 2, cars: 7, akitas: 8 476 | Sue 476: vizslas: 3, perfumes: 5, goldfish: 1 477 | Sue 477: cats: 7, cars: 4, trees: 1 478 | Sue 478: vizslas: 8, akitas: 3, goldfish: 0 479 | Sue 479: cars: 6, cats: 3, perfumes: 2 480 | Sue 480: goldfish: 1, children: 9, vizslas: 3 481 | Sue 481: pomeranians: 5, vizslas: 1, cars: 10 482 | Sue 482: children: 5, perfumes: 5, cats: 1 483 | Sue 483: perfumes: 2, goldfish: 7, trees: 6 484 | Sue 484: akitas: 2, goldfish: 4, perfumes: 10 485 | Sue 485: samoyeds: 3, goldfish: 0, akitas: 1 486 | Sue 486: trees: 8, vizslas: 9, goldfish: 0 487 | Sue 487: goldfish: 8, samoyeds: 0, trees: 0 488 | Sue 488: perfumes: 7, cars: 5, trees: 0 489 | Sue 489: vizslas: 3, pomeranians: 2, perfumes: 5 490 | Sue 490: cars: 5, perfumes: 5, akitas: 5 491 | Sue 491: children: 8, trees: 1, pomeranians: 4 492 | Sue 492: pomeranians: 0, akitas: 1, vizslas: 8 493 | Sue 493: akitas: 10, perfumes: 10, samoyeds: 8 494 | Sue 494: perfumes: 6, vizslas: 4, cats: 6 495 | Sue 495: children: 6, pomeranians: 5, samoyeds: 4 496 | Sue 496: vizslas: 1, trees: 5, akitas: 1 497 | Sue 497: vizslas: 10, perfumes: 10, pomeranians: 3 498 | Sue 498: samoyeds: 3, trees: 2, cars: 5 499 | Sue 499: cats: 6, children: 3, perfumes: 0 500 | Sue 500: pomeranians: 10, cats: 3, vizslas: 5 501 | -------------------------------------------------------------------------------- /resources/day17.txt: -------------------------------------------------------------------------------- 1 | 50 2 | 44 3 | 11 4 | 49 5 | 42 6 | 46 7 | 18 8 | 32 9 | 26 10 | 40 11 | 21 12 | 7 13 | 18 14 | 43 15 | 10 16 | 47 17 | 36 18 | 24 19 | 22 20 | 40 21 | -------------------------------------------------------------------------------- /resources/day18.txt: -------------------------------------------------------------------------------- 1 | ####.#.##.###.#.#.##.#..###.#..#.#.#..##....#.###...##..###.##.#.#.#.##...##..#..#....#.#.##..#...## 2 | .##...##.##.######.#.#.##...#.#.#.#.#...#.##.#..#.#.####...#....#....###.#.#.#####....#.#.##.#.#.##. 3 | ###.##..#..#####.......#.########...#.####.###....###.###...#...####.######.#..#####.#.###....####.. 4 | ....#..#..#....###.##.#.....##...#.###.#.#.#..#.#..##...#....#.##.###.#...######......#..#.#..####.# 5 | ..###.####..#.#.#..##.#.#....#......#.##.##..##.#.....##.###.#..###...###.#.##..#.#..###....####.#.# 6 | #.#...#......####.#..##.####.#.#.#...##..###.##.#...#..#..###....#.#....#..##..#....##.....##.#...#. 7 | ....##.#.#.#.##..##...##..##..#....#....###...####.###...##.#...#..#....##.....#..#.#####.###.###.## 8 | #...##..#.#..#....#..########.##....##..##.###..#.#..#..#.##.##.#..##..######....####..#####.#.###.. 9 | .####...######.#..#.##.#.#..####...####.##.#.#......#...##....##..#...###..#.####......###......#.## 10 | .####.###..#..#####.##...###......#...###..#..##..#.#....##.##.#.##.###..#..#..###.#..#.#....####.## 11 | #..#..##.##.##.###.#.##.##.#.#.#....#....#.####.#.##...#####...###.#####.#.#.#....####..###..###..## 12 | #.##....#...########..##...#.#.##.......#.#..##...####...#.####.####..##...##.#....###.#.####...#.## 13 | #.#...##..#.##.##..##....#.....##.##.....#...###...#..#...####.##.####..#...##..##.##.##.##..##...## 14 | .#..###...#.#.....#######..##.###....##..#.##.#......###.##....#......###...#.##....#.....##......## 15 | ..##....#.###...###..####.##..#..##.##......##.#.....#...#..#..##...###..#.####...#...#..##.#..##..# 16 | ...#.#.#...#.#..#.##....##..#...#.##..#......#.#.....#####.##.#...#######.#.#..#.####..###.....###.# 17 | .#....#.#.##..####.#####..#.#######..#.##.###...##.##....##..###..#.##.###.......#....#..######.#### 18 | #..#.##.##..#..#..##.####.#.#.#.#..#.##...#..######....#.##.#..##.##.######.###.###.###...#.....#.#. 19 | .#.......#...#.####.##...#####..##..#.#....##..#.#.#.####.#.##....#..##.##..#.###.....#.##.##.#.##.# 20 | #..##..##...#....#.##.#...#.#....#......####...##..#...##.##.#..#########..#..#.##.##..#.#.#######.. 21 | #.......#####..###..######.#..##.#.#####..##...###...#.####.##...###..#.#.#####....#...#.##...#.#..# 22 | .##..#...#####.##.##......#...#.#.#.###.#.#.#...##.#..#....###.....#..#.#.###......#####.###.#..##.# 23 | .....###.#.#.#..##...#...###..#...#.#.##..###.##.#####.##..#.#.#.#.#####....#.#.#####...##.#..#.#.#. 24 | ###...##.#..#.####..##.#..##.#.#.#...#.#..#..##..##..#.#.#.#.##...##..#..#.....#....#####.#.#.####.# 25 | ....##....#.#.....#...###.#...##..##.##..#..###..##.###..#####..#...#####.##.#..#.#.#.###...####.### 26 | ##.##.##.#...#..#...........##.##.###.#...###.####.#..#..#...#..#..####.#.###########..#.###.###.#.# 27 | ##.##..##.####..###...##...#....###.###.#..##..#..#.###.#..####.#..##.#.#...#..#.#.##.##...#...#.... 28 | ..##...#.#.##....##...#.#.#......##.##.#.#.####.####....####.#.###.##.#.#..####..#..######..#..#.#.. 29 | ####.#.##.......##.###....##.#..####.#.#######..#...###..##.##..#...#...####........#.#..##...#....# 30 | #..#.#.....#..#.###..#.#...###..##...#.#..#.#.##..#...##.##.##.#.#.#..#.####.########....########..# 31 | #...#..##.##..#.#.#.##.##.##.#..#..#.##....#....###.#.###.#.#..#....#...##..#.....####...##.#..#...# 32 | .###...##...####....###.##.#..####...##.#.##.#..##..##....#....##.#...#..#..##..##..##.#...#...###.. 33 | .#..##.#..##..####..#.#.##..###.#...#....##.###...#.###....#.#.#........#..#.#.#..##..#####..#..#.#. 34 | .#.##.....#..#...#.##.....#.##..#..#....#..#..#....#.##..##...#.##.##..##..#.#.#.##..####.##..#.#..# 35 | ...###.#.....#...#.##.#.###.#...##..#.###..#..#..#.#..#...###.#.##.##.##.#.##.#####.#..#.#..#.#...## 36 | #.#.#.#.##.#.....##..#.###......##.#.##..#...#.########.##.###..#..#..##..##.#..##..###.#.###...#.#. 37 | ..##...##...#...###.#..##..#..#..#.#.##..##......##..##.....##.....####..#.##......#..####...###..## 38 | ##.......#..##....###...###......#.##.##....######..###.##...##.#...#...#.....#.###.#.#..#.##..#..#. 39 | #.#..#..#.#####.##.##.###..#...###.....#..##..####...#.#.###....#..#.#.###.####..#.#........##.#.... 40 | ..###.#...##.#.####.#.##.##.....##...#.##.#.###.#.#..##.#..##..#..##.##....#.#####.##..#######.....# 41 | ###.###..##.#..##...#####..##.####....#.##......##......#.#....##.####.#.#.#.###...#..####..#.###### 42 | #..###...#.#.......#..####.####...#....###.###...#.##..##..#..##.##.......####.##...#.#.#.##.#.#..#. 43 | ..#...#..###.##..#.#.#.##..#..#.#.......###..###..#####.#.#.#.#.#..#.#.#.#..###....#.####..###...#.. 44 | ...######.###....#..####.####......#...#.###.#....#...####.##........##...##.#..##.###.#..#..##..### 45 | .#..###.####.###.#.#..#..#..#.##.#.#.###.##..####.#####..##....##.#.##...###.####.#.#######.#..#..#. 46 | .#..##.#..##..#...##...#..#..##.#.#....##.##...###.#.#...##..##..#.###.#.#.#.#...#....#.#..#.#.###.# 47 | .###..#.#..####.#########...####....####.#.##...##.##..#.##.#........#.....###.###.######.##.....### 48 | ..##.##..##..#.####.#..#####.#....##.##.#####.....#.#......##...#####..####....###..#.#...#..####..# 49 | .#..##..##.##.##.##.#.###.###.#..#..#...###.#.##..##...##...###...##.###..#.#.#####.#.#.##....#.##.. 50 | ...#.#....##.#.....###.##...#..##....#...###....#..#.###...##.#...###.#....#...##..###.#.....##....# 51 | .#######..#...##.#.###.##.#.###...##......#.###.#...#.###.#.#.#..#..#####..#########...##..##...#..# 52 | .#..#.##...#.#..#.##..#.#.#.##.....####.#..#.###..##.#.#.#...#....#.#..##.######...#.#..##.##...#..# 53 | #.#######.#####..#####.##.##.#.#.##.###..#....####.#..##.##.######..###...#.#..#.####.##.##....####. 54 | ...##..#...##..#..#.....#.##...#.....##.#####.###.########.######..#...###..#.##.#.#.##..#.#.##..##. 55 | #..#..#.#....###.#...##..####.#.##..#.####.###..##.#...#.###.#..#.##..#######.#...#..#.#..##.#....## 56 | ..#.##.#.####..##.###.###..#.##.#.####..##....##.###.#..##.#.###.###.##.##.#####..#.#...########.... 57 | .#.#.###..###...#...#..##.##......#..#...#.#.#.######.#.#...##..##........#....###..##...#..##.##... 58 | ##..#....##.###...##.#.##.##.##..#....#.#.#..#..####.##..#...#...#..#..#####.###...#..###..#...#.#.. 59 | ##.#.#.##.###.....######.#.....#...#.##....###.#.##.#.#.##..##.######.#####....#.#####...##.#..###.# 60 | ######.#...####..###..##..#..##...#.#....##.#...##...#.....#...##....#.##..###..###...###..#..###### 61 | .....##.........#####.#.##..#..#.#.#.#.##...#....#.....###.########...#..####..#...#...##..#.##.##.# 62 | #..###...#.##.##.#.#..####.#.....##..###....##..#...#.#...##.##..###..####...#.####..##..#..##..#... 63 | #.####.#..##.#..#.....#..#.#..###...######.#.........####....###..#.#.#.##.#..#...#..####.....##..#. 64 | ..##....#.###.......##.#...#.####..##....##.#..#....#######...####.##..#####.#.#.#.#.##..##..#.#.#.. 65 | #.#.#.###..#..#.#..#.#.###....#...#####.###...........#.#....#####...#..####....#...###.#..#..####.. 66 | .......#.####.##...#..#.##..###..#..#.#.#.#.###....#....#.#.#..#.#..##.#####.#.....#.##.#.###.###.## 67 | ..###...#..#...####.#..##..##.#.#..#...#.#..#....###.#..####..######...####.#.##..#.#..###...##.#### 68 | ..#.###..#.#...##...#.#....#..#...#.#..##.######.######.#.##.....#..##.#..###..#..#.##.###...#..#.## 69 | ####..##.####.....#...#.#.###..#...####.###.#.#.#.......##...#....#..#....#.#......###...#####.#.##. 70 | #..##..#..#.####...#####.#.###.##.#.##.....#.#..#.##........######.#.#.###....##.##..##..########.## 71 | #.#....###.##....#######.#...#.#.#.#..##.#.##...#.###...#.#.#..#.#..####.#.#..#..#.##.####....#..##. 72 | ####.##....#.......###..#..##.#.#.##..#...#...##.###....##..###.#.#...#..#.....##.###.##...###....## 73 | ..##.#..#....######..#.##.#.#...##..####.#####...##.#..###.##...#..####..###.##..##.##.#####.#..#.#. 74 | .#.##..#..##.#.###.###....#.#..#....#...###.##.#.#.####.....#....#...#.....#....#.#.###.#..#.##..### 75 | ..###.#.#.##...##.##.##.#...#####.#..##.#....##..####...###..#....#.##...#........#####.#.###.#..#.. 76 | ....#..##..##....#.#....#.#..##...##.#...##.###.#.#..###..##.##.##..#.#.#..#.#.##.......#.##.###..#. 77 | .#..##.##.####.##....##.##.....###..##.#.##...#..###....###.###....#.#....#....#.##.#.##.#.##.....## 78 | #.#..#.##.###.#.######.....###.#..#...#.#.....##.###.#...#.#..###.#.....##.###.#.###.####..#####.#.. 79 | #.#.##......#.##.#.#..##....#..###.#.###...##...###.#..#.##...#..#.##..##.#...######.##.....#####.## 80 | #.#..#####....###.###...#.......#....###.##...#..#.##..#...#####..#..#.##......###...#...###..#.#..# 81 | #.##..##.##.#..#.##.##..#.###.##.........###.#.#..#.#.....#.#...#.#.##.#.##.#...#...####.#.......##. 82 | .#...####.##..#..##....####..######...#.#..##.##.....#####.#...#..#.####.#######...#.#####..#.###... 83 | .#..######.#.##..##...##.....###.#..##..#...####..###...###.###..#..######.#....########..#####...#. 84 | #..##.......#####...###..#.#.##.#..###.#...##.#..#.##.###...###...##.#..##..########..#.#..##..#.### 85 | .#.#..#...#.#..#..##...#.#.##...###..#..#....###.#....#.##....###.###..##..#.#.####..####.#######.## 86 | ...##..##.##.###.##.###...##.#.#.....##.####..#..##.#..#.####...##..#..#.##...##...###.##.#.......## 87 | .#.....#.##..#.#.....#.##.##..###..#....###...#.#....##########.##.###.#...#.####..####.#..#.#..###. 88 | .##.#.#.##..#..###.###.##.#########.#.#.#.#.##.###..##..#.##.####......#####...#..####.#.##..#####.# 89 | ..#....###...##....#.###..##..#..####.##..####.#..####.###.#....####.....#.###..##...##..####...##.# 90 | .###.....###.##.##..###.###.....##..#.######.#.#..##..#.##.#..#.#.#....#...#.#.#...#...##....#..##.# 91 | ..##....#..#####....#..####.#.#...##.#....##..##.###.###....###......#...#.#####.......#...#.....### 92 | ###.#..#.#.##..#..#...#.#....###.##.#.###.#...#.##.#..#.#.......#.#.#.###.####.###....#..##..#####.. 93 | .#..#######.#..###.#.##.#####.#####...##..#.####.#.#.##..###...#..##.##..#.#.###..#....#..#...###.#. 94 | ..#####..#.##.....###..##.#...#.#.#..#######.#..#...#.##.##.#.#....####...###..##...#....####.#..#.# 95 | .####..#.#.##.###.#.##.....#..##.#.....###.....#..##...#....###.###..#......###.#.#.#.##.#.##..#...# 96 | ##.#..##.#..##...#.#....##..######..#.....#..#...#####....##......####.##..#...##..#.##.#.#######..# 97 | ##..####.#...##...#.#####.#.#..#....#.#..##.####.#..######.#..#..#.......#####..#..#..###.##...##.## 98 | #.####......#.###...#..####.#..##.##..#.#...##.###.#...#####..####.#..#.#.....#.##...###...#.#....## 99 | ###.#.#.##.######......#.#.#.#.#........#..#..###.#.#.#..#.........#..#....#.#..#..#..###.##......## 100 | ##.#########...#...###..#.###.....#.#.##.........###....#.####.#...###.#..##..#.###..#..##......#.## 101 | -------------------------------------------------------------------------------- /resources/day19.txt: -------------------------------------------------------------------------------- 1 | Al => ThF 2 | Al => ThRnFAr 3 | B => BCa 4 | B => TiB 5 | B => TiRnFAr 6 | Ca => CaCa 7 | Ca => PB 8 | Ca => PRnFAr 9 | Ca => SiRnFYFAr 10 | Ca => SiRnMgAr 11 | Ca => SiTh 12 | F => CaF 13 | F => PMg 14 | F => SiAl 15 | H => CRnAlAr 16 | H => CRnFYFYFAr 17 | H => CRnFYMgAr 18 | H => CRnMgYFAr 19 | H => HCa 20 | H => NRnFYFAr 21 | H => NRnMgAr 22 | H => NTh 23 | H => OB 24 | H => ORnFAr 25 | Mg => BF 26 | Mg => TiMg 27 | N => CRnFAr 28 | N => HSi 29 | O => CRnFYFAr 30 | O => CRnMgAr 31 | O => HP 32 | O => NRnFAr 33 | O => OTi 34 | P => CaP 35 | P => PTi 36 | P => SiRnFAr 37 | Si => CaSi 38 | Th => ThCa 39 | Ti => BP 40 | Ti => TiTi 41 | e => HF 42 | e => NAl 43 | e => OMg 44 | 45 | ORnPBPMgArCaCaCaSiThCaCaSiThCaCaPBSiRnFArRnFArCaCaSiThCaCaSiThCaCaCaCaCaCaSiRnFYFArSiRnMgArCaSiRnPTiTiBFYPBFArSiRnCaSiRnTiRnFArSiAlArPTiBPTiRnCaSiAlArCaPTiTiBPMgYFArPTiRnFArSiRnCaCaFArRnCaFArCaSiRnSiRnMgArFYCaSiRnMgArCaCaSiThPRnFArPBCaSiRnMgArCaCaSiThCaSiRnTiMgArFArSiThSiThCaCaSiRnMgArCaCaSiRnFArTiBPTiRnCaSiAlArCaPTiRnFArPBPBCaCaSiThCaPBSiThPRnFArSiThCaSiThCaSiThCaPTiBSiRnFYFArCaCaPRnFArPBCaCaPBSiRnTiRnFArCaPRnFArSiRnCaCaCaSiThCaRnCaFArYCaSiRnFArBCaCaCaSiThFArPBFArCaSiRnFArRnCaCaCaFArSiRnFArTiRnPMgArF 46 | -------------------------------------------------------------------------------- /resources/day2.txt: -------------------------------------------------------------------------------- 1 | 3x11x24 2 | 13x5x19 3 | 1x9x27 4 | 24x8x21 5 | 6x8x17 6 | 19x18x22 7 | 10x9x12 8 | 12x2x5 9 | 26x6x11 10 | 9x23x15 11 | 12x8x17 12 | 13x29x10 13 | 28x18x6 14 | 22x28x26 15 | 1x5x11 16 | 29x26x12 17 | 8x28x29 18 | 27x4x21 19 | 12x7x16 20 | 7x4x23 21 | 15x24x8 22 | 15x14x2 23 | 11x6x29 24 | 28x19x9 25 | 10x3x1 26 | 5x20x13 27 | 10x25x1 28 | 22x17x7 29 | 16x29x3 30 | 18x22x8 31 | 18x11x19 32 | 21x24x20 33 | 4x7x17 34 | 22x27x12 35 | 1x26x6 36 | 5x27x24 37 | 29x21x3 38 | 25x30x2 39 | 21x26x2 40 | 10x24x27 41 | 10x16x28 42 | 18x16x23 43 | 6x5x26 44 | 19x12x20 45 | 6x24x25 46 | 11x20x7 47 | 4x8x5 48 | 2x13x11 49 | 11x17x1 50 | 13x24x6 51 | 22x29x16 52 | 4x24x20 53 | 10x25x10 54 | 12x29x23 55 | 23x27x12 56 | 11x21x9 57 | 13x2x6 58 | 15x30x2 59 | 8x26x24 60 | 24x7x30 61 | 22x22x8 62 | 29x27x8 63 | 28x23x27 64 | 13x16x14 65 | 9x28x20 66 | 21x4x30 67 | 21x20x20 68 | 11x17x30 69 | 9x14x22 70 | 20x2x6 71 | 10x11x14 72 | 1x8x23 73 | 23x19x19 74 | 26x10x13 75 | 21x12x12 76 | 25x7x24 77 | 1x28x17 78 | 20x23x9 79 | 2x24x27 80 | 20x24x29 81 | 1x3x10 82 | 5x20x14 83 | 25x21x3 84 | 15x5x22 85 | 14x17x19 86 | 27x3x18 87 | 29x23x19 88 | 14x21x19 89 | 20x8x3 90 | 22x27x12 91 | 24x15x18 92 | 9x10x19 93 | 29x25x28 94 | 14x22x6 95 | 4x19x28 96 | 4x24x14 97 | 17x19x17 98 | 7x19x29 99 | 28x8x26 100 | 7x20x16 101 | 11x26x29 102 | 2x18x3 103 | 12x7x18 104 | 11x15x21 105 | 24x7x26 106 | 2x22x23 107 | 2x30x5 108 | 1x19x8 109 | 15x29x10 110 | 15x26x22 111 | 20x16x14 112 | 25x29x22 113 | 3x13x19 114 | 1x12x30 115 | 3x15x27 116 | 19x9x11 117 | 30x8x21 118 | 26x12x20 119 | 11x17x19 120 | 17x25x1 121 | 19x24x12 122 | 30x6x20 123 | 11x19x18 124 | 18x15x29 125 | 18x8x9 126 | 25x15x5 127 | 15x6x26 128 | 13x27x19 129 | 23x24x12 130 | 3x15x28 131 | 17x10x10 132 | 15x4x7 133 | 15x27x7 134 | 21x8x11 135 | 9x18x2 136 | 7x20x20 137 | 17x23x12 138 | 2x19x1 139 | 7x26x26 140 | 13x23x8 141 | 10x3x12 142 | 11x1x9 143 | 1x11x19 144 | 25x14x26 145 | 16x10x15 146 | 7x6x11 147 | 8x1x27 148 | 20x28x17 149 | 3x25x9 150 | 30x7x5 151 | 17x17x4 152 | 23x25x27 153 | 23x8x5 154 | 13x11x1 155 | 15x10x21 156 | 22x16x1 157 | 12x15x28 158 | 27x18x26 159 | 25x18x5 160 | 21x3x27 161 | 15x25x5 162 | 29x27x19 163 | 11x10x12 164 | 22x16x21 165 | 11x8x18 166 | 6x10x23 167 | 21x21x2 168 | 13x27x28 169 | 2x5x20 170 | 23x16x20 171 | 1x21x7 172 | 22x2x13 173 | 11x10x4 174 | 7x3x4 175 | 19x2x5 176 | 21x11x1 177 | 7x27x26 178 | 12x4x23 179 | 12x3x15 180 | 25x7x4 181 | 20x7x15 182 | 16x5x11 183 | 1x18x26 184 | 11x27x10 185 | 17x6x24 186 | 19x13x16 187 | 6x3x11 188 | 4x19x18 189 | 16x15x15 190 | 1x11x17 191 | 19x11x29 192 | 18x19x1 193 | 1x25x7 194 | 8x22x14 195 | 15x6x19 196 | 5x30x18 197 | 30x24x22 198 | 11x16x2 199 | 21x29x19 200 | 20x29x11 201 | 27x1x18 202 | 20x5x30 203 | 12x4x28 204 | 3x9x30 205 | 26x20x15 206 | 18x25x18 207 | 20x28x28 208 | 21x5x3 209 | 20x21x25 210 | 19x27x22 211 | 8x27x9 212 | 1x5x15 213 | 30x6x19 214 | 16x5x15 215 | 18x30x21 216 | 4x15x8 217 | 9x3x28 218 | 18x15x27 219 | 25x11x6 220 | 17x22x15 221 | 18x12x18 222 | 14x30x30 223 | 1x7x23 224 | 27x21x12 225 | 15x7x18 226 | 16x17x24 227 | 11x12x19 228 | 18x15x21 229 | 6x18x15 230 | 2x21x4 231 | 12x9x14 232 | 19x7x25 233 | 22x3x1 234 | 29x19x7 235 | 30x25x7 236 | 6x27x27 237 | 5x13x9 238 | 21x4x18 239 | 13x1x16 240 | 11x21x25 241 | 27x20x27 242 | 14x25x9 243 | 23x11x15 244 | 22x10x26 245 | 15x16x4 246 | 14x16x21 247 | 1x1x24 248 | 17x27x3 249 | 25x28x16 250 | 12x2x29 251 | 9x19x28 252 | 12x7x17 253 | 6x9x19 254 | 15x14x24 255 | 25x21x23 256 | 26x27x25 257 | 7x18x13 258 | 15x10x6 259 | 22x28x2 260 | 15x2x14 261 | 3x24x18 262 | 30x22x7 263 | 18x27x17 264 | 29x18x7 265 | 20x2x4 266 | 4x20x26 267 | 23x30x15 268 | 5x7x3 269 | 4x24x12 270 | 24x30x20 271 | 26x18x17 272 | 6x28x3 273 | 29x19x29 274 | 14x10x4 275 | 15x5x23 276 | 12x25x4 277 | 7x15x19 278 | 26x21x19 279 | 18x2x23 280 | 19x20x3 281 | 3x13x9 282 | 29x21x24 283 | 26x13x29 284 | 30x27x4 285 | 20x10x29 286 | 21x18x8 287 | 7x26x10 288 | 29x16x21 289 | 22x5x11 290 | 17x15x2 291 | 7x29x5 292 | 6x18x15 293 | 23x6x14 294 | 10x30x14 295 | 26x6x16 296 | 24x13x25 297 | 17x29x20 298 | 4x27x19 299 | 28x12x11 300 | 23x20x3 301 | 22x6x20 302 | 29x9x19 303 | 10x16x22 304 | 30x26x4 305 | 29x26x11 306 | 2x11x15 307 | 1x3x30 308 | 30x30x29 309 | 9x1x3 310 | 30x13x16 311 | 20x4x5 312 | 23x28x11 313 | 24x27x1 314 | 4x25x10 315 | 9x3x6 316 | 14x4x15 317 | 4x5x25 318 | 27x14x13 319 | 20x30x3 320 | 28x15x25 321 | 5x19x2 322 | 10x24x29 323 | 29x30x18 324 | 30x1x25 325 | 7x7x15 326 | 1x13x16 327 | 23x18x4 328 | 1x28x8 329 | 24x11x8 330 | 22x26x19 331 | 30x30x14 332 | 2x4x13 333 | 27x20x26 334 | 16x20x17 335 | 11x12x13 336 | 28x2x17 337 | 15x26x13 338 | 29x15x25 339 | 30x27x9 340 | 2x6x25 341 | 10x26x19 342 | 16x8x23 343 | 12x17x18 344 | 26x14x22 345 | 13x17x4 346 | 27x27x29 347 | 17x13x22 348 | 9x8x3 349 | 25x15x20 350 | 14x13x16 351 | 8x7x13 352 | 12x4x21 353 | 27x16x15 354 | 6x14x5 355 | 28x29x17 356 | 23x17x25 357 | 10x27x28 358 | 1x28x21 359 | 18x2x30 360 | 25x30x16 361 | 25x21x7 362 | 2x3x4 363 | 9x6x13 364 | 19x6x10 365 | 28x17x8 366 | 13x24x28 367 | 24x12x7 368 | 5x19x5 369 | 18x10x27 370 | 16x1x6 371 | 12x14x30 372 | 1x2x28 373 | 23x21x2 374 | 13x3x23 375 | 9x22x10 376 | 10x17x2 377 | 24x20x11 378 | 30x6x14 379 | 28x1x16 380 | 24x20x1 381 | 28x7x7 382 | 1x24x21 383 | 14x9x7 384 | 22x8x15 385 | 20x1x21 386 | 6x3x7 387 | 7x26x14 388 | 5x7x28 389 | 5x4x4 390 | 15x7x28 391 | 30x16x23 392 | 7x26x2 393 | 1x2x30 394 | 24x28x20 395 | 5x17x28 396 | 4x15x20 397 | 15x26x2 398 | 1x3x23 399 | 22x30x24 400 | 9x20x16 401 | 7x15x2 402 | 6x21x18 403 | 21x21x29 404 | 29x10x10 405 | 4x3x23 406 | 23x2x18 407 | 29x24x14 408 | 29x29x16 409 | 22x28x24 410 | 21x18x24 411 | 16x21x6 412 | 3x9x22 413 | 9x18x4 414 | 22x9x9 415 | 12x9x13 416 | 18x21x14 417 | 7x8x29 418 | 28x28x14 419 | 1x6x24 420 | 11x11x3 421 | 8x28x6 422 | 11x16x10 423 | 9x16x16 424 | 6x6x19 425 | 21x5x12 426 | 15x17x12 427 | 3x6x29 428 | 19x1x26 429 | 10x30x25 430 | 24x26x21 431 | 1x10x18 432 | 6x1x16 433 | 4x17x27 434 | 17x11x27 435 | 15x15x21 436 | 14x23x1 437 | 8x9x30 438 | 22x22x25 439 | 20x27x22 440 | 12x7x9 441 | 9x26x19 442 | 26x25x12 443 | 8x8x16 444 | 28x15x10 445 | 29x18x2 446 | 25x22x6 447 | 4x6x15 448 | 12x18x4 449 | 10x3x20 450 | 17x28x17 451 | 14x25x13 452 | 14x10x3 453 | 14x5x10 454 | 7x7x22 455 | 21x2x14 456 | 1x21x5 457 | 27x29x1 458 | 6x20x4 459 | 7x19x23 460 | 28x19x27 461 | 3x9x18 462 | 13x17x17 463 | 18x8x15 464 | 26x23x17 465 | 10x10x13 466 | 11x5x21 467 | 25x15x29 468 | 6x23x24 469 | 10x7x2 470 | 19x10x30 471 | 4x3x23 472 | 22x12x6 473 | 11x17x16 474 | 6x8x12 475 | 18x20x11 476 | 6x2x2 477 | 17x4x11 478 | 20x23x22 479 | 29x23x24 480 | 25x11x21 481 | 22x11x15 482 | 29x3x9 483 | 13x30x5 484 | 17x10x12 485 | 10x30x8 486 | 21x16x17 487 | 1x5x26 488 | 22x15x16 489 | 27x7x11 490 | 16x8x18 491 | 29x9x7 492 | 25x4x17 493 | 10x21x25 494 | 2x19x21 495 | 29x11x16 496 | 18x26x21 497 | 2x8x20 498 | 17x29x27 499 | 25x27x4 500 | 14x3x14 501 | 25x29x29 502 | 26x18x11 503 | 8x24x28 504 | 7x30x24 505 | 12x30x22 506 | 29x20x6 507 | 3x17x1 508 | 6x15x14 509 | 6x22x20 510 | 13x26x26 511 | 12x2x1 512 | 7x14x12 513 | 15x16x11 514 | 3x21x4 515 | 30x17x29 516 | 9x18x27 517 | 11x28x16 518 | 22x3x25 519 | 18x15x15 520 | 2x30x12 521 | 3x27x22 522 | 10x8x8 523 | 26x16x14 524 | 15x2x29 525 | 12x10x7 526 | 21x20x15 527 | 2x15x25 528 | 4x14x13 529 | 3x15x13 530 | 29x8x3 531 | 7x7x28 532 | 15x10x24 533 | 23x15x5 534 | 5x7x14 535 | 24x1x22 536 | 1x11x13 537 | 26x4x19 538 | 19x16x26 539 | 5x25x5 540 | 17x25x14 541 | 23x7x14 542 | 24x6x17 543 | 5x13x12 544 | 20x20x5 545 | 22x29x17 546 | 11x17x29 547 | 25x6x4 548 | 29x8x16 549 | 28x22x24 550 | 24x23x17 551 | 16x17x4 552 | 17x8x25 553 | 22x9x13 554 | 24x4x8 555 | 18x10x20 556 | 21x23x21 557 | 13x14x12 558 | 23x26x4 559 | 4x10x29 560 | 2x18x18 561 | 19x5x21 562 | 2x27x23 563 | 6x29x30 564 | 21x9x20 565 | 6x5x16 566 | 25x10x27 567 | 5x29x21 568 | 24x14x19 569 | 19x11x8 570 | 2x28x6 571 | 19x25x6 572 | 27x1x11 573 | 6x8x29 574 | 18x25x30 575 | 4x27x26 576 | 8x12x1 577 | 7x17x25 578 | 7x14x27 579 | 12x9x5 580 | 14x29x13 581 | 18x17x5 582 | 23x1x3 583 | 28x5x13 584 | 3x2x26 585 | 3x7x11 586 | 1x8x7 587 | 12x5x4 588 | 2x30x21 589 | 16x30x11 590 | 3x26x4 591 | 16x9x4 592 | 11x9x22 593 | 23x5x6 594 | 13x20x3 595 | 4x3x2 596 | 14x10x29 597 | 11x8x12 598 | 26x15x16 599 | 7x17x29 600 | 18x19x18 601 | 8x28x4 602 | 22x6x13 603 | 9x23x7 604 | 11x23x20 605 | 13x11x26 606 | 15x30x13 607 | 1x5x8 608 | 5x10x24 609 | 22x25x17 610 | 27x20x25 611 | 30x10x21 612 | 16x28x24 613 | 20x12x8 614 | 17x25x1 615 | 30x14x9 616 | 14x18x6 617 | 8x28x29 618 | 12x18x29 619 | 9x7x18 620 | 6x12x25 621 | 20x13x24 622 | 22x3x12 623 | 5x23x22 624 | 8x10x17 625 | 7x23x5 626 | 10x26x27 627 | 14x26x19 628 | 10x18x24 629 | 8x4x4 630 | 16x15x11 631 | 3x14x9 632 | 18x5x30 633 | 29x12x26 634 | 16x13x12 635 | 15x10x7 636 | 18x5x26 637 | 14x1x6 638 | 10x8x29 639 | 3x4x9 640 | 19x4x23 641 | 28x17x23 642 | 30x7x17 643 | 19x5x9 644 | 26x29x28 645 | 22x13x17 646 | 28x2x1 647 | 20x30x8 648 | 15x13x21 649 | 25x23x19 650 | 27x23x1 651 | 4x6x23 652 | 29x29x24 653 | 5x18x7 654 | 4x6x30 655 | 17x15x2 656 | 27x4x2 657 | 25x24x14 658 | 28x8x30 659 | 24x29x5 660 | 14x30x14 661 | 10x18x19 662 | 15x26x22 663 | 24x19x21 664 | 29x23x27 665 | 21x10x16 666 | 7x4x29 667 | 14x21x3 668 | 21x4x28 669 | 17x16x15 670 | 24x7x13 671 | 21x24x15 672 | 25x11x16 673 | 10x26x13 674 | 23x20x14 675 | 20x29x27 676 | 14x24x14 677 | 14x23x12 678 | 18x6x5 679 | 3x18x9 680 | 8x18x19 681 | 20x26x15 682 | 16x14x13 683 | 30x16x3 684 | 17x13x4 685 | 15x19x30 686 | 20x3x8 687 | 13x4x5 688 | 12x10x15 689 | 8x23x26 690 | 16x8x15 691 | 22x8x11 692 | 12x11x18 693 | 28x3x30 694 | 15x8x4 695 | 13x22x13 696 | 21x26x21 697 | 29x1x15 698 | 28x9x5 699 | 27x3x26 700 | 22x19x30 701 | 4x11x22 702 | 21x27x20 703 | 22x26x7 704 | 19x28x20 705 | 24x23x16 706 | 26x12x9 707 | 13x22x9 708 | 5x6x23 709 | 20x7x2 710 | 18x26x30 711 | 3x6x28 712 | 24x18x13 713 | 28x19x16 714 | 25x21x25 715 | 25x19x23 716 | 22x29x10 717 | 29x19x30 718 | 4x7x27 719 | 5x12x28 720 | 8x26x6 721 | 14x14x25 722 | 17x17x2 723 | 5x27x11 724 | 8x2x2 725 | 3x20x24 726 | 26x10x9 727 | 22x28x27 728 | 18x15x20 729 | 12x11x1 730 | 5x14x30 731 | 7x3x16 732 | 2x16x16 733 | 18x20x15 734 | 13x14x29 735 | 1x17x12 736 | 13x5x23 737 | 19x4x10 738 | 25x19x11 739 | 15x17x14 740 | 1x28x27 741 | 11x9x28 742 | 9x10x18 743 | 30x11x22 744 | 21x21x20 745 | 2x1x5 746 | 2x25x1 747 | 7x3x4 748 | 22x15x29 749 | 21x28x15 750 | 12x12x4 751 | 21x30x6 752 | 15x10x7 753 | 10x14x6 754 | 21x26x18 755 | 14x25x6 756 | 9x7x11 757 | 22x3x1 758 | 1x16x27 759 | 1x14x23 760 | 2x13x8 761 | 14x19x11 762 | 21x26x1 763 | 4x28x13 764 | 12x16x20 765 | 21x13x9 766 | 3x4x13 767 | 14x9x8 768 | 21x21x12 769 | 27x10x17 770 | 6x20x6 771 | 28x23x23 772 | 2x28x12 773 | 8x10x10 774 | 3x9x2 775 | 20x3x29 776 | 19x4x16 777 | 29x24x9 778 | 26x20x8 779 | 15x28x26 780 | 18x17x10 781 | 7x22x10 782 | 20x15x9 783 | 6x10x8 784 | 7x26x21 785 | 8x8x16 786 | 15x6x29 787 | 22x30x11 788 | 18x25x8 789 | 6x21x20 790 | 7x23x25 791 | 8x25x26 792 | 11x25x27 793 | 22x18x23 794 | 3x2x14 795 | 16x16x1 796 | 15x13x11 797 | 3x9x25 798 | 29x25x24 799 | 9x15x1 800 | 12x4x1 801 | 23x30x20 802 | 3x1x23 803 | 6x10x29 804 | 28x13x24 805 | 4x19x17 806 | 6x6x25 807 | 27x29x17 808 | 12x13x2 809 | 10x7x13 810 | 14x15x8 811 | 22x2x3 812 | 27x17x19 813 | 23x10x16 814 | 5x9x25 815 | 9x25x14 816 | 11x18x6 817 | 18x10x12 818 | 9x4x15 819 | 7x16x14 820 | 17x24x10 821 | 11x4x6 822 | 12x9x17 823 | 22x18x12 824 | 6x24x24 825 | 6x22x23 826 | 5x17x30 827 | 6x9x5 828 | 17x20x10 829 | 6x8x12 830 | 14x17x13 831 | 29x10x17 832 | 22x4x5 833 | 10x19x30 834 | 22x29x11 835 | 10x12x29 836 | 21x22x26 837 | 16x6x25 838 | 1x26x24 839 | 30x17x16 840 | 27x28x5 841 | 30x13x22 842 | 7x26x12 843 | 11x24x30 844 | 1x17x25 845 | 22x1x3 846 | 29x24x6 847 | 4x8x24 848 | 13x9x20 849 | 8x12x9 850 | 21x25x4 851 | 23x23x28 852 | 5x2x19 853 | 29x3x15 854 | 22x1x14 855 | 3x23x30 856 | 8x25x3 857 | 15x8x14 858 | 30x14x6 859 | 23x27x24 860 | 19x1x2 861 | 10x9x13 862 | 13x8x7 863 | 8x13x22 864 | 5x15x20 865 | 17x14x8 866 | 5x11x20 867 | 5x10x27 868 | 24x17x19 869 | 21x2x3 870 | 15x30x26 871 | 21x19x15 872 | 2x7x23 873 | 13x17x25 874 | 30x15x19 875 | 26x4x10 876 | 2x25x8 877 | 9x9x10 878 | 2x25x8 879 | 19x21x30 880 | 17x26x12 881 | 7x5x10 882 | 2x22x14 883 | 10x17x30 884 | 1x8x5 885 | 23x2x25 886 | 22x29x8 887 | 13x26x1 888 | 26x3x30 889 | 25x17x8 890 | 25x18x26 891 | 26x19x15 892 | 8x28x10 893 | 12x16x29 894 | 30x6x29 895 | 28x19x4 896 | 27x26x18 897 | 15x23x17 898 | 5x21x30 899 | 8x11x13 900 | 2x26x7 901 | 19x9x24 902 | 3x22x23 903 | 6x7x18 904 | 4x26x30 905 | 13x25x20 906 | 17x3x15 907 | 8x20x18 908 | 23x18x23 909 | 28x23x9 910 | 16x3x4 911 | 1x29x14 912 | 20x26x22 913 | 3x2x22 914 | 23x8x17 915 | 19x5x17 916 | 21x18x20 917 | 17x21x8 918 | 30x28x1 919 | 29x19x23 920 | 12x12x11 921 | 24x18x7 922 | 21x18x14 923 | 14x26x25 924 | 9x11x3 925 | 10x7x15 926 | 27x6x28 927 | 14x26x4 928 | 28x4x1 929 | 22x25x29 930 | 6x26x6 931 | 1x3x13 932 | 26x22x12 933 | 6x21x26 934 | 23x4x27 935 | 26x13x24 936 | 5x24x28 937 | 22x16x7 938 | 3x27x24 939 | 19x28x2 940 | 11x13x9 941 | 29x16x22 942 | 30x10x24 943 | 14x14x22 944 | 22x23x16 945 | 14x8x3 946 | 20x5x14 947 | 28x6x13 948 | 3x15x25 949 | 4x12x22 950 | 15x12x25 951 | 10x11x24 952 | 7x7x6 953 | 8x11x9 954 | 21x10x29 955 | 23x28x30 956 | 8x29x26 957 | 16x27x11 958 | 1x10x2 959 | 24x20x16 960 | 7x12x28 961 | 28x8x20 962 | 14x10x30 963 | 1x19x6 964 | 4x12x20 965 | 18x2x7 966 | 24x18x17 967 | 16x11x10 968 | 1x12x22 969 | 30x16x28 970 | 18x12x11 971 | 28x9x8 972 | 23x6x17 973 | 10x3x11 974 | 5x12x8 975 | 22x2x23 976 | 9x19x14 977 | 15x28x13 978 | 27x20x23 979 | 19x16x12 980 | 19x30x15 981 | 8x17x4 982 | 10x22x18 983 | 13x22x4 984 | 3x12x19 985 | 22x16x23 986 | 11x8x19 987 | 8x11x6 988 | 7x14x7 989 | 29x17x29 990 | 21x8x12 991 | 21x9x11 992 | 20x1x27 993 | 1x22x11 994 | 5x28x4 995 | 26x7x26 996 | 30x12x18 997 | 29x11x20 998 | 3x12x15 999 | 24x25x17 1000 | 14x6x11 1001 | -------------------------------------------------------------------------------- /resources/day23.txt: -------------------------------------------------------------------------------- 1 | jio a, +18 2 | inc a 3 | tpl a 4 | inc a 5 | tpl a 6 | tpl a 7 | tpl a 8 | inc a 9 | tpl a 10 | inc a 11 | tpl a 12 | inc a 13 | inc a 14 | tpl a 15 | tpl a 16 | tpl a 17 | inc a 18 | jmp +22 19 | tpl a 20 | inc a 21 | tpl a 22 | inc a 23 | inc a 24 | tpl a 25 | inc a 26 | tpl a 27 | inc a 28 | inc a 29 | tpl a 30 | tpl a 31 | inc a 32 | inc a 33 | tpl a 34 | inc a 35 | inc a 36 | tpl a 37 | inc a 38 | inc a 39 | tpl a 40 | jio a, +8 41 | inc b 42 | jie a, +4 43 | tpl a 44 | inc a 45 | jmp +2 46 | hlf a 47 | jmp -7 48 | -------------------------------------------------------------------------------- /resources/day24.txt: -------------------------------------------------------------------------------- 1 | 1 2 | 2 3 | 3 4 | 7 5 | 11 6 | 13 7 | 17 8 | 19 9 | 23 10 | 31 11 | 37 12 | 41 13 | 43 14 | 47 15 | 53 16 | 59 17 | 61 18 | 67 19 | 71 20 | 73 21 | 79 22 | 83 23 | 89 24 | 97 25 | 101 26 | 103 27 | 107 28 | 109 29 | 113 30 | -------------------------------------------------------------------------------- /resources/day3.txt: -------------------------------------------------------------------------------- 1 | v>vvv>v<<<^^^^^<<^^>v^>^>^>^>^>^<<^><<<^vvvv>^>^><^v^><^<>^^>^vvv^>^>^^<>><>^>vvv>>^vv>^<><>^^>^>><<^><><>^<^>>vvv>v>>>v<<^<><^v>^^v^^^<^v^^>>><^>^>v<>^<>>^>^^v^>>><>v^v<>>^>^<>v^>^<>^v^^^v^^>>vv<<^^><^^>^^<^>>^^^^^v^vv<>>v^v<^v^^<><^<^vv^><>><><>v>vvv^vv^^<<><<<^v^>vvv^<^>vvvv^>^>>^v^v>vv^<>><^^^>^>>v>^>v^<>v><^<^^^vv<^^<>v^v^vv<>>>>v^v<>><^^v>vv^^>v^v>v>v>>vv>^^>^v><<^<vv^^^v>v^^^>><^^>v>^^v>>v^^^<^^v>^v>><^<^<>>v<<^^vv>^^^v<^<^^vv^>>v^>><<<>^vv^<^<>v^^<<^><>>^^^<^vv<^^^>><^^v>^^v^^^^<^v<^<<<<^v^<^^<>^^>^><<>>^v><>><^<^^^>>vv>^>^^^^^v^vvv><><^<^>v>v^v^>^><><^<^><>v<><>^v^^v>^<<<>^v^>^<v^<>>^vv>v>>>^<^>>>>>v>>^v>v><>>vvv<^^><<^>^>v<^vvvv<^^^v^^^>v^v<>v<^^v>>><>v>v>>^^<^^v><<<<<^vv<^<>^>>>^v>^v>vv>^v<>v>v<^>>v>>^>^><^^v<><><^^>^^^^>vv^v^v>^v^^v^^v>><^v>>vv<>vvvv<>>^v^>^>>v^v^<<>>^v<^^vv^><>v>^>v><<<<<<<^>^^v^<<^^>>vvv^<><>><>^^v<<^^v<^^>v^>>>v^v>v^><>v<<>v>^^v><<<<><^v^v>>^<>^<<>^>v<<>><^<<<<^v>^<^v>v>vv^>v<^<<>v^v>><v>v>>v^vvv^^>>>v^<^<<^^<<<>v^<v<^^<>^>v>>v<>^>^^>>^v<<>v^^^>>>^vv<^v^>v>^><>v^^<>^^v^^vv^<^>^<<>><<^>^v>>><<<<><<^v>v^<^><^<>>v^>^^^<>>v<>>^>>v^><<>vvv><^>>v><>v>>^>v><<><<>^<>^^^vv>v^^>>^>^<^vv^>v^>^><^<^><><v<^^v^^<<<<^><^^<^><>>^v<<^<<^vv>v>>v<^<^vv>>v^v<>^>v<>^v<<>^^v>>>v^>^v^v>^^^v><^>vvv^<<<>v<>v>^>vv^<^^v^><^^^^^v<^>>vv^v^>^^<>>><^v^<v>^v>^^v<>>vv>>^v>>^<<<<^><<<><^^>>v<>^vvvv>v^^^>^^^>^<^^vv<^v^v<v^^<>^>^<^v>vvv><<^><><^^v<<><^^><>^v>^<><<^<^^<<>vv<>^^<<^>><<<>>vvv>^>v^^v^><<^>v>^>^<^<<>v<^>vv^v^v<>vv<vv<^>v^<>^vv^v^>>>v^v><^<><<>vv^>vvv^>v>>><^^vvv<^<^>>^^>^^vv>>><^v<>^v^<<>v^^^^>>^<^>^v<^^^^v>^>>v>^>^>>>v^<<^>^<<^^<>v<^v<^<>v^v>^^v^vv>vvv>v^<^>>vvvv<>>^^<>v^<><>v<^<>v<>^>v<>vv>v<^^>v>><>>^<^^<>>^>^>vvv^v>>^>^>v><><<>v<>^v<^vv^^^<>^^<<^^^v<>>v^>vvvv>^^v^>^>^<<><^^^^<<>^<>vv^<><^>^^<>v^<>>>v><>vvvvv>v>v^^>^<vv>>v<<^<>^^^v^<><>>^<<>>><>v>^>^^^^vv^^<<><^^<v>vv<<<^<v<>>^<^>^>>v>><^^<>><<<><<><^<^v<^^v<<>><<<<^>v^>v^v^<<>>v<><^<>><>>^><>v^v>v<<>v<>v^^><<>>>v<<>>>>^>v>>>>vv>v>^<^^^<>v^<^^v^vvv^>vv>^^<<>vvv<<^^<^>^>>v>v<<<<<>^^vv^>>v>^<^^v>>v>^v<><>^<^>v>v<<<^^^v>^<<<>vvv^v^^>^>>^>v>v<>^^><>>v>^>v<<<^^^v^><><^<^<>>^v>vv<^v<<^vv>v^<v>v>^v^>^v<<^v^vv>v^<<>>v<>>vvv^^vv^^v><^>v^vv<^^<<>v<><^><>^<><vv<>^vv>v><^^v<>><^v^v><><>>vv<>>>><<^>>><^^^vvv<<><>>>v<<<<<>v^^<<^vv^>vv>^<>^v^^<>^^^vv>v^^v>^v>^<>v^^^>v^^v<^>v^v^<>v>v>v<^^vv^v<^^^^vv<<><<^>>^^<v^>>^^^><^^>^v^v>^<^>>^v<>^<^>v>^>^v^<^^^<^vv<^^>>v^>^v^>>>>^v>^^<<^<^^v^<<<>>><>^<>>>v<<><<^^<^^>v^>^>v^v<><^^v>^<^v^v>>>^^<^^vv<<^><><^<>v>>>vv>><^^^v^^^v<^^v>v<>>^^<><>v>^^>>>><>v>^v>^vv^v>^>^^^><>^<<>>><<<><>^^<<v^>v>v^^^>^>^v<<>v>vv>><<^^^>>^><^>v<^<^v>><^^>v<><>^><<><>v^>v<><^^>><>^<^^v<^<><<<^^<><>>>^>v^<><^<<^vv<^v^v^v<>v^^v>v^<^>^vv^>>><<>v^vv^<>^v^><v^<><>>v^v^><>v^vvv^^^<<^<>v^v>^^><>v>>v^<>^>v>^>><<>v^v><^v>v>>><^<^^>vv<^>^<^>^^v><><^<<^^vvv^v>^>^<>>vv>v^^v^^vv<^^>><^v>v^<vvv<>>^v><<>^v<<<>^><^vv><<^^v<^vv<>^v>>>><<<<^^<^v>^<^^<^<^^>>^^v>^^^^v^^^<<>^^vv<><^<<><>^>v<>>v^^^>^v^^v^v>>>>>^v>^>^^v>><^^^v<<^^>^<^<^><^<<>v>v>^v<><^>vv^vv><^><>^><<^^>v>v>^^^<>v>^v^^>vv^vv<^^>><>^>^<>v>><>^v<v>^><^^^v^<<^v^>v^>vv>v^<>v><^v>v<>^v<>^v>^^<>vvv^>^<><^>><^<>^v<<^v^><<^<^v>^vv^v>v<^^vv<><>vv^>v<<>v>v>^^>>><<<^>^vv>>^^^>v<^vv<>v<<>>>^<^^^^>v<^^<>v>vvv^>v>v<^>^v^<>v>>vvv>^^><^vvv>><>>>^<<^>>v^^>>^><>v<^^v^<<>^<>>><^v^v>>>^vvvv^<><<>v>^v^v>v><^<<^>^^>v<^v^<^>v>^<v^<>v^<>vv^<>^>^>v^>^vv<>^^<<>>v<>^v<><><<v>v^>vv^><<<^v<><>^^v^^v^^^>^<>>>>^><>>v>>v<<>v<<<<<<<^v<<^^^v<^v<>v^^<<<^<>>v^vv^<^^<^^<<^>vv><^<^^v<<<^><^v<^><>v^v^^>>><<^<<^<>>^>>^<<<>>v>^v>><>v>>v>><>v>><^^>^^vv<^^<^>vv><<^>><<>^vvv><^v^>vvv^>>^<><^>^<<>>v^v>v<<>^>>^>v<^^<^<<>^^v^^v>v<>^<^^<v^^vvv^^v>^vv^<>v<^v^>^vv<v^<<^>^><^^<^^<^>vv^<>^<>^>^^<^v><<<^>vv^vv>v^v<>^^v^<^^^vvv^>v^<><>v>vv<^v^>>^v<^^vv>vv>^>><<<<>^><>>v<>>v>^v<^vv>^^>^<^<>v^v<^^v<^^>^^<>^^^^>^vv<^>><^>vv^>v^>^vv>^>v^^<>>^v<>>v<^>^v>vv^>^>>>vvv>vv>^><^v<<<>^^v>v^v<^^^v^^>^><<^^>^><^^^^^^^<^v<^>>vv>>^v^vv<>><>^>>>^^^^^><^<<^v<>vv^>>v<^vv<^v<>v<>^v^<<>>>>v^^>^vv<<><<>v^v<^<^>>^^><^>^><<><^<><>vv>>>>^><<^^^<^v^>^>^^>^<^><^^<^^<>><>><<<>^>^^v<>^<<>vv>^>>^>^<>>vv<^^vv<>v<>^^>^v^v^v>^^^v<<<^vv^><>^>^^vv>v^<<^><>>vv^^^^^>v>>v<<<>^<><^v<^v<^>^<>^vvv>^>v><<v>vv^<^^>v^v>^<^v^<^v<<^>^<><>^^<>>^^<^v^<^<<^>v^^>v^v^^^<^v<<^v>^>>^^^^^><<>v^><>v^^<^v<^<v^^^><^^^><<<<<>^<<^<>>v<^>><^^^<>>>>vvv>v<>>>v^v^v<^<<^>^<<>v>>^>^^><^><<^v^^<^<>v^v>vv<>>>>>>v<<>>^^>v<<<>^<<^><<^v>vv>>>><><>v^<^v><^>v>>^^^v<^>>^>>v<<^<<>vvv>>^v<>>^v><<<^v^v<>^vvv^^^<>vvv^^^>>v>^>^<><<>vv>^v^>>^<v><><<>^^><>^<<>^v<<>>v^vv<<>^^v^v^v><^>v>v<^<<^<^>vv>^v<<^>^>>v^<v^^v^^>><<<>^v>><>v<>><^v>^^v<<<<^v^vv<<<<><><^<^<^v><<^^v^<<<<<^^><^^>vvv<^><>vvv^v^>^>^^^v<<^<^^>vv^vv^><^v^<<>v<^^>^vv<<>^<<><^>v^<<^<>v><><>v<<^^><^^^v>>v>^vv>^v^^<><<<<<^>^v^<^<^^>^vv<^>v^^v^<>v<>v^v>vvv><><<><>vv^^>^^^<><^>^^^>vvv><>v<>>v^>v^^vv^>v>>>><^^>^v^v>>vv<^>><<<^>><^<^>^<^>^>>v^<^<>^<^^<>^<>>><^<^<^<<^><^^>vv<>^^>v^>>v>>>v<<^vv^<><>>>^^<^v^>>^>>><<^<>^>>^v>>><^^^<<^vv><><<>^^^<>^^^>><>>>^>vv>^<^<>>^<^^>v^>vv><><>>><><<^^v<<^vvv<><><<^v>^v<>^<^^^v^>^<^><^v>v>^v<>><^^v^^^^^<>>vvvv>>>>^<<><^v>vv>>^^><<><><^^^<^<^<<^v>^^^>>>>><v^^^<>>vv^^^v<><^>v>><<><>v<^><<>>><>v>^<>>^>v^v<<<<>^vv<<>>>>>vv<><>^<^v>vv^<>><<>^<>><^>>>><<>^^>><<<^^^^^v>>^<<>>vvvv<^v^vvv<<<^><>>>>vv^<^v>v<^<>^v>>^<^^v^>>><>^^<^v>>v<<>vvvv>^><>v^<>^<<^vv<^>>^v^>^^<<<^>>^^>^<^^<^<<v^^v^^<^v<^>>><<>vv<<^><^>vv<^>>^vv>>>^>>><^<<<>>^<<>><^<<^^^>>v^^>v<<<>v>v>v^<>>>^vvv><<^^<<><^v>>>>vv^^v^v<>v>v<<<<><<>vv<><^^^<>>v>>>>^^<><^<^v^>>^^v>^<v>^^>^v^<>>v^^<^v^^<<>^^>v^^>><<<<^<^^v>^^v>v<^>v^<>vv>>^^v>v^^>vvvvv<<>vv>vvvvvv>>v>>^^^vv^^><>v^^^^v>vv>v<^v>>>>^>^>^v>^>>><<>>^vv>>>><><<^<^><^vv^v>>>>>v>^>^^v^>v<^v^<^<v<>>^vv<<>^v^v>><><<>>v^^<<>^^<>v<<^^<^^>^^>^<^><>>v<>>^^<^>><<>>^v^>v>v<<^^<<^>v>v^^v^^<<>^v>v>v<^^>^v<><^<<v<^<<<<^^>v^v^^><<><^^^v^^>>>vvv><>vv<>>^^v^v<<^>v^^v^>vv>^<^^<^v^^<^^v<<>>vv<^>>^><><>v>>v<>^<<>>> -------------------------------------------------------------------------------- /resources/day5.txt: -------------------------------------------------------------------------------- 1 | sszojmmrrkwuftyv 2 | isaljhemltsdzlum 3 | fujcyucsrxgatisb 4 | qiqqlmcgnhzparyg 5 | oijbmduquhfactbc 6 | jqzuvtggpdqcekgk 7 | zwqadogmpjmmxijf 8 | uilzxjythsqhwndh 9 | gtssqejjknzkkpvw 10 | wrggegukhhatygfi 11 | vhtcgqzerxonhsye 12 | tedlwzdjfppbmtdx 13 | iuvrelxiapllaxbg 14 | feybgiimfthtplui 15 | qxmmcnirvkzfrjwd 16 | vfarmltinsriqxpu 17 | oanqfyqirkraesfq 18 | xilodxfuxphuiiii 19 | yukhnchvjkfwcbiq 20 | bdaibcbzeuxqplop 21 | ivegnnpbiyxqsion 22 | ybahkbzpditgwdgt 23 | dmebdomwabxgtctu 24 | ibtvimgfaeonknoh 25 | jsqraroxudetmfyw 26 | dqdbcwtpintfcvuz 27 | tiyphjunlxddenpj 28 | fgqwjgntxagidhah 29 | nwenhxmakxqkeehg 30 | zdoheaxqpcnlhnen 31 | tfetfqojqcdzlpbm 32 | qpnxkuldeiituggg 33 | xwttlbdwxohahwar 34 | hjkwzadmtrkegzye 35 | koksqrqcfwcaxeof 36 | wulwmrptktliyxeq 37 | gyufbedqhhyqgqzj 38 | txpunzodohikzlmj 39 | jloqfuejfkemcrvu 40 | amnflshcheuddqtc 41 | pdvcsduggcogbiia 42 | yrioavgfmeafjpcz 43 | uyhbtmbutozzqfvq 44 | mwhgfwsgyuwcdzik 45 | auqylgxhmullxpaa 46 | lgelzivplaeoivzh 47 | uyvcepielfcmswoa 48 | qhirixgwkkccuzlp 49 | zoonniyosmkeejfg 50 | iayfetpixkedyana 51 | ictqeyzyqswdskiy 52 | ejsgqteafvmorwxe 53 | lhaiqrlqqwfbrqdx 54 | ydjyboqwhfpqfydc 55 | dwhttezyanrnbybv 56 | edgzkqeqkyojowvr 57 | rmjfdwsqamjqehdq 58 | ozminkgnkwqctrxz 59 | bztjhxpjthchhfcd 60 | vrtioawyxkivrpiq 61 | dpbcsznkpkaaclyy 62 | vpoypksymdwttpvz 63 | hhdlruwclartkyap 64 | bqkrcbrksbzcggbo 65 | jerbbbnxlwfvlaiw 66 | dwkasufidwjrjfbf 67 | kkfxtjhbnmqbmfwf 68 | vmnfziwqxmioukmj 69 | rqxvcultipkecdtu 70 | fhmfdibhtjzkiqsd 71 | hdpjbuzzbyafqrpd 72 | emszboysjuvwwvts 73 | msyigmwcuybfiooq 74 | druyksfnbluvnwoh 75 | fvgstvynnfbvxhsx 76 | bmzalvducnqtuune 77 | lzwkzfzttsvpllei 78 | olmplpvjamynfyfd 79 | padcwfkhystsvyfb 80 | wjhbvxkwtbfqdilb 81 | hruaqjwphonnterf 82 | bufjobjtvxtzjpmj 83 | oiedrjvmlbtwyyuy 84 | sgiemafwfztwsyju 85 | nsoqqfudrtwszyqf 86 | vonbxquiiwxnazyl 87 | yvnmjxtptujwqudn 88 | rrnybqhvrcgwvrkq 89 | taktoxzgotzxntfu 90 | quffzywzpxyaepxa 91 | rfvjebfiddcfgmwv 92 | iaeozntougqwnzoh 93 | scdqyrhoqmljhoil 94 | bfmqticltmfhxwld 95 | brbuktbyqlyfpsdl 96 | oidnyhjkeqenjlhd 97 | kujsaiqojopvrygg 98 | vebzobmdbzvjnjtk 99 | uunoygzqjopwgmbg 100 | piljqxgicjzgifso 101 | ikgptwcjzywswqnw 102 | pujqsixoisvhdvwi 103 | trtuxbgigogfsbbk 104 | mplstsqclhhdyaqk 105 | gzcwflvmstogdpvo 106 | tfjywbkmimyyqcjd 107 | gijutvhruqcsiznq 108 | ibxkhjvzzxgavkha 109 | btnxeqvznkxjsgmq 110 | tjgofgauxaelmjoq 111 | sokshvyhlkxerjrv 112 | ltogbivktqmtezta 113 | uduwytzvqvfluyuf 114 | msuckpthtgzhdxan 115 | fqmcglidvhvpirzr 116 | gwztkqpcwnutvfga 117 | bsjfgsrntdhlpqbx 118 | xloczbqybxmiopwt 119 | orvevzyjliomkkgu 120 | mzjbhmfjjvaziget 121 | tlsdxuhwdmghdyjb 122 | atoecyjhwmznaewi 123 | pyxpyvvipbqibiox 124 | ajbfmpqqobfsmesj 125 | siknbzefjblnohgd 126 | eqfhgewbblwdfkmc 127 | opylbscrotckkrbk 128 | lbwxbofgjkzdxkle 129 | ceixfjstaptdomvm 130 | hnkrqxifjmmjktie 131 | aqykzeuzvvetoygd 132 | fouahjimfcisxima 133 | prkzhutbqsyrhjzx 134 | qqwliakathnsbzne 135 | sayhgqtlcqqidqhj 136 | ygduolbysehdudra 137 | zricvxhdzznuxuce 138 | ucvzakslykpgsixd 139 | udirhgcttmyspgsb 140 | yuwzppjzfsjhhdzi 141 | gtqergjiuwookwre 142 | xvxexbjyjkxovvwf 143 | mlpaqhnnkqxrmwmm 144 | ezuqbrjozwuqafhb 145 | mcarusdthcbsonoq 146 | weeguqeheeiigrue 147 | pngtfugozxofaqxv 148 | copphvbjcmfspenv 149 | jiyahihykjjkdaya 150 | gdqnmesvptuyrfwp 151 | vbdscfywqmfxbohh 152 | crtrfuxyjypzubrg 153 | seihvevtxywxhflp 154 | fvvpmgttnapklwou 155 | qmqaqsajmqwhetpk 156 | zetxvrgjmblxvakr 157 | kpvwblrizaabmnhz 158 | mwpvvzaaicntrkcp 159 | clqyjiegtdsswqfm 160 | ymrcnqgcpldgfwtm 161 | nzyqpdenetncgnwq 162 | cmkzevgacnmdkqro 163 | kzfdsnamjqbeirhi 164 | kpxrvgvvxapqlued 165 | rzskbnfobevzrtqu 166 | vjoahbfwtydugzap 167 | ykbbldkoijlvicbl 168 | mfdmroiztsgjlasb 169 | quoigfyxwtwprmdr 170 | ekxjqafwudgwfqjm 171 | obtvyjkiycxfcdpb 172 | lhoihfnbuqelthof 173 | eydwzitgxryktddt 174 | rxsihfybacnpoyny 175 | bsncccxlplqgygtw 176 | rvmlaudsifnzhcqh 177 | huxwsyjyebckcsnn 178 | gtuqzyihwhqvjtes 179 | zreeyomtngvztveq 180 | nwddzjingsarhkxb 181 | nuqxqtctpoldrlsh 182 | wkvnrwqgjooovhpf 183 | kwgueyiyffudtbyg 184 | tpkzapnjxefqnmew 185 | ludwccvkihagvxal 186 | lfdtzhfadvabghna 187 | njqmlsnrkcfhtvbb 188 | cajzbqleghhnlgap 189 | vmitdcozzvqvzatp 190 | eelzefwqwjiywbcz 191 | uyztcuptfqvymjpi 192 | aorhnrpkjqqtgnfo 193 | lfrxfdrduoeqmwwp 194 | vszpjvbctblplinh 195 | zexhadgpqfifcqrz 196 | ueirfnshekpemqua 197 | qfremlntihbwabtb 198 | nwznunammfexltjc 199 | zkyieokaaogjehwt 200 | vlrxgkpclzeslqkq 201 | xrqrwfsuacywczhs 202 | olghlnfjdiwgdbqc 203 | difnlxnedpqcsrdf 204 | dgpuhiisybjpidsj 205 | vlwmwrikmitmoxbt 206 | sazpcmcnviynoktm 207 | pratafauetiknhln 208 | ilgteekhzwlsfwcn 209 | ywvwhrwhkaubvkbl 210 | qlaxivzwxyhvrxcf 211 | hbtlwjdriizqvjfb 212 | nrmsononytuwslsa 213 | mpxqgdthpoipyhjc 214 | mcdiwmiqeidwcglk 215 | vfbaeavmjjemfrmo 216 | qzcbzmisnynzibrc 217 | shzmpgxhehhcejhb 218 | wirtjadsqzydtyxd 219 | qjlrnjfokkqvnpue 220 | dxawdvjntlbxtuqc 221 | wttfmnrievfestog 222 | eamjfvsjhvzzaobg 223 | pbvfcwzjgxahlrag 224 | omvmjkqqnobvnzkn 225 | lcwmeibxhhlxnkzv 226 | uiaeroqfbvlazegs 227 | twniyldyuonfyzqw 228 | wgjkmsbwgfotdabi 229 | hnomamxoxvrzvtew 230 | ycrcfavikkrxxfgw 231 | isieyodknagzhaxy 232 | mgzdqwikzullzyco 233 | mumezgtxjrrejtrs 234 | nwmwjcgrqiwgfqel 235 | wjgxmebfmyjnxyyp 236 | durpspyljdykvzxf 237 | zuslbrpooyetgafh 238 | kuzrhcjwbdouhyme 239 | wyxuvbciodscbvfm 240 | kbnpvuqwmxwfqtqe 241 | zddzercqogdpxmft 242 | sigrdchxtgavzzjh 243 | lznjolnorbuddgcs 244 | ycnqabxlcajagwbt 245 | bnaudeaexahdgxsj 246 | rlnykxvoctfwanms 247 | jngyetkoplrstfzt 248 | tdpxknwacksotdub 249 | yutqgssfoptvizgr 250 | lzmqnxeqjfnsxmsa 251 | iqpgfsfmukovsdgu 252 | qywreehbidowtjyz 253 | iozamtgusdctvnkw 254 | ielmujhtmynlwcfd 255 | hzxnhtbnmmejlkyf 256 | ftbslbzmiqkzebtd 257 | bcwdqgiiizmohack 258 | dqhfkzeddjzbdlxu 259 | mxopokqffisxosci 260 | vciatxhtuechbylk 261 | khtkhcvelidjdena 262 | blatarwzfqcapkdt 263 | elamngegnczctcck 264 | xeicefdbwrxhuxuf 265 | sawvdhjoeahlgcdr 266 | kmdcimzsfkdfpnir 267 | axjayzqlosrduajb 268 | mfhzreuzzumvoggr 269 | iqlbkbhrkptquldb 270 | xcvztvlshiefuhgb 271 | pkvwyqmyoazocrio 272 | ajsxkdnerbmhyxaj 273 | tudibgsbnpnizvsi 274 | cxuiydkgdccrqvkh 275 | cyztpjesdzmbcpot 276 | nnazphxpanegwitx 277 | uphymczbmjalmsct 278 | yyxiwnlrogyzwqmg 279 | gmqwnahjvvdyhnfa 280 | utolskxpuoheugyl 281 | mseszdhyzoyavepd 282 | ycqknvbuvcjfgmlc 283 | sknrxhxbfpvpeorn 284 | zqxqjetooqcodwml 285 | sesylkpvbndrdhsy 286 | fryuxvjnsvnjrxlw 287 | mfxusewqurscujnu 288 | mbitdjjtgzchvkfv 289 | ozwlyxtaalxofovd 290 | wdqcduaykxbunpie 291 | rlnhykxiraileysk 292 | wgoqfrygttlamobg 293 | kflxzgxvcblkpsbz 294 | tmkisflhativzhde 295 | owsdrfgkaamogjzd 296 | gaupjkvkzavhfnes 297 | wknkurddcknbdleg 298 | lltviwincmbtduap 299 | qwzvspgbcksyzzmb 300 | ydzzkumecryfjgnk 301 | jzvmwgjutxoysaam 302 | icrwpyhxllbardkr 303 | jdopyntshmvltrve 304 | afgkigxcuvmdbqou 305 | mfzzudntmvuyhjzt 306 | duxhgtwafcgrpihc 307 | tsnhrkvponudumeb 308 | sqtvnbeiigdzbjgv 309 | eczmkqwvnsrracuo 310 | mhehsgqwiczaiaxv 311 | kaudmfvifovrimpd 312 | lupikgivechdbwfr 313 | mwaaysrndiutuiqx 314 | aacuiiwgaannunmm 315 | tjqjbftaqitukwzp 316 | lrcqyskykbjpaekn 317 | lirrvofbcqpjzxmr 318 | jurorvzpplyelfml 319 | qonbllojmloykjqe 320 | sllkzqujfnbauuqp 321 | auexjwsvphvikali 322 | usuelbssqmbrkxyc 323 | wyuokkfjexikptvv 324 | wmfedauwjgbrgytl 325 | sfwvtlzzebxzmuvw 326 | rdhqxuechjsjcvaf 327 | kpavhqkukugocsxu 328 | ovnjtumxowbxduts 329 | zgerpjufauptxgat 330 | pevvnzjfwhjxdoxq 331 | pmmfwxajgfziszcs 332 | difmeqvaghuitjhs 333 | icpwjbzcmlcterwm 334 | ngqpvhajttxuegyh 335 | mosjlqswdngwqsmi 336 | frlvgpxrjolgodlu 337 | eazwgrpcxjgoszeg 338 | bbtsthgkjrpkiiyk 339 | tjonoglufuvsvabe 340 | xhkbcrofytmbzrtk 341 | kqftfzdmpbxjynps 342 | kmeqpocbnikdtfyv 343 | qjjymgqxhnjwxxhp 344 | dmgicrhgbngdtmjt 345 | zdxrhdhbdutlawnc 346 | afvoekuhdboxghvx 347 | hiipezngkqcnihty 348 | bbmqgheidenweeov 349 | suprgwxgxwfsgjnx 350 | adeagikyamgqphrj 351 | zzifqinoeqaorjxg 352 | adhgppljizpaxzld 353 | lvxyieypvvuqjiyc 354 | nljoakatwwwoovzn 355 | fcrkfxclcacshhmx 356 | ownnxqtdhqbgthch 357 | lmfylrcdmdkgpwnj 358 | hlwjfbvlswbzpbjr 359 | mkofhdtljdetcyvp 360 | synyxhifbetzarpo 361 | agnggugngadrcxoc 362 | uhttadmdmhidpyjw 363 | ohfwjfhunalbubpr 364 | pzkkkkwrlvxiuysn 365 | kmidbxmyzkjrwjhu 366 | egtitdydwjxmajnw 367 | civoeoiuwtwgbqqs 368 | dfptsguzfinqoslk 369 | tdfvkreormspprer 370 | zvnvbrmthatzztwi 371 | ffkyddccrrfikjde 372 | hrrmraevdnztiwff 373 | qaeygykcpbtjwjbr 374 | purwhitkmrtybslh 375 | qzziznlswjaussel 376 | dfcxkvdpqccdqqxj 377 | tuotforulrrytgyn 378 | gmtgfofgucjywkev 379 | wkyoxudvdkbgpwhd 380 | qbvktvfvipftztnn 381 | otckgmojziezmojb 382 | inxhvzbtgkjxflay 383 | qvxapbiatuudseno 384 | krpvqosbesnjntut 385 | oqeukkgjsfuqkjbb 386 | prcjnyymnqwqksiz 387 | vuortvjxgckresko 388 | orqlyobvkuwgathr 389 | qnpyxlnazyfuijox 390 | zwlblfkoklqmqzkw 391 | hmwurwtpwnrcsanl 392 | jzvxohuakopuzgpf 393 | sfcpnxrviphhvxmx 394 | qtwdeadudtqhbely 395 | dbmkmloasqphnlgj 396 | olylnjtkxgrubmtk 397 | nxsdbqjuvwrrdbpq 398 | wbabpirnpcsmpipw 399 | hjnkyiuxpqrlvims 400 | enzpntcjnxdpuqch 401 | vvvqhlstzcizyimn 402 | triozhqndbttglhv 403 | fukvgteitwaagpzx 404 | uhcvukfbmrvskpen 405 | tizcyupztftzxdmt 406 | vtkpnbpdzsaluczz 407 | wodfoyhoekidxttm 408 | otqocljrmwfqbxzu 409 | linfbsnfvixlwykn 410 | vxsluutrwskslnye 411 | zbshygtwugixjvsi 412 | zdcqwxvwytmzhvoo 413 | wrseozkkcyctrmei 414 | fblgtvogvkpqzxiy 415 | opueqnuyngegbtnf 416 | qxbovietpacqqxok 417 | zacrdrrkohfygddn 418 | gbnnvjqmkdupwzpq 419 | qgrgmsxeotozvcak 420 | hnppukzvzfmlokid 421 | dzbheurndscrrtcl 422 | wbgdkadtszebbrcw 423 | fdmzppzphhpzyuiz 424 | bukomunhrjrypohj 425 | ohodhelegxootqbj 426 | rsplgzarlrknqjyh 427 | punjjwpsxnhpzgvu 428 | djdfahypfjvpvibm 429 | mlgrqsmhaozatsvy 430 | xwktrgyuhqiquxgn 431 | wvfaoolwtkbrisvf 432 | plttjdmguxjwmeqr 433 | zlvvbwvlhauyjykw 434 | cigwkbyjhmepikej 435 | masmylenrusgtyxs 436 | hviqzufwyetyznze 437 | nzqfuhrooswxxhus 438 | pdbdetaqcrqzzwxf 439 | oehmvziiqwkzhzib 440 | icgpyrukiokmytoy 441 | ooixfvwtiafnwkce 442 | rvnmgqggpjopkihs 443 | wywualssrmaqigqk 444 | pdbvflnwfswsrirl 445 | jeaezptokkccpbuj 446 | mbdwjntysntsaaby 447 | ldlgcawkzcwuxzpz 448 | lwktbgrzswbsweht 449 | ecspepmzarzmgpjm 450 | qmfyvulkmkxjncai 451 | izftypvwngiukrns 452 | zgmnyjfeqffbooww 453 | nyrkhggnprhedows 454 | yykzzrjmlevgffah 455 | mavaemfxhlfejfki 456 | cmegmfjbkvpncqwf 457 | zxidlodrezztcrij 458 | fseasudpgvgnysjv 459 | fupcimjupywzpqzp 460 | iqhgokavirrcvyys 461 | wjmkcareucnmfhui 462 | nftflsqnkgjaexhq 463 | mgklahzlcbapntgw 464 | kfbmeavfxtppnrxn 465 | nuhyvhknlufdynvn 466 | nviogjxbluwrcoec 467 | tyozixxxaqiuvoys 468 | kgwlvmvgtsvxojpr 469 | moeektyhyonfdhrb 470 | kahvevmmfsmiiqex 471 | xcywnqzcdqtvhiwd 472 | fnievhiyltbvtvem 473 | jlmndqufirwgtdxd 474 | muypbfttoeelsnbs 475 | rypxzbnujitfwkou 476 | ubmmjbznskildeoj 477 | ofnmizdeicrmkjxp 478 | rekvectjbmdnfcib 479 | yohrojuvdexbctdh 480 | gwfnfdeibynzjmhz 481 | jfznhfcqdwlpjull 482 | scrinzycfhwkmmso 483 | mskutzossrwoqqsi 484 | rygoebkzgyzushhr 485 | jpjqiycflqkexemx 486 | arbufysjqmgaapnl 487 | dbjerflevtgweeoj 488 | snybnnjlmwjvhois 489 | fszuzplntraprmbj 490 | mkvaatolvuggikvg 491 | zpuzuqygoxesnuyc 492 | wnpxvmxvllxalulm 493 | eivuuafkvudeouwy 494 | rvzckdyixetfuehr 495 | qgmnicdoqhveahyx 496 | miawwngyymshjmpj 497 | pvckyoncpqeqkbmx 498 | llninfenrfjqxurv 499 | kzbjnlgsqjfuzqtp 500 | rveqcmxomvpjcwte 501 | bzotkawzbopkosnx 502 | ktqvpiribpypaymu 503 | wvlzkivbukhnvram 504 | uohntlcoguvjqqdo 505 | ajlsiksjrcnzepkt 506 | xsqatbldqcykwusd 507 | ihbivgzrwpmowkop 508 | vfayesfojmibkjpb 509 | uaqbnijtrhvqxjtb 510 | hhovshsfmvkvymba 511 | jerwmyxrfeyvxcgg 512 | hncafjwrlvdcupma 513 | qyvigggxfylbbrzt 514 | hiiixcyohmvnkpgk 515 | mmitpwopgxuftdfu 516 | iaxderqpceboixoa 517 | zodfmjhuzhnsqfcb 518 | sthtcbadrclrazsi 519 | bkkkkcwegvypbrio 520 | wmpcofuvzemunlhj 521 | gqwebiifvqoeynro 522 | juupusqdsvxcpsgv 523 | rbhdfhthxelolyse 524 | kjimpwnjfrqlqhhz 525 | rcuigrjzarzpjgfq 526 | htxcejfyzhydinks 527 | sxucpdxhvqjxxjwf 528 | omsznfcimbcwaxal 529 | gufmtdlhgrsvcosb 530 | bssshaqujtmluerz 531 | uukotwjkstgwijtr 532 | kbqkneobbrdogrxk 533 | ljqopjcjmelgrakz 534 | rwtfnvnzryujwkfb 535 | dedjjbrndqnilbeh 536 | nzinsxnpptzagwlb 537 | lwqanydfirhnhkxy 538 | hrjuzfumbvfccxno 539 | okismsadkbseumnp 540 | sfkmiaiwlktxqvwa 541 | hauwpjjwowbunbjj 542 | nowkofejwvutcnui 543 | bqzzppwoslaeixro 544 | urpfgufwbtzenkpj 545 | xgeszvuqwxeykhef 546 | yxoldvkyuikwqyeq 547 | onbbhxrnmohzskgg 548 | qcikuxakrqeugpoa 549 | lnudcqbtyzhlpers 550 | nxduvwfrgzaailgl 551 | xniuwvxufzxjjrwz 552 | ljwithcqmgvntjdj 553 | awkftfagrfzywkhs 554 | uedtpzxyubeveuek 555 | bhcqdwidbjkqqhzl 556 | iyneqjdmlhowwzxx 557 | kvshzltcrrururty 558 | zgfpiwajegwezupo 559 | tkrvyanujjwmyyri 560 | ercsefuihcmoaiep 561 | ienjrxpmetinvbos 562 | jnwfutjbgenlipzq 563 | bgohjmrptfuamzbz 564 | rtsyamajrhxbcncw 565 | tfjdssnmztvbnscs 566 | bgaychdlmchngqlp 567 | kfjljiobynhwfkjo 568 | owtdxzcpqleftbvn 569 | ltjtimxwstvzwzjj 570 | wbrvjjjajuombokf 571 | zblpbpuaqbkvsxye 572 | gwgdtbpnlhyqspdi 573 | abipqjihjqfofmkx 574 | nlqymnuvjpvvgova 575 | avngotmhodpoufzn 576 | qmdyivtzitnrjuae 577 | xfwjmqtqdljuerxi 578 | csuellnlcyqaaamq 579 | slqyrcurcyuoxquo 580 | dcjmxyzbzpohzprl 581 | uqfnmjwniyqgsowb 582 | rbmxpqoblyxdocqc 583 | ebjclrdbqjhladem 584 | ainnfhxnsgwqnmyo 585 | eyytjjwhvodtzquf 586 | iabjgmbbhilrcyyp 587 | pqfnehkivuelyccc 588 | xgjbyhfgmtseiimt 589 | jwxyqhdbjiqqqeyy 590 | gxsbrncqkmvaryln 591 | vhjisxjkinaejytk 592 | seexagcdmaedpcvh 593 | lvudfgrcpjxzdpvd 594 | fxtegyrqjzhmqean 595 | dnoiseraqcoossmc 596 | nwrhmwwbykvwmgep 597 | udmzskejvizmtlce 598 | hbzvqhvudfdlegaa 599 | cghmlfqejbxewskv 600 | bntcmjqfwomtbwsb 601 | qezhowyopjdyhzng 602 | todzsocdkgfxanbz 603 | zgjkssrjlwxuhwbk 604 | eibzljqsieriyrzr 605 | wamxvzqyycrxotjp 606 | epzvfkispwqynadu 607 | dwlpfhtrafrxlyie 608 | qhgzujhgdruowoug 609 | girstvkahaemmxvh 610 | baitcrqmxhazyhbl 611 | xyanqcchbhkajdmc 612 | gfvjmmcgfhvgnfdq 613 | tdfdbslwncbnkzyz 614 | jojuselkpmnnbcbb 615 | hatdslkgxtqpmavj 616 | dvelfeddvgjcyxkj 617 | gnsofhkfepgwltse 618 | mdngnobasfpewlno 619 | qssnbcyjgmkyuoga 620 | glvcmmjytmprqwvn 621 | gwrixumjbcdffsdl 622 | lozravlzvfqtsuiq 623 | sicaflbqdxbmdlch 624 | inwfjkyyqbwpmqlq 625 | cuvszfotxywuzhzi 626 | igfxyoaacoarlvay 627 | ucjfhgdmnjvgvuni 628 | rvvkzjsytqgiposh 629 | jduinhjjntrmqroz 630 | yparkxbgsfnueyll 631 | lyeqqeisxzfsqzuj 632 | woncskbibjnumydm 633 | lltucklragtjmxtl 634 | ubiyvmyhlesfxotj 635 | uecjseeicldqrqww 636 | xxlxkbcthufnjbnm 637 | lhqijovvhlffpxga 638 | fzdgqpzijitlogjz 639 | efzzjqvwphomxdpd 640 | jvgzvuyzobeazssc 641 | hejfycgxywfjgbfw 642 | yhjjmvkqfbnbliks 643 | sffvfyywtlntsdsz 644 | dwmxqudvxqdenrur 645 | asnukgppdemxrzaz 646 | nwqfnumblwvdpphx 647 | kqsmkkspqvxzuket 648 | cpnraovljzqiquaz 649 | qrzgrdlyyzbyykhg 650 | opoahcbiydyhsmqe 651 | hjknnfdauidjeydr 652 | hczdjjlygoezadow 653 | rtflowzqycimllfv 654 | sfsrgrerzlnychhq 655 | bpahuvlblcolpjmj 656 | albgnjkgmcrlaicl 657 | pijyqdhfxpaxzdex 658 | eeymiddvcwkpbpux 659 | rqwkqoabywgggnln 660 | vckbollyhgbgmgwh 661 | ylzlgvnuvpynybkm 662 | hpmbxtpfosbsjixt 663 | ocebeihnhvkhjfqz 664 | tvctyxoujdgwayze 665 | efvhwxtuhapqxjen 666 | rusksgefyidldmpo 667 | nkmtjvddfmhirmzz 668 | whvtsuadwofzmvrt 669 | iiwjqvsdxudhdzzk 670 | gucirgxaxgcassyo 671 | rmhfasfzexeykwmr 672 | hynlxcvsbgosjbis 673 | huregszrcaocueen 674 | pifezpoolrnbdqtv 675 | unatnixzvdbqeyox 676 | xtawlpduxgacchfe 677 | bdvdbflqfphndduf 678 | xtdsnjnmzccfptyt 679 | nkhsdkhqtzqbphhg 680 | aqcubmfkczlaxiyb 681 | moziflxpsfubucmv 682 | srdgnnjtfehiimqx 683 | pwfalehdfyykrohf 684 | sysxssmvewyfjrve 685 | brsemdzosgqvvlxe 686 | bimbjoshuvflkiat 687 | hkgjasmljkpkwwku 688 | sbnmwjvodygobpqc 689 | bbbqycejueruihhd 690 | corawswvlvneipyc 691 | gcyhknmwsczcxedh 692 | kppakbffdhntmcqp 693 | ynulzwkfaemkcefp 694 | pyroowjekeurlbii 695 | iwksighrswdcnmxf 696 | glokrdmugreygnsg 697 | xkmvvumnfzckryop 698 | aesviofpufygschi 699 | csloawlirnegsssq 700 | fkqdqqmlzuxbkzbc 701 | uzlhzcfenxdfjdzp 702 | poaaidrktteusvyf 703 | zrlyfzmjzfvivcfr 704 | qwjulskbniitgqtx 705 | gjeszjksbfsuejki 706 | vczdejdbfixbduaq 707 | knjdrjthitjxluth 708 | jweydeginrnicirl 709 | bottrfgccqhyycsl 710 | eiquffofoadmbuhk 711 | lbqfutmzoksscswf 712 | xfmdvnvfcnzjprba 713 | uvugkjbkhlaoxmyx 714 | wadlgtpczgvcaqqv 715 | inzrszbtossflsxk 716 | dbzbtashaartczrj 717 | qbjiqpccefcfkvod 718 | hluujmokjywotvzy 719 | thwlliksfztcmwzh 720 | arahybspdaqdexrq 721 | nuojrmsgyipdvwyx 722 | hnajdwjwmzattvst 723 | sulcgaxezkprjbgu 724 | rjowuugwdpkjtypw 725 | oeugzwuhnrgiaqga 726 | wvxnyymwftfoswij 727 | pqxklzkjpcqscvde 728 | tuymjzknntekglqj 729 | odteewktugcwlhln 730 | exsptotlfecmgehc 731 | eeswfcijtvzgrqel 732 | vjhrkiwmunuiwqau 733 | zhlixepkeijoemne 734 | pavfsmwesuvebzdd 735 | jzovbklnngfdmyws 736 | nbajyohtzfeoiixz 737 | ciozmhrsjzrwxvhz 738 | gwucrxieqbaqfjuv 739 | uayrxrltnohexawc 740 | flmrbhwsfbcquffm 741 | gjyabmngkitawlxc 742 | rwwtggvaygfbovhg 743 | xquiegaisynictjq 744 | oudzwuhexrwwdbyy 745 | lengxmguyrwhrebb 746 | uklxpglldbgqsjls 747 | dbmvlfeyguydfsxq 748 | zspdwdqcrmtmdtsc 749 | mqfnzwbfqlauvrgc 750 | amcrkzptgacywvhv 751 | ndxmskrwrqysrndf 752 | mwjyhsufeqhwisju 753 | srlrukoaenyevykt 754 | tnpjtpwawrxbikct 755 | geczalxmgxejulcv 756 | tvkcbqdhmuwcxqci 757 | tiovluvwezwwgaox 758 | zrjhtbgajkjqzmfo 759 | vcrywduwsklepirs 760 | lofequdigsszuioy 761 | wxsdzomkjqymlzat 762 | iabaczqtrfbmypuy 763 | ibdlmudbajikcncr 764 | rqcvkzsbwmavdwnv 765 | ypxoyjelhllhbeog 766 | fdnszbkezyjbttbg 767 | uxnhrldastpdjkdz 768 | xfrjbehtxnlyzcka 769 | omjyfhbibqwgcpbv 770 | eguucnoxaoprszmp 771 | xfpypldgcmcllyzz 772 | aypnmgqjxjqceelv 773 | mgzharymejlafvgf 774 | tzowgwsubbaigdok 775 | ilsehjqpcjwmylxc 776 | pfmouwntfhfnmrwk 777 | csgokybgdqwnduwp 778 | eaxwvxvvwbrovypz 779 | nmluqvobbbmdiwwb 780 | lnkminvfjjzqbmio 781 | mjiiqzycqdhfietz 782 | towlrzriicyraevq 783 | obiloewdvbrsfwjo 784 | lmeooaajlthsfltw 785 | ichygipzpykkesrw 786 | gfysloxmqdsfskvt 787 | saqzntehjldvwtsx 788 | pqddoemaufpfcaew 789 | mjrxvbvwcreaybwe 790 | ngfbrwfqnxqosoai 791 | nesyewxreiqvhald 792 | kqhqdlquywotcyfy 793 | liliptyoqujensfi 794 | nsahsaxvaepzneqq 795 | zaickulfjajhctye 796 | gxjzahtgbgbabtht 797 | koxbuopaqhlsyhrp 798 | jhzejdjidqqtjnwe 799 | dekrkdvprfqpcqki 800 | linwlombdqtdeyop 801 | dvckqqbnigdcmwmx 802 | yaxygbjpzkvnnebv 803 | rlzkdkgaagmcpxah 804 | cfzuyxivtknirqvt 805 | obivkajhsjnrxxhn 806 | lmjhayymgpseuynn 807 | bbjyewkwadaipyju 808 | lmzyhwomfypoftuu 809 | gtzhqlgltvatxack 810 | jfflcfaqqkrrltgq 811 | txoummmnzfrlrmcg 812 | ohemsbfuqqpucups 813 | imsfvowcbieotlok 814 | tcnsnccdszxfcyde 815 | qkcdtkwuaquajazz 816 | arcfnhmdjezdbqku 817 | srnocgyqrlcvlhkb 818 | mppbzvfmcdirbyfw 819 | xiuarktilpldwgwd 820 | ypufwmhrvzqmexpc 821 | itpdnsfkwgrdujmj 822 | cmpxnodtsswkyxkr 823 | wayyxtjklfrmvbfp 824 | mfaxphcnjczhbbwy 825 | sjxhgwdnqcofbdra 826 | pnxmujuylqccjvjm 827 | ivamtjbvairwjqwl 828 | deijtmzgpfxrclss 829 | bzkqcaqagsynlaer 830 | tycefobvxcvwaulz 831 | ctbhnywezxkdsswf 832 | urrxxebxrthtjvib 833 | fpfelcigwqwdjucv 834 | ngfcyyqpqulwcphb 835 | rltkzsiipkpzlgpw 836 | qfdsymzwhqqdkykc 837 | balrhhxipoqzmihj 838 | rnwalxgigswxomga 839 | ghqnxeogckshphgr 840 | lyyaentdizaumnla 841 | exriodwfzosbeoib 842 | speswfggibijfejk 843 | yxmxgfhvmshqszrq 844 | hcqhngvahzgawjga 845 | qmhlsrfpesmeksur 846 | eviafjejygakodla 847 | kvcfeiqhynqadbzv 848 | fusvyhowslfzqttg 849 | girqmvwmcvntrwau 850 | yuavizroykfkdekz 851 | jmcwohvmzvowrhxf 852 | kzimlcpavapynfue 853 | wjudcdtrewfabppq 854 | yqpteuxqgbmqfgxh 855 | xdgiszbuhdognniu 856 | jsguxfwhpftlcjoh 857 | whakkvspssgjzxre 858 | ggvnvjurlyhhijgm 859 | krvbhjybnpemeptr 860 | pqedgfojyjybfbzr 861 | jzhcrsgmnkwwtpdo 862 | yyscxoxwofslncmp 863 | gzjhnxytmyntzths 864 | iteigbnqbtpvqumi 865 | zjevfzusnjukqpfw 866 | xippcyhkfuounxqk 867 | mcnhrcfonfdgpkyh 868 | pinkcyuhjkexbmzj 869 | lotxrswlxbxlxufs 870 | fmqajrtoabpckbnu 871 | wfkwsgmcffdgaqxg 872 | qfrsiwnohoyfbidr 873 | czfqbsbmiuyusaqs 874 | ieknnjeecucghpoo 875 | cevdgqnugupvmsge 876 | gjkajcyjnxdrtuvr 877 | udzhrargnujxiclq 878 | zqqrhhmjwermjssg 879 | ggdivtmgoqajydzz 880 | wnpfsgtxowkjiivl 881 | afbhqawjbotxnqpd 882 | xjpkifkhfjeqifdn 883 | oyfggzsstfhvticp 884 | kercaetahymeawxy 885 | khphblhcgmbupmzt 886 | iggoqtqpvaebtiol 887 | ofknifysuasshoya 888 | qxuewroccsbogrbv 889 | apsbnbkiopopytgu 890 | zyahfroovfjlythh 891 | bxhjwfgeuxlviydq 892 | uvbhdtvaypasaswa 893 | qamcjzrmesqgqdiz 894 | hjnjyzrxntiycyel 895 | wkcrwqwniczwdxgq 896 | hibxlvkqakusswkx 897 | mzjyuenepwdgrkty 898 | tvywsoqslfsulses 899 | jqwcwuuisrclircv 900 | xanwaoebfrzhurct 901 | ykriratovsvxxasf 902 | qyebvtqqxbjuuwuo 903 | telrvlwvriylnder 904 | acksrrptgnhkeiaa 905 | yemwfjhiqlzsvdxf 906 | banrornfkcymmkcc 907 | ytbhxvaeiigjpcgm 908 | crepyazgxquposkn 909 | xlqwdrytzwnxzwzv 910 | xtrbfbwopxscftps 911 | kwbytzukgseeyjla 912 | qtfdvavvjogybxjg 913 | ytbmvmrcxwfkgvzw 914 | nbscbdskdeocnfzr 915 | sqquwjbdxsxhcseg 916 | ewqxhigqcgszfsuw 917 | cvkyfcyfmubzwsee 918 | dcoawetekigxgygd 919 | ohgqnqhfimyuqhvi 920 | otisopzzpvnhctte 921 | bauieohjejamzien 922 | ewnnopzkujbvhwce 923 | aeyqlskpaehagdiv 924 | pncudvivwnnqspxy 925 | ytugesilgveokxcg 926 | zoidxeelqdjesxpr 927 | ducjccsuaygfchzj 928 | smhgllqqqcjfubfc 929 | nlbyyywergronmir 930 | prdawpbjhrzsbsvj 931 | nmgzhnjhlpcplmui 932 | eflaogtjghdjmxxz 933 | qolvpngucbkprrdc 934 | ixywxcienveltgho 935 | mwnpqtocagenkxut 936 | iskrfbwxonkguywx 937 | ouhtbvcaczqzmpua 938 | srewprgddfgmdbao 939 | dyufrltacelchlvu 940 | czmzcbrkecixuwzz 941 | dtbeojcztzauofuk 942 | prrgoehpqhngfgmw 943 | baolzvfrrevxsyke 944 | zqadgxshwiarkzwh 945 | vsackherluvurqqj 946 | surbpxdulvcvgjbd 947 | wqxytarcxzgxhvtx 948 | vbcubqvejcfsgrac 949 | zqnjfeapshjowzja 950 | hekvbhtainkvbynx 951 | knnugxoktxpvoxnh 952 | knoaalcefpgtvlwm 953 | qoakaunowmsuvkus 954 | ypkvlzcduzlezqcb 955 | ujhcagawtyepyogh 956 | wsilcrxncnffaxjf 957 | gbbycjuscquaycrk 958 | aduojapeaqwivnly 959 | ceafyxrakviagcjy 960 | nntajnghicgnrlst 961 | vdodpeherjmmvbje 962 | wyyhrnegblwvdobn 963 | xlfurpghkpbzhhif 964 | xyppnjiljvirmqjo 965 | kglzqahipnddanpi 966 | omjateouxikwxowr 967 | ocifnoopfglmndcx 968 | emudcukfbadyijev 969 | ooktviixetfddfmh 970 | wtvrhloyjewdeycg 971 | cgjncqykgutfjhvb 972 | nkwvpswppeffmwad 973 | hqbcmfhzkxmnrivg 974 | mdskbvzguxvieilr 975 | anjcvqpavhdloaqh 976 | erksespdevjylenq 977 | fadxwbmisazyegup 978 | iyuiffjmcaahowhj 979 | ygkdezmynmltodbv 980 | fytneukxqkjattvh 981 | woerxfadbfrvdcnz 982 | iwsljvkyfastccoa 983 | movylhjranlorofe 984 | drdmicdaiwukemep 985 | knfgtsmuhfcvvshg 986 | ibstpbevqmdlhajn 987 | tstwsswswrxlzrqs 988 | estyydmzothggudf 989 | jezogwvymvikszwa 990 | izmqcwdyggibliet 991 | nzpxbegurwnwrnca 992 | kzkojelnvkwfublh 993 | xqcssgozuxfqtiwi 994 | tcdoigumjrgvczfv 995 | ikcjyubjmylkwlwq 996 | kqfivwystpqzvhan 997 | bzukgvyoqewniivj 998 | iduapzclhhyfladn 999 | fbpyzxdfmkrtfaeg 1000 | yzsmlbnftftgwadz 1001 | -------------------------------------------------------------------------------- /resources/day6.txt: -------------------------------------------------------------------------------- 1 | turn off 660,55 through 986,197 2 | turn off 341,304 through 638,850 3 | turn off 199,133 through 461,193 4 | toggle 322,558 through 977,958 5 | toggle 537,781 through 687,941 6 | turn on 226,196 through 599,390 7 | turn on 240,129 through 703,297 8 | turn on 317,329 through 451,798 9 | turn on 957,736 through 977,890 10 | turn on 263,530 through 559,664 11 | turn on 158,270 through 243,802 12 | toggle 223,39 through 454,511 13 | toggle 544,218 through 979,872 14 | turn on 313,306 through 363,621 15 | toggle 173,401 through 496,407 16 | toggle 333,60 through 748,159 17 | turn off 87,577 through 484,608 18 | turn on 809,648 through 826,999 19 | toggle 352,432 through 628,550 20 | turn off 197,408 through 579,569 21 | turn off 1,629 through 802,633 22 | turn off 61,44 through 567,111 23 | toggle 880,25 through 903,973 24 | turn on 347,123 through 864,746 25 | toggle 728,877 through 996,975 26 | turn on 121,895 through 349,906 27 | turn on 888,547 through 931,628 28 | toggle 398,782 through 834,882 29 | turn on 966,850 through 989,953 30 | turn off 891,543 through 914,991 31 | toggle 908,77 through 916,117 32 | turn on 576,900 through 943,934 33 | turn off 580,170 through 963,206 34 | turn on 184,638 through 192,944 35 | toggle 940,147 through 978,730 36 | turn off 854,56 through 965,591 37 | toggle 717,172 through 947,995 38 | toggle 426,987 through 705,998 39 | turn on 987,157 through 992,278 40 | toggle 995,774 through 997,784 41 | turn off 796,96 through 845,182 42 | turn off 451,87 through 711,655 43 | turn off 380,93 through 968,676 44 | turn on 263,468 through 343,534 45 | turn on 917,936 through 928,959 46 | toggle 478,7 through 573,148 47 | turn off 428,339 through 603,624 48 | turn off 400,880 through 914,953 49 | toggle 679,428 through 752,779 50 | turn off 697,981 through 709,986 51 | toggle 482,566 through 505,725 52 | turn off 956,368 through 993,516 53 | toggle 735,823 through 783,883 54 | turn off 48,487 through 892,496 55 | turn off 116,680 through 564,819 56 | turn on 633,865 through 729,930 57 | turn off 314,618 through 571,922 58 | toggle 138,166 through 936,266 59 | turn on 444,732 through 664,960 60 | turn off 109,337 through 972,497 61 | turn off 51,432 through 77,996 62 | turn off 259,297 through 366,744 63 | toggle 801,130 through 917,544 64 | toggle 767,982 through 847,996 65 | turn on 216,507 through 863,885 66 | turn off 61,441 through 465,731 67 | turn on 849,970 through 944,987 68 | toggle 845,76 through 852,951 69 | toggle 732,615 through 851,936 70 | toggle 251,128 through 454,778 71 | turn on 324,429 through 352,539 72 | toggle 52,450 through 932,863 73 | turn off 449,379 through 789,490 74 | turn on 317,319 through 936,449 75 | toggle 887,670 through 957,838 76 | toggle 671,613 through 856,664 77 | turn off 186,648 through 985,991 78 | turn off 471,689 through 731,717 79 | toggle 91,331 through 750,758 80 | toggle 201,73 through 956,524 81 | toggle 82,614 through 520,686 82 | toggle 84,287 through 467,734 83 | turn off 132,367 through 208,838 84 | toggle 558,684 through 663,920 85 | turn on 237,952 through 265,997 86 | turn on 694,713 through 714,754 87 | turn on 632,523 through 862,827 88 | turn on 918,780 through 948,916 89 | turn on 349,586 through 663,976 90 | toggle 231,29 through 257,589 91 | toggle 886,428 through 902,993 92 | turn on 106,353 through 236,374 93 | turn on 734,577 through 759,684 94 | turn off 347,843 through 696,912 95 | turn on 286,699 through 964,883 96 | turn on 605,875 through 960,987 97 | turn off 328,286 through 869,461 98 | turn off 472,569 through 980,848 99 | toggle 673,573 through 702,884 100 | turn off 398,284 through 738,332 101 | turn on 158,50 through 284,411 102 | turn off 390,284 through 585,663 103 | turn on 156,579 through 646,581 104 | turn on 875,493 through 989,980 105 | toggle 486,391 through 924,539 106 | turn on 236,722 through 272,964 107 | toggle 228,282 through 470,581 108 | toggle 584,389 through 750,761 109 | turn off 899,516 through 900,925 110 | turn on 105,229 through 822,846 111 | turn off 253,77 through 371,877 112 | turn on 826,987 through 906,992 113 | turn off 13,152 through 615,931 114 | turn on 835,320 through 942,399 115 | turn on 463,504 through 536,720 116 | toggle 746,942 through 786,998 117 | turn off 867,333 through 965,403 118 | turn on 591,477 through 743,692 119 | turn off 403,437 through 508,908 120 | turn on 26,723 through 368,814 121 | turn on 409,485 through 799,809 122 | turn on 115,630 through 704,705 123 | turn off 228,183 through 317,220 124 | toggle 300,649 through 382,842 125 | turn off 495,365 through 745,562 126 | turn on 698,346 through 744,873 127 | turn on 822,932 through 951,934 128 | toggle 805,30 through 925,421 129 | toggle 441,152 through 653,274 130 | toggle 160,81 through 257,587 131 | turn off 350,781 through 532,917 132 | toggle 40,583 through 348,636 133 | turn on 280,306 through 483,395 134 | toggle 392,936 through 880,955 135 | toggle 496,591 through 851,934 136 | turn off 780,887 through 946,994 137 | turn off 205,735 through 281,863 138 | toggle 100,876 through 937,915 139 | turn on 392,393 through 702,878 140 | turn on 956,374 through 976,636 141 | toggle 478,262 through 894,775 142 | turn off 279,65 through 451,677 143 | turn on 397,541 through 809,847 144 | turn on 444,291 through 451,586 145 | toggle 721,408 through 861,598 146 | turn on 275,365 through 609,382 147 | turn on 736,24 through 839,72 148 | turn off 86,492 through 582,712 149 | turn on 676,676 through 709,703 150 | turn off 105,710 through 374,817 151 | toggle 328,748 through 845,757 152 | toggle 335,79 through 394,326 153 | toggle 193,157 through 633,885 154 | turn on 227,48 through 769,743 155 | toggle 148,333 through 614,568 156 | toggle 22,30 through 436,263 157 | toggle 547,447 through 688,969 158 | toggle 576,621 through 987,740 159 | turn on 711,334 through 799,515 160 | turn on 541,448 through 654,951 161 | toggle 792,199 through 798,990 162 | turn on 89,956 through 609,960 163 | toggle 724,433 through 929,630 164 | toggle 144,895 through 201,916 165 | toggle 226,730 through 632,871 166 | turn off 760,819 through 828,974 167 | toggle 887,180 through 940,310 168 | toggle 222,327 through 805,590 169 | turn off 630,824 through 885,963 170 | turn on 940,740 through 954,946 171 | turn on 193,373 through 779,515 172 | toggle 304,955 through 469,975 173 | turn off 405,480 through 546,960 174 | turn on 662,123 through 690,669 175 | turn off 615,238 through 750,714 176 | turn on 423,220 through 930,353 177 | turn on 329,769 through 358,970 178 | toggle 590,151 through 704,722 179 | turn off 884,539 through 894,671 180 | toggle 449,241 through 984,549 181 | toggle 449,260 through 496,464 182 | turn off 306,448 through 602,924 183 | turn on 286,805 through 555,901 184 | toggle 722,177 through 922,298 185 | toggle 491,554 through 723,753 186 | turn on 80,849 through 174,996 187 | turn off 296,561 through 530,856 188 | toggle 653,10 through 972,284 189 | toggle 529,236 through 672,614 190 | toggle 791,598 through 989,695 191 | turn on 19,45 through 575,757 192 | toggle 111,55 through 880,871 193 | turn off 197,897 through 943,982 194 | turn on 912,336 through 977,605 195 | toggle 101,221 through 537,450 196 | turn on 101,104 through 969,447 197 | toggle 71,527 through 587,717 198 | toggle 336,445 through 593,889 199 | toggle 214,179 through 575,699 200 | turn on 86,313 through 96,674 201 | toggle 566,427 through 906,888 202 | turn off 641,597 through 850,845 203 | turn on 606,524 through 883,704 204 | turn on 835,775 through 867,887 205 | toggle 547,301 through 897,515 206 | toggle 289,930 through 413,979 207 | turn on 361,122 through 457,226 208 | turn on 162,187 through 374,746 209 | turn on 348,461 through 454,675 210 | turn off 966,532 through 985,537 211 | turn on 172,354 through 630,606 212 | turn off 501,880 through 680,993 213 | turn off 8,70 through 566,592 214 | toggle 433,73 through 690,651 215 | toggle 840,798 through 902,971 216 | toggle 822,204 through 893,760 217 | turn off 453,496 through 649,795 218 | turn off 969,549 through 990,942 219 | turn off 789,28 through 930,267 220 | toggle 880,98 through 932,434 221 | toggle 568,674 through 669,753 222 | turn on 686,228 through 903,271 223 | turn on 263,995 through 478,999 224 | toggle 534,675 through 687,955 225 | turn off 342,434 through 592,986 226 | toggle 404,768 through 677,867 227 | toggle 126,723 through 978,987 228 | toggle 749,675 through 978,959 229 | turn off 445,330 through 446,885 230 | turn off 463,205 through 924,815 231 | turn off 417,430 through 915,472 232 | turn on 544,990 through 912,999 233 | turn off 201,255 through 834,789 234 | turn off 261,142 through 537,862 235 | turn off 562,934 through 832,984 236 | turn off 459,978 through 691,980 237 | turn off 73,911 through 971,972 238 | turn on 560,448 through 723,810 239 | turn on 204,630 through 217,854 240 | turn off 91,259 through 611,607 241 | turn on 877,32 through 978,815 242 | turn off 950,438 through 974,746 243 | toggle 426,30 through 609,917 244 | toggle 696,37 through 859,201 245 | toggle 242,417 through 682,572 246 | turn off 388,401 through 979,528 247 | turn off 79,345 through 848,685 248 | turn off 98,91 through 800,434 249 | toggle 650,700 through 972,843 250 | turn off 530,450 through 538,926 251 | turn on 428,559 through 962,909 252 | turn on 78,138 through 92,940 253 | toggle 194,117 through 867,157 254 | toggle 785,355 through 860,617 255 | turn off 379,441 through 935,708 256 | turn off 605,133 through 644,911 257 | toggle 10,963 through 484,975 258 | turn off 359,988 through 525,991 259 | turn off 509,138 through 787,411 260 | toggle 556,467 through 562,773 261 | turn on 119,486 through 246,900 262 | turn on 445,561 through 794,673 263 | turn off 598,681 through 978,921 264 | turn off 974,230 through 995,641 265 | turn off 760,75 through 800,275 266 | toggle 441,215 through 528,680 267 | turn off 701,636 through 928,877 268 | turn on 165,753 through 202,780 269 | toggle 501,412 through 998,516 270 | toggle 161,105 through 657,395 271 | turn on 113,340 through 472,972 272 | toggle 384,994 through 663,999 273 | turn on 969,994 through 983,997 274 | turn on 519,600 through 750,615 275 | turn off 363,899 through 948,935 276 | turn on 271,845 through 454,882 277 | turn off 376,528 through 779,640 278 | toggle 767,98 through 854,853 279 | toggle 107,322 through 378,688 280 | turn off 235,899 through 818,932 281 | turn on 445,611 through 532,705 282 | toggle 629,387 through 814,577 283 | toggle 112,414 through 387,421 284 | toggle 319,184 through 382,203 285 | turn on 627,796 through 973,940 286 | toggle 602,45 through 763,151 287 | turn off 441,375 through 974,545 288 | toggle 871,952 through 989,998 289 | turn on 717,272 through 850,817 290 | toggle 475,711 through 921,882 291 | toggle 66,191 through 757,481 292 | turn off 50,197 through 733,656 293 | toggle 83,575 through 915,728 294 | turn on 777,812 through 837,912 295 | turn on 20,984 through 571,994 296 | turn off 446,432 through 458,648 297 | turn on 715,871 through 722,890 298 | toggle 424,675 through 740,862 299 | toggle 580,592 through 671,900 300 | toggle 296,687 through 906,775 301 | -------------------------------------------------------------------------------- /resources/day7.txt: -------------------------------------------------------------------------------- 1 | bn RSHIFT 2 -> bo 2 | lf RSHIFT 1 -> ly 3 | fo RSHIFT 3 -> fq 4 | cj OR cp -> cq 5 | fo OR fz -> ga 6 | t OR s -> u 7 | lx -> a 8 | NOT ax -> ay 9 | he RSHIFT 2 -> hf 10 | lf OR lq -> lr 11 | lr AND lt -> lu 12 | dy OR ej -> ek 13 | 1 AND cx -> cy 14 | hb LSHIFT 1 -> hv 15 | 1 AND bh -> bi 16 | ih AND ij -> ik 17 | c LSHIFT 1 -> t 18 | ea AND eb -> ed 19 | km OR kn -> ko 20 | NOT bw -> bx 21 | ci OR ct -> cu 22 | NOT p -> q 23 | lw OR lv -> lx 24 | NOT lo -> lp 25 | fp OR fv -> fw 26 | o AND q -> r 27 | dh AND dj -> dk 28 | ap LSHIFT 1 -> bj 29 | bk LSHIFT 1 -> ce 30 | NOT ii -> ij 31 | gh OR gi -> gj 32 | kk RSHIFT 1 -> ld 33 | lc LSHIFT 1 -> lw 34 | lb OR la -> lc 35 | 1 AND am -> an 36 | gn AND gp -> gq 37 | lf RSHIFT 3 -> lh 38 | e OR f -> g 39 | lg AND lm -> lo 40 | ci RSHIFT 1 -> db 41 | cf LSHIFT 1 -> cz 42 | bn RSHIFT 1 -> cg 43 | et AND fe -> fg 44 | is OR it -> iu 45 | kw AND ky -> kz 46 | ck AND cl -> cn 47 | bj OR bi -> bk 48 | gj RSHIFT 1 -> hc 49 | iu AND jf -> jh 50 | NOT bs -> bt 51 | kk OR kv -> kw 52 | ks AND ku -> kv 53 | hz OR ik -> il 54 | b RSHIFT 1 -> v 55 | iu RSHIFT 1 -> jn 56 | fo RSHIFT 5 -> fr 57 | be AND bg -> bh 58 | ga AND gc -> gd 59 | hf OR hl -> hm 60 | ld OR le -> lf 61 | as RSHIFT 5 -> av 62 | fm OR fn -> fo 63 | hm AND ho -> hp 64 | lg OR lm -> ln 65 | NOT kx -> ky 66 | kk RSHIFT 3 -> km 67 | ek AND em -> en 68 | NOT ft -> fu 69 | NOT jh -> ji 70 | jn OR jo -> jp 71 | gj AND gu -> gw 72 | d AND j -> l 73 | et RSHIFT 1 -> fm 74 | jq OR jw -> jx 75 | ep OR eo -> eq 76 | lv LSHIFT 15 -> lz 77 | NOT ey -> ez 78 | jp RSHIFT 2 -> jq 79 | eg AND ei -> ej 80 | NOT dm -> dn 81 | jp AND ka -> kc 82 | as AND bd -> bf 83 | fk OR fj -> fl 84 | dw OR dx -> dy 85 | lj AND ll -> lm 86 | ec AND ee -> ef 87 | fq AND fr -> ft 88 | NOT kp -> kq 89 | ki OR kj -> kk 90 | cz OR cy -> da 91 | as RSHIFT 3 -> au 92 | an LSHIFT 15 -> ar 93 | fj LSHIFT 15 -> fn 94 | 1 AND fi -> fj 95 | he RSHIFT 1 -> hx 96 | lf RSHIFT 2 -> lg 97 | kf LSHIFT 15 -> kj 98 | dz AND ef -> eh 99 | ib OR ic -> id 100 | lf RSHIFT 5 -> li 101 | bp OR bq -> br 102 | NOT gs -> gt 103 | fo RSHIFT 1 -> gh 104 | bz AND cb -> cc 105 | ea OR eb -> ec 106 | lf AND lq -> ls 107 | NOT l -> m 108 | hz RSHIFT 3 -> ib 109 | NOT di -> dj 110 | NOT lk -> ll 111 | jp RSHIFT 3 -> jr 112 | jp RSHIFT 5 -> js 113 | NOT bf -> bg 114 | s LSHIFT 15 -> w 115 | eq LSHIFT 1 -> fk 116 | jl OR jk -> jm 117 | hz AND ik -> im 118 | dz OR ef -> eg 119 | 1 AND gy -> gz 120 | la LSHIFT 15 -> le 121 | br AND bt -> bu 122 | NOT cn -> co 123 | v OR w -> x 124 | d OR j -> k 125 | 1 AND gd -> ge 126 | ia OR ig -> ih 127 | NOT go -> gp 128 | NOT ed -> ee 129 | jq AND jw -> jy 130 | et OR fe -> ff 131 | aw AND ay -> az 132 | ff AND fh -> fi 133 | ir LSHIFT 1 -> jl 134 | gg LSHIFT 1 -> ha 135 | x RSHIFT 2 -> y 136 | db OR dc -> dd 137 | bl OR bm -> bn 138 | ib AND ic -> ie 139 | x RSHIFT 3 -> z 140 | lh AND li -> lk 141 | ce OR cd -> cf 142 | NOT bb -> bc 143 | hi AND hk -> hl 144 | NOT gb -> gc 145 | 1 AND r -> s 146 | fw AND fy -> fz 147 | fb AND fd -> fe 148 | 1 AND en -> eo 149 | z OR aa -> ab 150 | bi LSHIFT 15 -> bm 151 | hg OR hh -> hi 152 | kh LSHIFT 1 -> lb 153 | cg OR ch -> ci 154 | 1 AND kz -> la 155 | gf OR ge -> gg 156 | gj RSHIFT 2 -> gk 157 | dd RSHIFT 2 -> de 158 | NOT ls -> lt 159 | lh OR li -> lj 160 | jr OR js -> jt 161 | au AND av -> ax 162 | 0 -> c 163 | he AND hp -> hr 164 | id AND if -> ig 165 | et RSHIFT 5 -> ew 166 | bp AND bq -> bs 167 | e AND f -> h 168 | ly OR lz -> ma 169 | 1 AND lu -> lv 170 | NOT jd -> je 171 | ha OR gz -> hb 172 | dy RSHIFT 1 -> er 173 | iu RSHIFT 2 -> iv 174 | NOT hr -> hs 175 | as RSHIFT 1 -> bl 176 | kk RSHIFT 2 -> kl 177 | b AND n -> p 178 | ln AND lp -> lq 179 | cj AND cp -> cr 180 | dl AND dn -> do 181 | ci RSHIFT 2 -> cj 182 | as OR bd -> be 183 | ge LSHIFT 15 -> gi 184 | hz RSHIFT 5 -> ic 185 | dv LSHIFT 1 -> ep 186 | kl OR kr -> ks 187 | gj OR gu -> gv 188 | he RSHIFT 5 -> hh 189 | NOT fg -> fh 190 | hg AND hh -> hj 191 | b OR n -> o 192 | jk LSHIFT 15 -> jo 193 | gz LSHIFT 15 -> hd 194 | cy LSHIFT 15 -> dc 195 | kk RSHIFT 5 -> kn 196 | ci RSHIFT 3 -> ck 197 | at OR az -> ba 198 | iu RSHIFT 3 -> iw 199 | ko AND kq -> kr 200 | NOT eh -> ei 201 | aq OR ar -> as 202 | iy AND ja -> jb 203 | dd RSHIFT 3 -> df 204 | bn RSHIFT 3 -> bp 205 | 1 AND cc -> cd 206 | at AND az -> bb 207 | x OR ai -> aj 208 | kk AND kv -> kx 209 | ao OR an -> ap 210 | dy RSHIFT 3 -> ea 211 | x RSHIFT 1 -> aq 212 | eu AND fa -> fc 213 | kl AND kr -> kt 214 | ia AND ig -> ii 215 | df AND dg -> di 216 | NOT fx -> fy 217 | k AND m -> n 218 | bn RSHIFT 5 -> bq 219 | km AND kn -> kp 220 | dt LSHIFT 15 -> dx 221 | hz RSHIFT 2 -> ia 222 | aj AND al -> am 223 | cd LSHIFT 15 -> ch 224 | hc OR hd -> he 225 | he RSHIFT 3 -> hg 226 | bn OR by -> bz 227 | NOT kt -> ku 228 | z AND aa -> ac 229 | NOT ak -> al 230 | cu AND cw -> cx 231 | NOT ie -> if 232 | dy RSHIFT 2 -> dz 233 | ip LSHIFT 15 -> it 234 | de OR dk -> dl 235 | au OR av -> aw 236 | jg AND ji -> jj 237 | ci AND ct -> cv 238 | dy RSHIFT 5 -> eb 239 | hx OR hy -> hz 240 | eu OR fa -> fb 241 | gj RSHIFT 3 -> gl 242 | fo AND fz -> gb 243 | 1 AND jj -> jk 244 | jp OR ka -> kb 245 | de AND dk -> dm 246 | ex AND ez -> fa 247 | df OR dg -> dh 248 | iv OR jb -> jc 249 | x RSHIFT 5 -> aa 250 | NOT hj -> hk 251 | NOT im -> in 252 | fl LSHIFT 1 -> gf 253 | hu LSHIFT 15 -> hy 254 | iq OR ip -> ir 255 | iu RSHIFT 5 -> ix 256 | NOT fc -> fd 257 | NOT el -> em 258 | ck OR cl -> cm 259 | et RSHIFT 3 -> ev 260 | hw LSHIFT 1 -> iq 261 | ci RSHIFT 5 -> cl 262 | iv AND jb -> jd 263 | dd RSHIFT 5 -> dg 264 | as RSHIFT 2 -> at 265 | NOT jy -> jz 266 | af AND ah -> ai 267 | 1 AND ds -> dt 268 | jx AND jz -> ka 269 | da LSHIFT 1 -> du 270 | fs AND fu -> fv 271 | jp RSHIFT 1 -> ki 272 | iw AND ix -> iz 273 | iw OR ix -> iy 274 | eo LSHIFT 15 -> es 275 | ev AND ew -> ey 276 | ba AND bc -> bd 277 | fp AND fv -> fx 278 | jc AND je -> jf 279 | et RSHIFT 2 -> eu 280 | kg OR kf -> kh 281 | iu OR jf -> jg 282 | er OR es -> et 283 | fo RSHIFT 2 -> fp 284 | NOT ca -> cb 285 | bv AND bx -> by 286 | u LSHIFT 1 -> ao 287 | cm AND co -> cp 288 | y OR ae -> af 289 | bn AND by -> ca 290 | 1 AND ke -> kf 291 | jt AND jv -> jw 292 | fq OR fr -> fs 293 | dy AND ej -> el 294 | NOT kc -> kd 295 | ev OR ew -> ex 296 | dd OR do -> dp 297 | NOT cv -> cw 298 | gr AND gt -> gu 299 | dd RSHIFT 1 -> dw 300 | NOT gw -> gx 301 | NOT iz -> ja 302 | 1 AND io -> ip 303 | NOT ag -> ah 304 | b RSHIFT 5 -> f 305 | NOT cr -> cs 306 | kb AND kd -> ke 307 | jr AND js -> ju 308 | cq AND cs -> ct 309 | il AND in -> io 310 | NOT ju -> jv 311 | du OR dt -> dv 312 | dd AND do -> dq 313 | b RSHIFT 2 -> d 314 | jm LSHIFT 1 -> kg 315 | NOT dq -> dr 316 | bo OR bu -> bv 317 | gk OR gq -> gr 318 | he OR hp -> hq 319 | NOT h -> i 320 | hf AND hl -> hn 321 | gv AND gx -> gy 322 | x AND ai -> ak 323 | bo AND bu -> bw 324 | hq AND hs -> ht 325 | hz RSHIFT 1 -> is 326 | gj RSHIFT 5 -> gm 327 | g AND i -> j 328 | gk AND gq -> gs 329 | dp AND dr -> ds 330 | b RSHIFT 3 -> e 331 | gl AND gm -> go 332 | gl OR gm -> gn 333 | y AND ae -> ag 334 | hv OR hu -> hw 335 | 1674 -> b 336 | ab AND ad -> ae 337 | NOT ac -> ad 338 | 1 AND ht -> hu 339 | NOT hn -> ho 340 | -------------------------------------------------------------------------------- /resources/day8.txt: -------------------------------------------------------------------------------- 1 | "azlgxdbljwygyttzkfwuxv" 2 | "v\xfb\"lgs\"kvjfywmut\x9cr" 3 | "merxdhj" 4 | "dwz" 5 | "d\\gkbqo\\fwukyxab\"u" 6 | "k\xd4cfixejvkicryipucwurq\x7eq" 7 | "nvtidemacj\"hppfopvpr" 8 | "kbngyfvvsdismznhar\\p\"\"gpryt\"jaeh" 9 | "khre\"o\x0elqfrbktzn" 10 | "nugkdmqwdq\x50amallrskmrxoyo" 11 | "jcrkptrsasjp\\\"cwigzynjgspxxv\\vyb" 12 | "ramf\"skhcmenhbpujbqwkltmplxygfcy" 13 | "aqjqgbfqaxga\\fkdcahlfi\"pvods" 14 | "pcrtfb" 15 | "\x83qg\"nwgugfmfpzlrvty\"ryoxm" 16 | "fvhvvokdnl\\eap" 17 | "kugdkrat" 18 | "seuxwc" 19 | "vhioftcosshaqtnz" 20 | "gzkxqrdq\\uko\"mrtst" 21 | "znjcomvy\x16hhsenmroswr" 22 | "clowmtra" 23 | "\xc4" 24 | "jpavsevmziklydtqqm" 25 | "egxjqytcttr\\ecfedmmovkyn\"m" 26 | "mjulrvqgmsvmwf" 27 | "o\\prxtlfbatxerhev\xf9hcl\x44rzmvklviv" 28 | "lregjexqaqgwloydxdsc\\o\"dnjfmjcu" 29 | "lnxluajtk\x8desue\\k\x7abhwokfhh" 30 | "wrssfvzzn\"llrysjgiu\"npjtdli" 31 | "\x67lwkks" 32 | "bifw\"ybvmwiyi\"vhol\"vol\xd4" 33 | "aywdqhvtvcpvbewtwuyxrix" 34 | "gc\xd3\"caukdgfdywj" 35 | "uczy\\fk" 36 | "bnlxkjvl\x7docehufkj\\\"qoyhag" 37 | "bidsptalmoicyorbv\\" 38 | "jorscv\"mufcvvfmcv\"ga" 39 | "sofpwfal\\a" 40 | "kcuqtbboaly\"uj\"k" 41 | "n\\c" 42 | "x\"\xcaj\\xwwvpdldz" 43 | "eyukphh" 44 | "wcyjq" 45 | "vjx\"\"hjroj\"l\x4cjwbr" 46 | "xcodsxzfqw\\rowqtuwvjnxupjnrh" 47 | "yc" 48 | "fpvzldgbdtca\"hqwa" 49 | "ymjq\x8ahohvafubra\"hgqoknkuyph" 50 | "kx\\mkaaklvcup" 51 | "belddrzegcsxsyfhzyz" 52 | "fuyswi" 53 | "\\hubzebo\"ha\\qyr\"dv\\" 54 | "mxvlz\"fwuvx\"cyk\"" 55 | "ftbh\"ro\\tmcpnpvh\"xx" 56 | "ygi" 57 | "rw\"\"wwn\\fgbjumq\"vgvoh\xd0\"mm" 58 | "\"pat\"\x63kpfc\"\x2ckhfvxk\"uwqzlx" 59 | "o" 60 | "d\"hqtsfp\xceaswe\"\xc0lw" 61 | "zajpvfawqntvoveal\"\"trcdarjua" 62 | "xzapq" 63 | "rkmhm" 64 | "byuq" 65 | "rwwmt\xe8jg\xc2\"omt" 66 | "nfljgdmgefvlh\"x" 67 | "rpjxcexisualz" 68 | "doxcycmgaiptvd" 69 | "rq\\\"mohnjdf\\xv\\hrnosdtmvxot" 70 | "oqvbcenib\"uhy\\npjxg" 71 | "pkvgnm\\ruayuvpbpd" 72 | "kknmzpxqfbcdgng" 73 | "piduhbmaympxdexz" 74 | "vapczawekhoa\\or" 75 | "tlwn\"avc\"bycg\"\"xuxea" 76 | "\xcdvryveteqzxrgopmdmihkcgsuozips" 77 | "kpzziqt" 78 | "sdy\\s\"cjq" 79 | "yujs" 80 | "qte\"q" 81 | "qyvpnkhjcqjv\"cclvv\"pclgtg\xeak\"tno" 82 | "xwx" 83 | "vibuvv" 84 | "qq\"" 85 | "wwjduomtbkbdtorhpyalxswisq\"r" 86 | "afuw\\mfjzctcivwesutxbk\"lk" 87 | "e\xcef\\hkiu" 88 | "ftdrgzvygcw\"jwsrcmgxj" 89 | "zrddqfkx\x21dr\"ju\"elybk\"powj\"\"kpryz" 90 | "dttdkfvbodkma\"" 91 | "lzygktugpqw" 92 | "qu\x83tes\\u\"tnid\"ryuz" 93 | "\\o\"pe\\vqwlsizjklwrjofg\xe2oau\\rd" 94 | "mikevjzhnwgx\"fozrj\"h\"" 95 | "ligxmxznzvtachvvbahnff" 96 | "d\\kq" 97 | "tnbkxpzmcakqhaa" 98 | "g\\yeakebeyv" 99 | "cqkcnd\"sxjxfnawy\x31zax\x6ceha" 100 | "m\x0dtqotffzdnetujtsgjqgwddc" 101 | "masnugb\"etgmxul\x3bqd\\tmtddnvcy" 102 | "floediikodfgre\x23wyoxlswxflwecdjpt" 103 | "zu" 104 | "r" 105 | "\"ashzdbd\"pdvba\xeeumkr\\amnj" 106 | "ckslmuwbtfouwpfwtuiqmeozgspwnhx" 107 | "t\\qjsjek\xf9gjcxsyco\"r" 108 | "hoed\x1b\\tcmaqch\"epdy" 109 | "mgjiojwzc\\ypqcn\xb1njmp\"aeeblxt" 110 | "\xdf\"h\x5enfracj" 111 | "\x6fpbpocrb" 112 | "jbmhrswyyq\\" 113 | "wtyqtenfwatji\"ls\\" 114 | "voy" 115 | "awj" 116 | "rtbj\"j" 117 | "hynl" 118 | "orqqeuaat\\xu\\havsgr\xc5qdk" 119 | "g\"npyzjfq\"rjefwsk" 120 | "rk\\kkcirjbixr\\zelndx\"bsnqvqj\"" 121 | "tecoz" 122 | "dn\"uswngbdk\"" 123 | "qb\\" 124 | "wpyis\\ebq" 125 | "ppwue\\airoxzjjdqbvyurhaabetv" 126 | "fxlvt" 127 | "ql\"oqsmsvpxcg\"k" 128 | "vqlhuec\\adw" 129 | "qzmi\xffberakqqkk" 130 | "tisjqff\"wf" 131 | "yhnpudoaybwucvppj" 132 | "xhfuf\\ehsrhsnfxcwtibd\"ubfpz" 133 | "ihgjquzhf\"" 134 | "ff\x66dsupesrnusrtqnywoqcn\\" 135 | "z\x77zpubbjmd" 136 | "\"vhzlbwq\"xeimjt\\xe\x85umho\"m\"\"bmy" 137 | "mmuvkioocmzjjysi\"mkfbec\"" 138 | "rpgghowbduw\x2fayslubajinoik\xd0hcfy" 139 | "xrkyjqul\xdexlojgdphczp\"jfk" 140 | "mg\x07cnr\x8b\x67xdgszmgiktpjhawho" 141 | "kdgufhaoab" 142 | "rlhela\"nldr" 143 | "wzye\x87u" 144 | "yif\x75bjhnitgoarmfgqwpmopu" 145 | "pvlbyez\"wyy\x3dpgr" 146 | "ezdm\"ovkruthkvdwtqwr\"ibdoawzgu" 147 | "qubp" 148 | "b\\kcpegcn\\zgdemgorjnk" 149 | "gjsva\\kzaor\"\"gtpd" 150 | "\"kt" 151 | "rlymwlcodix" 152 | "qqtmswowxca\"jvv" 153 | "jni\xebwhozb" 154 | "zhino\"kzjtmgxpi\"zzexijg" 155 | "tyrbat\\mejgzplufxixkyg" 156 | "lhmopxiao\x09\"p\xebl" 157 | "xefioorxvate" 158 | "nmcgd\x46xfujt\"w" 159 | "\xe3wnwpat\"gtimrb" 160 | "wpq\"xkjuw\xebbohgcagppb" 161 | "fmvpwaca" 162 | "mlsw" 163 | "fdan\\\x9e" 164 | "\"f\"fmdlzc" 165 | "nyuj\\jnnfzdnrqmhvjrahlvzl" 166 | "zn\"f\xcfsshcdaukkimfwk" 167 | "uayugezzo\\\"e\"blnrgjaupqhik" 168 | "efd\"apkndelkuvfvwyyatyttkehc" 169 | "ufxq\\\"m\"bwkh\x93kapbqrvxxzbzp\\" 170 | "fgypsbgjak\x79qblbeidavqtddfacq\\i\"h" 171 | "kcfgpiysdxlgejjvgndb\\dovfpqodw" 172 | "\"onpqnssmighipuqgwx\"nrokzgvg" 173 | "vhjrrhfrba\"jebdanzsrdusut\\wbs" 174 | "o\xdakymbaxakys" 175 | "uwxhhzz\\mtmhghjn\\\\tnhzbejj" 176 | "yd\\" 177 | "bpgztp\\lzwpdqju\"it\x35qjhihjv" 178 | "\\my\\b\"klnnto\\\xb3mbtsh" 179 | "ezyvknv\"l\x2bdhhfjcvwzhjgmhwbqd\"\\" 180 | "ftkz\"amoncbsohtaumhl\"wsodemopodq" 181 | "ifv" 182 | "dmzfxvzq" 183 | "sped\"bvmf\"mmevl\"zydannpfny" 184 | "fjxcjwlv\"pnqyrzatsjwsqfidb" 185 | "muc\xfdqouwwnmuixru\\zlhjintplvtee" 186 | "mraqgvmj" 187 | "njopq\"ftcsryo" 188 | "enoh\"n" 189 | "t\"ntjhjc\"nzqh\xf7dcohhlsja\x7dtr" 190 | "flbqcmcoun" 191 | "dxkiysrn\\dyuqoaig" 192 | "nehkzi\"h\"syktzfufotng\xdafqo" 193 | "dzkjg\\hqjk\\\"zfegssjhn" 194 | "sadlsjv" 195 | "vmfnrdb\"" 196 | "ac\\bdp\"n" 197 | "qt\x89h" 198 | "lsndeugwvijwde\\vjapbm\\k\\nljuva" 199 | "twpmltdzyynqt\\z\\tnund\x64hm" 200 | "hpcyata\"ocylbkzdnhujh" 201 | "hskzq\"knntuhscex\"q\\y\\vqj\x3an" 202 | "eekwyufvji\\mqgeroekxeyrmymq" 203 | "hl\"durthetvri\xebw\\jxu\"rcmiuy" 204 | "\"fxdnmvnftxwesmvvq\"sjnf\xaabpg\"iary" 205 | "\"\"nksqso" 206 | "ruq\xbezugge\"d\"hwvoxmy\"iawikddxn\"x" 207 | "rxxnlfay" 208 | "stcu\"mv\xabcqts\\fasff" 209 | "yrnvwfkfuzuoysfdzl\x02bk" 210 | "qbdsmlwdbfknivtwijbwtatqfe" 211 | "\"erqh\\csjph" 212 | "ikfv" 213 | "\xd2cuhowmtsxepzsivsvnvsb" 214 | "vj" 215 | "d" 216 | "\\g" 217 | "porvg\x62qghorthnc\"\\" 218 | "tiks\\kr\"\x0fuejvuxzswnwdjscrk" 219 | "xmgfel\"atma\\zaxmlgfjx\"ajmqf" 220 | "oz\\rnxwljc\\\"umhymtwh" 221 | "wlsxxhm\x7fqx\\gjoyrvccfiner\\qloluqv" 222 | "k\\ieq" 223 | "xidjj\"ksnlgnwxlddf\\s\\kuuleb" 224 | "wjpnzgprzv\\maub\x0cj" 225 | "r" 226 | "y" 227 | "\"yecqiei\"ire\\jdhlnnlde\xc5u" 228 | "drvdiycqib" 229 | "egnrbefezcrhgldrtb" 230 | "plqodxv\\zm\"uodwjdocri\x55ucaezutm" 231 | "f\"wexcw\x02ekewx\"alyzn" 232 | "pqajwuk\\\\oatkfqdyspnrupo" 233 | "rkczj\"fzntabpnygrhamk\\km\x68xfkmr" 234 | "wejam\xbac\x37kns" 235 | "qqmlwjk\"gh" 236 | "fdcjsxlgx" 237 | "\\cxvxy\"kb\"\"unubvrsq\\y\\awfhbmarj\\" 238 | "geunceaqr" 239 | "tpkg\"svvngk\\sizlsyaqwf" 240 | "\"pa\\x\x18od\\emgje\\" 241 | "ffiizogjjptubzqfuh\"cctieqcdh" 242 | "yikhiyyrpgglpos" 243 | "h\\" 244 | "jotqojodcv" 245 | "ervsz\x87ade\"fevq\\tcqowt" 246 | "\\y\"fgrxtppkcseeg\\onxjarx\\hyhfn\x5fi" 247 | "kxndlabn\\wwumctuzdcfiitrbnn" 248 | "eoosynwhwm" 249 | "\"c\x04" 250 | "ny\xf6vuwlec" 251 | "ubgxxcvnltzaucrzg\\xcez" 252 | "pnocjvo\\yt" 253 | "fcabrtqog\"a\"zj" 254 | "o\\bha\\mzxmrfltnflv\xea" 255 | "tbfvzwhexsdxjmxejwqqngzixcx" 256 | "wdptrakok\"rgymturdmwfiwu" 257 | "reffmj" 258 | "lqm" 259 | "\\oc" 260 | "p\"" 261 | "ygkdnhcuehlx" 262 | "vsqmv\"bqay\"olimtkewedzm" 263 | "isos\x6azbnkojhxoopzetbj\xe1yd" 264 | "yo\\pgayjcyhshztnbdv" 265 | "fg\"h" 266 | "vcmcojolfcf\\\\oxveua" 267 | "w\"vyszhbrr\"jpeddpnrjlca\x69bdbopd\\z" 268 | "jikeqv" 269 | "\"dkjdfrtj" 270 | "is" 271 | "hgzx" 272 | "z\"" 273 | "woubquq\\ag\"" 274 | "xvclriqa\xe6ltt" 275 | "tfxinifmd" 276 | "mvywzf\"jz" 277 | "vlle" 278 | "c\"rf\"wynhye\x25vccvb\"" 279 | "zvuxm" 280 | "\xf2\"jdstiwqer\"h" 281 | "kyogyogcknbzv\x9f\\\\e" 282 | "kspodj\"edpeqgypc" 283 | "oh\\x\\h" 284 | "julb" 285 | "bmcfkidxyilgoy\\xmu\"ig\\qg" 286 | "veqww\"ea" 287 | "fkdbemtgtkpqisrwlxutllxc\"mbelhs" 288 | "e" 289 | "ecn\x50ooprbstnq" 290 | "\"\xe8\"ec\xeah\"qo\\g\"iuqxy\"e\"y\xe7xk\xc6d" 291 | "lwj\"aftrcqj" 292 | "jduij\x97zk\"rftjrixzgscxxllpqx\"bwwb" 293 | "fqcditz" 294 | "f\x19azclj\"rsvaokgvty\"aeq" 295 | "erse\x9etmzhlmhy\x67yftoti" 296 | "lsdw\xb3dmiy\\od" 297 | "x\x6fxbljsjdgd\xaau" 298 | "hjg\\w\"\x78uoqbsdikbjxpip\"w\"jnhzec" 299 | "gk" 300 | "\\zrs\\syur" 301 | -------------------------------------------------------------------------------- /resources/day9.txt: -------------------------------------------------------------------------------- 1 | AlphaCentauri to Snowdin = 66 2 | AlphaCentauri to Tambi = 28 3 | AlphaCentauri to Faerun = 60 4 | AlphaCentauri to Norrath = 34 5 | AlphaCentauri to Straylight = 34 6 | AlphaCentauri to Tristram = 3 7 | AlphaCentauri to Arbre = 108 8 | Snowdin to Tambi = 22 9 | Snowdin to Faerun = 12 10 | Snowdin to Norrath = 91 11 | Snowdin to Straylight = 121 12 | Snowdin to Tristram = 111 13 | Snowdin to Arbre = 71 14 | Tambi to Faerun = 39 15 | Tambi to Norrath = 113 16 | Tambi to Straylight = 130 17 | Tambi to Tristram = 35 18 | Tambi to Arbre = 40 19 | Faerun to Norrath = 63 20 | Faerun to Straylight = 21 21 | Faerun to Tristram = 57 22 | Faerun to Arbre = 83 23 | Norrath to Straylight = 9 24 | Norrath to Tristram = 50 25 | Norrath to Arbre = 60 26 | Straylight to Tristram = 27 27 | Straylight to Arbre = 81 28 | Tristram to Arbre = 90 29 | -------------------------------------------------------------------------------- /src/advent_of_code_2015/day1.clj: -------------------------------------------------------------------------------- 1 | (ns advent-of-code-2015.day1 2 | (:require [clojure.java.io :as io])) 3 | 4 | (defn move [c] 5 | (case c \( 1 \) -1 0)) 6 | 7 | (defn run [] 8 | (let [resource (map move (slurp (io/resource "day1.txt")))] 9 | ;; part 1 10 | (reduce + resource) 11 | ;; part 2 12 | (+ 1 (.indexOf (reductions + resource) -1)))) 13 | -------------------------------------------------------------------------------- /src/advent_of_code_2015/day10.clj: -------------------------------------------------------------------------------- 1 | (ns advent-of-code-2015.day10) 2 | 3 | (defn look-and-say [n] 4 | (->> (re-seq #"(\d)\1*" n) 5 | (map #(let [f (first %)] [(count f) (first f)])) 6 | flatten 7 | (apply str))) 8 | 9 | (defn run [] 10 | (let [input "1321131112"] 11 | (->> (iterate look-and-say input) 12 | (drop 50) 13 | first 14 | count))) 15 | -------------------------------------------------------------------------------- /src/advent_of_code_2015/day11.clj: -------------------------------------------------------------------------------- 1 | (ns advent-of-code-2015.day11) 2 | 3 | (def A 97) 4 | (def Z 122) 5 | (def illegal #{105 111 108}) 6 | 7 | (defn has-straight [ccs] 8 | (-> (map (fn [[a b]] (- b a)) (partition 2 1 ccs)) 9 | (java.util.Collections/indexOfSubList [1 1]) 10 | (not= -1))) 11 | 12 | (defn all-legal-chars [ccs] 13 | (every? not (map illegal ccs))) 14 | 15 | (defn non-overlapping [ccs] 16 | (>= (->> (partition 2 1 ccs) 17 | (filter #(apply = %)) 18 | set 19 | count) 20 | 2)) 21 | 22 | (defn is-legit [ccs] 23 | (and (has-straight ccs) 24 | (all-legal-chars ccs) 25 | (non-overlapping ccs))) 26 | 27 | (defn next-pw [ccs] 28 | (loop [pos (- (count ccs) 1), vals ccs] 29 | (let [c (get vals pos)] 30 | (if (= c Z) 31 | (recur (- pos 1) (assoc vals pos A)) 32 | (assoc vals pos (+ c 1)))))) 33 | 34 | (defn run [] 35 | (let [input "vzbxxyzz" 36 | ccs (vec (map int input))] 37 | (->> (iterate next-pw ccs) 38 | (drop 1) 39 | (filter is-legit) 40 | first 41 | (map char) 42 | char-array 43 | (String.)))) 44 | -------------------------------------------------------------------------------- /src/advent_of_code_2015/day12.clj: -------------------------------------------------------------------------------- 1 | (ns advent-of-code-2015.day12 2 | (:require [clojure.java.io :as io] 3 | [clojure.walk :refer [postwalk]] 4 | [cognitect.transit :as transit] 5 | [com.rpl.specter :refer [select walker]])) 6 | 7 | (defn non-scarlet? [data] 8 | (not (and (map? data) 9 | (get (clojure.set/map-invert data) "red")))) 10 | 11 | (defn run [] 12 | (let [input (io/input-stream (io/resource "day12.txt")) 13 | reader (transit/reader input :json) 14 | data (transit/read reader)] 15 | ;; part 1 16 | (reduce + (select (walker number?) data)) 17 | ;; part 2 18 | (reduce + (select 19 | (walker number?) 20 | (postwalk #(when (non-scarlet? %) %) data))))) 21 | 22 | (run) 23 | -------------------------------------------------------------------------------- /src/advent_of_code_2015/day13.clj: -------------------------------------------------------------------------------- 1 | (ns advent-of-code-2015.day13 2 | (:require [clojure.java.io :as io] 3 | [clojure.string :as str] 4 | [clojure.math.combinatorics :refer [permutations]])) 5 | 6 | (defn score-arrangement [stats arrangement] 7 | (let [diners (count arrangement)] 8 | (->> (for [[n person] (map-indexed vector arrangement)] 9 | (+ (or (get stats [person (get arrangement (mod (- n 1) diners))]) 0) 10 | (or (get stats [person (get arrangement (mod (+ n 1) diners))]) 0))) 11 | (reduce +)))) 12 | 13 | (defn parse-input [resource] 14 | (let [matches (re-seq #"(\w+) would (gain|lose) (\d+) happiness units by sitting next to (\w+)\." resource)] 15 | (into {} (for [[_ person direction amount next-to] matches] 16 | [[person next-to] (* (Integer/parseInt amount) (if (= "lose" direction) -1 1))])))) 17 | 18 | (defn run [] 19 | (let [resource (slurp (io/resource "day13.txt")) 20 | stats (parse-input resource) 21 | diners (set (map first (keys stats)))] 22 | 23 | ;; part 1 24 | (apply max 25 | (for [arrangement (permutations diners)] 26 | (score-arrangement stats (vec arrangement)))) 27 | 28 | ;; part 2 29 | (let [new-diners (conj diners "Derek")] 30 | (apply max 31 | (for [arrangement (permutations new-diners)] 32 | (score-arrangement stats (vec arrangement))))))) 33 | -------------------------------------------------------------------------------- /src/advent_of_code_2015/day14.clj: -------------------------------------------------------------------------------- 1 | (ns advent-of-code-2015.day14 2 | (:require [clojure.java.io :as io])) 3 | 4 | (defn parse-input [resource] 5 | (let [matches (re-seq #"(\w+) can fly (\d+) km/s for (\d+) seconds, but then must rest for (\d+) seconds\." resource)] 6 | (for [[_ reindeer & vals] matches] 7 | (into [reindeer] (map #(Integer/parseInt %) vals))))) 8 | 9 | (defn run-run-rudolph [speed endurance rest-time] 10 | (cycle (concat (repeat endurance speed) (repeat rest-time 0)))) 11 | 12 | (defn score-race [results] 13 | (let [best (apply max (map second results))] 14 | (into {} 15 | (for [[horse score] results :when (= score best)] 16 | [horse 1])))) 17 | 18 | (defn run [] 19 | (let [resource (slurp (io/resource "day14.txt")) 20 | stats (parse-input resource)] 21 | ;; part 1 22 | (for [[reindeer & performance] stats] 23 | [reindeer (reduce + (take 2503 (apply run-run-rudolph performance)))]) 24 | ;; part 2 25 | (->> (for [n (range 1 2504)] 26 | (score-race (for [[reindeer & performance] stats] 27 | [reindeer (reduce + (take n (apply run-run-rudolph performance)))]))) 28 | (apply merge-with +)))) 29 | -------------------------------------------------------------------------------- /src/advent_of_code_2015/day15.clj: -------------------------------------------------------------------------------- 1 | (ns advent-of-code-2015.day15 2 | (:require [clojure.java.io :as io] 3 | [clojure.math.combinatorics :refer [selections]])) 4 | 5 | (defn parse-input [resource] 6 | (into [] (for [[_ ingredient props] (re-seq #"(\w+): (.*)" resource)] 7 | [ingredient (into {} (for [[_ k v] (re-seq #"(\w+) (-?\d+)" props)] 8 | [(keyword k) (Integer/parseInt v)]))]))) 9 | 10 | (defn score-key [stats recipe key] 11 | (max 0 (reduce + (map * recipe (for [[_ stat] stats] (key stat)))))) 12 | 13 | (defn score [stats recipe] 14 | (apply * 15 | (for [key [:capacity :durability :flavor :texture] 16 | :let [score (score-key stats recipe key)] 17 | :while (not= 0 score)] 18 | score))) 19 | 20 | (defn run [] 21 | (let [resource (slurp (io/resource "day15.txt")) 22 | stats (parse-input resource) 23 | ingredients (set (map first stats))] 24 | ;; part 1 25 | (apply max 26 | (for [recipe (selections (range 1 97) (count ingredients)) 27 | :when (= 100 (reduce + recipe)) 28 | ;; part 2 29 | :when (= 500 (score-key stats recipe :calories))] 30 | (score stats recipe))))) 31 | -------------------------------------------------------------------------------- /src/advent_of_code_2015/day16.clj: -------------------------------------------------------------------------------- 1 | (ns advent-of-code-2015.day16 2 | (:require [clojure.java.io :as io] 3 | [clojure.string :as str] 4 | [clojure.set :as set])) 5 | 6 | (defn parse-input [resource] 7 | (for [line (str/split-lines resource)] 8 | (into {} (for [[_ k v] (re-seq #"([a-z]+): (\d+)" line)] [(keyword k) (Integer/parseInt v)])))) 9 | 10 | (def gift 11 | {:children 3 :cats 7 :samoyeds 2 :pomeranians 3 :akitas 0 12 | :vizslas 0 :goldfish 5 :trees 3 :cars 2 :perfumes 1}) 13 | 14 | (defn match-auntie [n auntie] 15 | [n (set/superset? (set gift) (set auntie))]) 16 | 17 | (defn match-auntie-2 [n auntie] 18 | [n (let [exact (dissoc auntie :cats :trees :pomeranians :goldfish)] 19 | (and (set/superset? (set gift) (set exact)) 20 | (> (or (:cats auntie) 8) 7) (> (or (:trees auntie) 4) 3) 21 | (< (or (:pomeranians auntie) 0) 3) (< (or (:goldfish auntie) 0) 5)))]) 22 | 23 | (defn run [] 24 | (let [resource (slurp (io/resource "day16.txt")) 25 | aunties (parse-input resource)] 26 | ;; part 1 27 | (->> aunties (map-indexed match-auntie) (filter second) first first inc) 28 | ;; part 2 29 | (->> aunties (map-indexed match-auntie-2) (filter second) first first inc))) 30 | -------------------------------------------------------------------------------- /src/advent_of_code_2015/day17.clj: -------------------------------------------------------------------------------- 1 | (ns advent-of-code-2015.day17 2 | (:require [clojure.java.io :as io] 3 | [clojure.math.combinatorics :refer [subsets]])) 4 | 5 | (defn run [] 6 | (let [resource (slurp (io/resource "day17.txt")) 7 | containers (->> (re-seq #"\d+" resource) (map-indexed #(vector (Integer/parseInt %2) %1)))] 8 | (let [result (vec (->> (subsets containers) 9 | (filter #(= 150 (reduce + (map first %))))))] 10 | ;; part 1 11 | (count result) 12 | ;; part 2 13 | (let [min-containers (->> result (map count) (apply min))] 14 | (->> result (map count) (filter #(= min-containers %)) count))))) 15 | -------------------------------------------------------------------------------- /src/advent_of_code_2015/day18.clj: -------------------------------------------------------------------------------- 1 | (ns advent-of-code-2015.day18 2 | (:require [clojure.java.io :as io] 3 | [clojure.string :as str])) 4 | 5 | (defn neighbors [point] 6 | (map #(map + %1 %2) 7 | (repeat point) 8 | [[-1 -1] [0 -1] [1 -1] [-1 0] [1 0] [-1 1] [0 1] [1 1]])) 9 | 10 | (defn tick [grid] 11 | (vec (map-indexed 12 | (fn [x row] 13 | (vec (map-indexed 14 | (fn [y col] 15 | (let [c (->> (neighbors [x y]) 16 | (map (partial get-in grid)) 17 | (filter (partial = \#)) 18 | count)] 19 | (if (= col \#) 20 | (if (#{2 3} c) \# \.) 21 | (if (= 3 c) \# \.)))) row))) grid))) 22 | 23 | (defn tick-2 [grid] 24 | (reduce #(assoc-in %1 %2 \#) (tick grid) [[0 0] [99 99] [0 99] [99 0]])) 25 | 26 | (defn run [] 27 | (let [resource (slurp (io/resource "day18.txt")) 28 | grid (vec (map #(vec %) (str/split-lines resource)))] 29 | (->> (iterate tick-2 grid) 30 | (drop 100) 31 | first 32 | flatten 33 | (filter (partial = \#)) 34 | count))) 35 | -------------------------------------------------------------------------------- /src/advent_of_code_2015/day19.clj: -------------------------------------------------------------------------------- 1 | (ns advent-of-code-2015.day19 2 | (:require [clojure.java.io :as io] 3 | [clojure.string :as str])) 4 | 5 | (defn match-indexes [pattern string] 6 | (let [matcher (re-matcher pattern string)] 7 | (loop [indexes [], match (re-find matcher)] 8 | (if (nil? match) 9 | indexes 10 | (recur (conj indexes [(.start matcher) (.end matcher)]) (re-find matcher)))))) 11 | 12 | (defn replace-string [[start end] string replacement] 13 | (str (subs string 0 start) replacement (subs string end))) 14 | 15 | (defn shrink [replacements current goal steps] 16 | (if (= current goal) steps 17 | (let [[replace with first-index] 18 | (first (for [[_ replace with] replacements 19 | :let [first-index (first (match-indexes (re-pattern with) current))] 20 | :when first-index] 21 | [replace with first-index]))] 22 | (if (nil? first-index) 23 | Integer/MAX_VALUE 24 | (shrink replacements (replace-string first-index current replace) goal (inc steps)))))) 25 | 26 | (defn run [] 27 | (let [resource (slurp (io/resource "day19.txt")) 28 | replacements (re-seq #"(\w+) => (\w+)" resource) 29 | molecule (last (str/split-lines resource))] 30 | 31 | ;; part 1 32 | (->> (for [[_ replace with] replacements 33 | index (match-indexes (re-pattern replace) molecule)] 34 | (replace-string index molecule with)) 35 | distinct 36 | count) 37 | 38 | ;; part 2 39 | (apply min (for [_ (range 20)] 40 | (shrink (shuffle replacements) molecule "e" 0))))) 41 | -------------------------------------------------------------------------------- /src/advent_of_code_2015/day2.clj: -------------------------------------------------------------------------------- 1 | (ns advent-of-code-2015.day2 2 | (:require [clojure.java.io :as io] 3 | [clojure.string :refer [split]]) 4 | (:import java.lang.Integer)) 5 | 6 | (defn areas [[l w h]] 7 | [(* l w) (* w h) (* h l)]) 8 | 9 | (defn paper-required [areas] 10 | (let [slack (apply min areas)] 11 | (+ slack (reduce + (map #(* 2 %) areas))))) 12 | 13 | (defn ribbon-required [dimensions] 14 | (+ 15 | ;; ribbon 16 | (reduce + (map #(* 2 %) (take 2 (sort dimensions)))) 17 | ;; bow 18 | (apply * dimensions))) 19 | 20 | (defn run [] 21 | (let [resource (slurp (io/resource "day2.txt")) 22 | sides (partition 3 (map #(Integer/parseInt %) (split resource #"x|\n")))] 23 | ;; part 1 24 | (reduce + (map paper-required (map areas sides))) 25 | ;; part 2 26 | (reduce + (map ribbon-required sides)))) 27 | -------------------------------------------------------------------------------- /src/advent_of_code_2015/day20.clj: -------------------------------------------------------------------------------- 1 | (ns advent-of-code-2015.day20) 2 | 3 | (defn visit-houses [n value-per-house limit] 4 | (let [houses (int-array n)] 5 | (doseq [elf (range 1 n) 6 | visits (range elf (if limit (min n (* limit elf)) n) elf)] 7 | (aset-int houses visits (+ (* value-per-house elf) (aget houses visits)))) 8 | houses)) 9 | 10 | (defn run [] 11 | (let [goal 34000000 12 | search-bound 1000000 13 | houses (visit-houses search-bound 10 nil) 14 | houses-2 (visit-houses search-bound 11 50)] 15 | (->> houses-2 16 | (map-indexed vector) 17 | (filter (fn [[n count]] (>= count goal))) 18 | first))) 19 | -------------------------------------------------------------------------------- /src/advent_of_code_2015/day21.clj: -------------------------------------------------------------------------------- 1 | (ns advent-of-code-2015.day21 2 | (:require [clojure.math.combinatorics :refer [subsets]])) 3 | 4 | (def weapons 5 | [{:cost 8 :damage 4 :armor 0} 6 | {:cost 10 :damage 5 :armor 0} 7 | {:cost 25 :damage 6 :armor 0} 8 | {:cost 40 :damage 7 :armor 0} 9 | {:cost 74 :damage 8 :armor 0}]) 10 | 11 | (def armor 12 | [{:cost 13 :damage 0 :armor 1} 13 | {:cost 31 :damage 0 :armor 2} 14 | {:cost 53 :damage 0 :armor 3} 15 | {:cost 75 :damage 0 :armor 4} 16 | {:cost 102 :damage 0 :armor 5}]) 17 | 18 | (def rings 19 | [{:cost 25 :damage 1 :armor 0} 20 | {:cost 50 :damage 2 :armor 0} 21 | {:cost 100 :damage 3 :armor 0} 22 | {:cost 20 :damage 0 :armor 1} 23 | {:cost 40 :damage 0 :armor 2} 24 | {:cost 80 :damage 0 :armor 3}]) 25 | 26 | (defn battle [boss me] 27 | (let [my-divisor (- (:damage boss) (:armor me)) 28 | turns-to-my-death (Math/ceil (/ 100 (if (<= my-divisor 0) 1 my-divisor))) 29 | boss-divisor (- (:damage me) (:armor boss)) 30 | turns-to-boss-death (Math/ceil (/ (:hit-points boss) (if (<= boss-divisor 0) 1 boss-divisor)))] 31 | (>= turns-to-my-death turns-to-boss-death))) 32 | 33 | (defn purchases [] 34 | (for [weapon weapons 35 | armor (->> (subsets armor) (filter #(<= (count %) 1))) 36 | rings (->> (subsets rings) (filter #(<= (count %) 2)))] 37 | (merge-with + weapon (apply merge-with + armor) (apply merge-with + rings)))) 38 | 39 | (defn run [] 40 | (let [boss {:hit-points 103 :damage 9 :armor 2}] 41 | (for [[truth final] [[true? min] [false? max]]] 42 | (->> (purchases) 43 | (map (juxt :cost (partial battle boss))) 44 | (filter (comp truth second)) 45 | (map first) 46 | (apply final))))) 47 | -------------------------------------------------------------------------------- /src/advent_of_code_2015/day22.clj: -------------------------------------------------------------------------------- 1 | (ns advent-of-code-2015.day22 2 | (:require [clojure.test :refer [deftest is]])) 3 | 4 | (def spell-book [{:cost 53 :damage 4} 5 | {:cost 73 :damage 2 :heals 2} 6 | {:cost 113 :effect {:turns 6 :armor 7}} 7 | {:cost 173 :effect {:turns 6 :damage 3}} 8 | {:cost 229 :effect {:turns 5 :mana 101}}]) 9 | 10 | (defn valid-spells [{:keys [mana effects]}] 11 | (filter 12 | (fn [{:keys [cost effect] :as spell}] 13 | (and (<= cost mana) 14 | (let [active-effect (first (filter #(= (dissoc % :turns) (dissoc effect :turns)) effects))] 15 | (or (not active-effect) (= (:turns active-effect) 1))))) 16 | spell-book)) 17 | 18 | (deftest test-valid-spells 19 | (is (= 0 (count (valid-spells {:mana 0 :effects []})))) 20 | (is (= 1 (count (valid-spells {:mana 53 :effects []})))) 21 | (is (= 5 (count (valid-spells {:mana 229 :effects []})))) 22 | (is (= 4 (count (valid-spells {:mana 500 :effects [{:turns 3 :damage 3}]})))) 23 | (is (= 5 (count (valid-spells {:mana 500 :effects [{:turns 1 :damage 3}]})))) 24 | (is (= 2 (count (valid-spells {:mana 500 :effects [{:turns 6 :armor 7} {:turns 6 :damage 3} {:turns 5 :mana 101}]}))))) 25 | 26 | (defn apply-effects [{:keys [effects] :as state}] 27 | (let [{:keys [damage armor mana] :or {damage 0 armor 0 mana 0}} (apply merge effects)] 28 | (-> state 29 | (update :boss-hp - damage) 30 | (update :mana + mana) 31 | (assoc :armor armor) 32 | (assoc :effects 33 | (->> effects 34 | (map (fn [m] (update m :turns dec))) 35 | (filter (fn [m] (> (:turns m) 0)))))))) 36 | 37 | (defn apply-hard-mode [{:keys [hard] :as state}] 38 | (if hard (update state :me-hp dec) 39 | state)) 40 | 41 | (defn turn [battle-state] 42 | (let [{:keys [attacker effects boss-damage] :as state} (-> battle-state 43 | apply-effects 44 | apply-hard-mode) 45 | all-valid-spells (valid-spells state)] 46 | (if (empty? all-valid-spells) 47 | (assoc state :no-more-spells true) 48 | (let [{:keys [cost effect] :as spell} (if (= attacker :me) (rand-nth all-valid-spells) {:cost 0})] 49 | (-> state 50 | (update :me-hp + (or (:heals spell) 0)) 51 | (update :me-hp #(if (= attacker :boss) (- % (- boss-damage (:armor state))) %)) 52 | (update :boss-hp #(if (= attacker :me) (- % (or (:damage spell) 0)) %)) 53 | (update :spent + cost) 54 | (update :mana - cost) 55 | (assoc :effects (if effect (conj effects effect) effects)) 56 | (assoc :attacker (if (= attacker :me) :boss :me))))))) 57 | 58 | (defn game-over [{:keys [no-more-spells boss-hp me-hp] :as state}] 59 | (or no-more-spells (<= boss-hp 0) (<= me-hp 0))) 60 | 61 | (defn run [] 62 | (let [boss {:hit-points 58 :damage 9}] 63 | (loop [n 100000, best Integer/MAX_VALUE] 64 | (if (= n 0) 65 | best 66 | (let [result 67 | (-> (drop-while 68 | #(not (game-over %)) 69 | (iterate 70 | turn 71 | {:attacker :me 72 | :boss-hp (:hit-points boss) 73 | :boss-damage (:damage boss) 74 | :me-hp 50 75 | :mana 500 76 | :spent 0 77 | :armor 0 78 | :effects [] 79 | :hard true})) 80 | first) 81 | i-won (<= (:boss-hp result) 0) 82 | spent (:spent result)] 83 | (when (and i-won (< spent best)) 84 | (println "new best!" spent "beats" best result)) 85 | (recur (dec n) (if i-won (min spent best) best))))))) 86 | 87 | (run) 88 | -------------------------------------------------------------------------------- /src/advent_of_code_2015/day23.clj: -------------------------------------------------------------------------------- 1 | (ns advent-of-code-2015.day23 2 | (:require [clojure.java.io :as io] 3 | [clojure.string :as str])) 4 | 5 | (defn run [] 6 | (let [resource (slurp (io/resource "day23.txt")) 7 | instructions (vec (str/split-lines resource))] 8 | 9 | (loop [state {"a" (bigint 1) "b" (bigint 0)}, offset 0] 10 | (let [[state' offset'] 11 | (condp re-matches (nth instructions offset) 12 | #"jmp ([+-]\d+)" 13 | :>> (fn [[_ jump]] [state (+ offset (Integer/parseInt jump))]) 14 | #"jie (\w), ([+-]\d+)" 15 | :>> (fn [[_ r jump]] [state (if (even? (get state r)) 16 | (+ offset (Integer/parseInt jump)) 17 | (inc offset))]) 18 | #"jio (\w), ([+-]\d+)" 19 | :>> (fn [[_ r jump]] [state (if (= 1 (get state r)) 20 | (+ offset (Integer/parseInt jump)) 21 | (inc offset))]) 22 | #"hlf (\w)" 23 | :>> (fn [[_ r]] [(update state r / 2) (inc offset)]) 24 | #"tpl (\w)" 25 | :>> (fn [[_ r]] [(update state r * 3) (inc offset)]) 26 | #"inc (\w)" 27 | :>> (fn [[_ r]] [(update state r inc) (inc offset)]) 28 | )] 29 | (if (< offset' (count instructions)) 30 | (recur state' offset') 31 | state'))))) 32 | 33 | (run) 34 | -------------------------------------------------------------------------------- /src/advent_of_code_2015/day24.clj: -------------------------------------------------------------------------------- 1 | (ns advent-of-code-2015.day24 2 | (:require [clojure.java.io :as io] 3 | [clojure.math.combinatorics :as c] 4 | [clojure.set :as set])) 5 | 6 | (defn quantum-entanglement [packages] 7 | (reduce * packages)) 8 | 9 | (defn find-group [target packages] 10 | (loop [n 1] 11 | (let [g1s (->> n 12 | (c/combinations packages) 13 | (filter #(and (= target (reduce + %)) 14 | ;; optional? 15 | #_(->> (c/partitions (vec (set/difference (set packages) %)) :min 2 :max 2) 16 | (some (fn [ps] (apply = (map (fn [p] (reduce + p)) ps))))))))] 17 | (if (empty? g1s) 18 | (recur (inc n)) 19 | (apply min (map quantum-entanglement g1s)))))) 20 | 21 | (defn run [] 22 | (let [resource (slurp (io/resource "day24.txt")) 23 | packages (mapv #(Long/parseLong %) (re-seq #"\d+" resource)) 24 | splits 4 25 | target (/ (reduce + packages) splits)] 26 | 27 | (find-group target packages))) 28 | -------------------------------------------------------------------------------- /src/advent_of_code_2015/day25.clj: -------------------------------------------------------------------------------- 1 | (ns advent-of-code-2015.day25) 2 | 3 | (defn sequence [[row column] value] 4 | (let [[next-row next-column] [(if (= row 1) (inc column) (dec row)) 5 | (if (= row 1) 1 (inc column))] 6 | next-value (mod (* value 252533) 33554393) 7 | output [[next-row next-column] next-value]] 8 | (lazy-seq (cons output (apply sequence output))))) 9 | 10 | (defn run [] 11 | (let [row 3010, column 3019, start (long 20151125)] 12 | (some (fn [[[r c] v]] (when (and (= r row) (= c column)) v)) (sequence [1 1] start)))) 13 | -------------------------------------------------------------------------------- /src/advent_of_code_2015/day3.clj: -------------------------------------------------------------------------------- 1 | (ns advent-of-code-2015.day3 2 | (:require [clojure.java.io :as io])) 3 | 4 | (defn move [[x y] c] 5 | (case c 6 | \^ [x (+ y 1)] 7 | \v [x (- y 1)] 8 | \> [(+ x 1) y] 9 | \< [(- x 1) y] 10 | [x y])) 11 | 12 | (defn run [] 13 | (let [resource (slurp (io/resource "day3.txt"))] 14 | 15 | ;; part 1 16 | (->> resource 17 | (reductions move [0 0]) 18 | (into #{}) 19 | count) 20 | 21 | ;; part 2 22 | (let [santa (take-nth 2 resource) 23 | robo (take-nth 2 (drop 1 resource)) 24 | points (into #{} (concat 25 | (reductions move [0 0] santa) 26 | (reductions move [0 0] robo)))] 27 | (count points)))) 28 | -------------------------------------------------------------------------------- /src/advent_of_code_2015/day4.clj: -------------------------------------------------------------------------------- 1 | (ns advent-of-code-2015.day4 2 | (:import java.math.BigInteger 3 | java.security.MessageDigest)) 4 | 5 | (defn candidates [key] 6 | (->> (interleave (repeat key) (range)) 7 | (partition 2) 8 | (map #(apply str %)))) 9 | 10 | (defn md5 [s] 11 | (let [digest (MessageDigest/getInstance "MD5") 12 | hash (.digest digest (.getBytes s))] 13 | hash)) 14 | 15 | (defn hex [b] 16 | (apply str (map #(format "%02x" %) b))) 17 | 18 | (defn run [] 19 | (let [key "yzbqklnj"] 20 | (first 21 | (for [candidate (candidates key) 22 | :when (.startsWith (hex (md5 candidate)) "000000")] 23 | candidate)))) 24 | -------------------------------------------------------------------------------- /src/advent_of_code_2015/day5.clj: -------------------------------------------------------------------------------- 1 | (ns advent-of-code-2015.day5 2 | (:require [clojure.java.io :as io] 3 | [clojure.string :as str])) 4 | 5 | (defn not-bad [s] 6 | (not (re-find #"(ab|cd|pq|xy)" s))) 7 | 8 | (defn doubles [s] 9 | (re-find #"([a-z])\1" s)) 10 | 11 | (defn vowels [s] 12 | (>= (count (re-seq #"(?i)[aeiou]" s)) 3)) 13 | 14 | (defn nice [s] 15 | (and (not-bad s) 16 | (doubles s) 17 | (vowels s))) 18 | 19 | (defn pairs-no-overlap [s] 20 | (re-find #"([a-z][a-z]).*\1" s)) 21 | 22 | (defn one-letter-between [s] 23 | (re-find #"([a-z])[a-z]\1" s)) 24 | 25 | (defn nice2 [s] 26 | (and (pairs-no-overlap s) 27 | (one-letter-between s))) 28 | 29 | (defn run [] 30 | (let [resource (slurp (io/resource "day5.txt")) 31 | strings (str/split-lines resource)] 32 | [(->> strings (filter nice) count) 33 | (->> strings (filter nice2) count)])) 34 | -------------------------------------------------------------------------------- /src/advent_of_code_2015/day6.clj: -------------------------------------------------------------------------------- 1 | (ns advent-of-code-2015.day6 2 | (:require [clojure.java.io :as io]) 3 | (:import java.util.BitSet)) 4 | 5 | (def grid-x 1000) 6 | (def grid-y 1000) 7 | (def grid-size (* grid-x grid-y)) 8 | 9 | (defn translate [x y] 10 | (+ (* x grid-x) y)) 11 | 12 | (defn run [] 13 | (let [resource (slurp (io/resource "day6.txt")) 14 | ;; lines (str/split-lines resource) 15 | ops (re-seq #"(turn off|turn on|toggle) (\d+),(\d+) through (\d+),(\d+)" resource) 16 | lights (BitSet. grid-size)] 17 | 18 | ;; part 1 19 | (doseq [[_ op from-x from-y to-x to-y] ops] 20 | (let [op-fn (case op 21 | "toggle" #(.flip lights ^Integer %) 22 | "turn on" #(.set lights ^Integer % true) 23 | "turn off" #(.set lights ^Integer % false))] 24 | (doseq [x (range (Integer/parseInt from-x) (+ 1 (Integer/parseInt to-x))) 25 | y (range (Integer/parseInt from-y) (+ 1 (Integer/parseInt to-y)))] 26 | (op-fn (translate x y))))) 27 | (.cardinality lights) 28 | 29 | ;; part 2 30 | (let [dimmers (int-array grid-size)] 31 | (doseq [[_ op from-x from-y to-x to-y] ops] 32 | (let [turn-knob (fn [by idx] (aset dimmers ^Integer idx ^Integer (max 0 (+ (aget dimmers idx) by)))) 33 | op-fn (case op 34 | "toggle" (partial turn-knob 2) 35 | "turn on" (partial turn-knob 1) 36 | "turn off" (partial turn-knob -1))] 37 | (doseq [x (range (Integer/parseInt from-x) (+ 1 (Integer/parseInt to-x))) 38 | y (range (Integer/parseInt from-y) (+ 1 (Integer/parseInt to-y)))] 39 | (op-fn (translate x y))))) 40 | (reduce + dimmers)))) 41 | -------------------------------------------------------------------------------- /src/advent_of_code_2015/day7.clj: -------------------------------------------------------------------------------- 1 | (ns advent-of-code-2015.day7 2 | (:require [clojure.java.io :as io] 3 | [clojure.string :as str])) 4 | 5 | (def ops 6 | {:and bit-and :or bit-or 7 | :lshift bit-shift-left :rshift bit-shift-right 8 | :not bit-not}) 9 | 10 | (defn make-op [op & args] 11 | {:op op 12 | :args args}) 13 | 14 | (defn make-unary-op [val] 15 | (let [op (if (re-matches #"\d+" val) :constant :var)] 16 | (make-op 17 | op 18 | (if (= op :constant) (Integer/parseInt val) val)))) 19 | 20 | (def eval-op 21 | (memoize (fn [network {:keys [op args] :as opn}] 22 | (condp = op 23 | :constant (first args) 24 | :var (eval-op network (get network (first args))) 25 | (apply (get ops op) (map (partial eval-op network) args)))))) 26 | 27 | (defn run [] 28 | (let [resource (slurp (io/resource "day7.txt")) 29 | instructions (str/split-lines resource) 30 | state (atom {})] 31 | 32 | (doseq [instruction instructions] 33 | (let [[_ expr target] (re-matches #"(.*) -> ([a-z]+)" instruction)] 34 | (swap! state assoc target 35 | (condp re-matches expr 36 | #"(\w+)" :>> (fn [[_ val]] (make-unary-op val)) 37 | #"([a-z]+) (RSHIFT|LSHIFT) (\d+)" 38 | :>> (fn [[_ sym-shift op shift-by]] 39 | (make-op (if (= op "RSHIFT") :rshift :lshift) (make-op :var sym-shift) (make-unary-op shift-by))) 40 | #"(\w+) (AND|OR) (\w+)" 41 | :>> (fn [[_ lhs op rhs]] 42 | (make-op (if (= op "AND") :and :or) (make-unary-op lhs) (make-unary-op rhs))) 43 | #"NOT ([a-z]+)" :>> (fn [[_ sym]] (make-op :not (make-unary-op sym))))))) 44 | 45 | ;; part 1 46 | (eval-op @state {:op :var :args ["a"]}) 47 | 48 | ;; part 2 49 | (swap! state assoc "b" (make-unary-op "46065")) 50 | (eval-op @state {:op :var :args ["a"]}))) 51 | -------------------------------------------------------------------------------- /src/advent_of_code_2015/day8.clj: -------------------------------------------------------------------------------- 1 | (ns advent-of-code-2015.day8 2 | (:require [clojure.java.io :as io] 3 | [clojure.string :as str]) 4 | (:import java.util.regex.Matcher)) 5 | 6 | (defn unescape-string [string] 7 | (-> string 8 | (str/replace #"\\\\" (Matcher/quoteReplacement "\"")) 9 | (str/replace #"\\\"" (Matcher/quoteReplacement "\\")) 10 | (str/replace #"\\x[0-9,a-f]{2}" #(str (char (Integer/parseInt (.substring %1 2) 16)))))) 11 | 12 | (defn escape-string [string] 13 | (str "\"" 14 | (-> string 15 | (str/replace "\\" "\\\\") 16 | (str/replace "\"" "\\\"")) 17 | "\"")) 18 | 19 | (defn count-string [[l r] string] 20 | [(+ l (count string)) 21 | (+ r (- (count (unescape-string string)) 2))]) 22 | 23 | (defn count-string-2 [[l r] string] 24 | [(+ l (count (escape-string string))) 25 | (+ r (count string))]) 26 | 27 | (defn run [] 28 | (let [resource (slurp (io/resource "day8.txt")) 29 | strings (str/split-lines resource) 30 | counts (reduce count-string [0 0] strings) 31 | counts-2 (reduce count-string-2 [0 0] strings)] 32 | ;; part 1 33 | (apply - counts) 34 | ;; part 2 35 | (apply - counts-2))) 36 | -------------------------------------------------------------------------------- /src/advent_of_code_2015/day9.clj: -------------------------------------------------------------------------------- 1 | (ns advent-of-code-2015.day9 2 | (:require [clojure.java.io :as io] 3 | [clojure.string :as str] 4 | [clojure.math.combinatorics :refer [permutations]])) 5 | 6 | (defn compute-distance [distance-map locations] 7 | (let [distances 8 | (for [pair (partition 2 1 locations)] 9 | (get distance-map (set pair)))] 10 | (reduce + distances))) 11 | 12 | (defn run [] 13 | (let [resource (slurp (io/resource "day9.txt")) 14 | matches (re-seq #"(\w+) to (\w+) = (\d+)" resource) 15 | distances (into {} (for [[_ from to distance] matches] 16 | [#{from to} (Integer/parseInt distance)])) 17 | locations (set (mapcat (juxt first second) (keys distances)))] 18 | 19 | (->> (permutations locations) 20 | (map (partial compute-distance distances)) 21 | (apply max)))) 22 | --------------------------------------------------------------------------------