days 11-16

This commit is contained in:
2017-12-16 12:12:56 +00:00
parent 492bdb29fd
commit d5fbba3277
16 changed files with 2313 additions and 0 deletions

1
day16/input.txt Normal file

File diff suppressed because one or more lines are too long

11
day16/part1.js Normal file
View File

@ -0,0 +1,11 @@
var items = "abcdefghijklmnop".split("");
s = (i) => {items = items.splice(-i).concat(items);}
x = (a,b) => {[items[a], items[b]] = [items[b], items[a]]}
p = (a,b) => {x(items.indexOf(a), items.indexOf(b))}
var input = require("fs").readFileSync("input.txt").toString().replace("\n", "");
var input = "," + input + ",";
var expr = input.replace(/,/g, ");").replace(/;([sxp])/g, ";$1(").replace(/([a-z])\/([a-z])/g, "'$1'/'$2'").replace(/\//g, ",");
expr = expr.substring(2);
eval(expr);
console.log(items.join(""));

19
day16/part2.js Normal file
View File

@ -0,0 +1,19 @@
var items = "abcdefghijklmnop".split("");
s = (i) => {items = items.splice(-i).concat(items);}
x = (a,b) => {[items[a], items[b]] = [items[b], items[a]]}
p = (a,b) => {x(items.indexOf(a), items.indexOf(b))}
var input = require("fs").readFileSync("input.txt").toString().replace("\n", "");
var input = "," + input + ",";
var expr = input.replace(/,/g, ");").replace(/;([sxp])/g, ";$1(").replace(/([a-z])\/([a-z])/g, "'$1'/'$2'").replace(/\//g, ",");
expr = expr.substring(2);
var state = "";
var states = [];
while(states.indexOf(state) == -1){
states.push(state);
eval(expr);
state = items.join("");
}
states = states.filter((a)=>(a));
var num = 1000000000;
console.log(states[(num-1)%states.length]);