day 4,5,6

This commit is contained in:
2017-12-06 13:40:43 +00:00
parent 4f1bc11fa1
commit 2f00f67d4f
9 changed files with 1694 additions and 0 deletions

1
day06/input.txt Normal file
View File

@ -0,0 +1 @@
11 11 13 7 0 15 5 5 4 4 1 1 7 1 15 11

29
day06/part1.js Normal file
View File

@ -0,0 +1,29 @@
function redistribute(arr){
var max = Math.max.apply(null, arr);
var maxPos = arr.indexOf(max);
var toAdd = Math.floor(max / (arr.length-1));
var left = max % (arr.length-1);
if(toAdd == 0){
left = 0;
for(var i = 1; i <= max; i++){
arr[(i + maxPos)%(arr.length)] += 1;
}
arr[maxPos] = 0;
}
else{
arr = arr.map((a)=>(a+toAdd));
arr[maxPos] = left;
}
return arr;
}
var states = [];
var state = require("fs").readFileSync("input.txt").toString().split("\t").map((a)=>(parseInt(a)));
var i = 0;
while(states.indexOf(state.join(",")) == -1){
console.log(state, i);
states.push(state.join(","));
i++;
state = redistribute(state);
}
console.log(state,i);

29
day06/part2.js Normal file
View File

@ -0,0 +1,29 @@
function redistribute(arr){
var max = Math.max.apply(null, arr);
var maxPos = arr.indexOf(max);
var toAdd = Math.floor(max / (arr.length-1));
var left = max % (arr.length-1);
if(toAdd == 0){
left = 0;
for(var i = 1; i <= max; i++){
arr[(i + maxPos)%(arr.length)] += 1;
}
arr[maxPos] = 0;
}
else{
arr = arr.map((a)=>(a+toAdd));
arr[maxPos] = left;
}
return arr;
}
var states = [];
var state = require("fs").readFileSync("input.txt").toString().split("\t").map((a)=>(parseInt(a)));
var i = 0;
while(states.indexOf(state.join(",")) == -1){
console.log(state, i);
states.push(state.join(","));
i++;
state = redistribute(state);
}
console.log(i - states.indexOf(state.join(",")));