days 11-16
This commit is contained in:
16 files changed
+2313
No files matched your search
@@ -0,0 +1 @@
|
|||||||
|
ne,se,se,s,nw,s,ne,sw,s,nw,sw,sw,sw,sw,sw,s,sw,nw,nw,nw,nw,ne,nw,nw,n,n,n,nw,nw,nw,n,n,s,nw,sw,se,n,n,ne,n,n,n,sw,n,ne,n,nw,n,sw,n,se,n,ne,ne,sw,n,n,ne,ne,ne,ne,s,se,ne,ne,ne,n,ne,ne,ne,sw,ne,ne,sw,se,se,ne,sw,nw,se,s,nw,se,nw,se,se,se,se,se,ne,se,se,n,n,se,se,sw,se,se,se,se,se,se,se,se,se,ne,se,ne,se,se,s,se,se,se,se,se,s,se,ne,s,se,s,se,ne,s,se,s,s,s,se,se,s,s,nw,s,s,s,se,s,s,s,s,nw,nw,s,s,nw,s,s,nw,s,s,s,s,s,s,s,nw,s,sw,s,s,sw,s,s,s,s,s,ne,nw,s,s,n,s,sw,s,n,sw,sw,sw,sw,s,sw,sw,sw,sw,sw,sw,s,s,se,se,sw,sw,nw,s,s,s,s,sw,sw,sw,ne,s,sw,s,sw,sw,sw,sw,sw,sw,sw,sw,sw,sw,nw,sw,sw,sw,se,se,sw,sw,sw,sw,sw,sw,sw,nw,nw,sw,sw,nw,nw,s,sw,sw,sw,sw,se,sw,s,nw,se,sw,nw,sw,sw,sw,sw,sw,sw,nw,nw,sw,sw,sw,sw,sw,n,n,nw,sw,sw,nw,se,sw,nw,sw,ne,sw,nw,n,n,nw,sw,nw,nw,nw,nw,nw,sw,n,nw,nw,sw,nw,n,nw,sw,nw,s,sw,sw,sw,nw,nw,sw,nw,nw,nw,sw,sw,nw,nw,nw,nw,nw,nw,sw,nw,nw,nw,nw,ne,nw,ne,nw,nw,sw,nw,nw,se,nw,nw,se,nw,nw,nw,sw,n,n,nw,n,nw,nw,sw,nw,n,nw,s,nw,nw,ne,nw,nw,nw,nw,nw,n,nw,n,nw,nw,nw,se,nw,nw,n,se,n,ne,nw,nw,nw,nw,nw,nw,n,nw,nw,nw,n,nw,ne,n,nw,se,n,nw,se,nw,n,n,s,nw,n,n,n,ne,sw,n,se,nw,nw,nw,nw,nw,n,n,nw,n,nw,nw,nw,n,n,nw,s,nw,nw,nw,nw,n,n,sw,n,n,nw,nw,se,nw,ne,nw,n,nw,se,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,nw,s,s,ne,nw,nw,ne,sw,nw,se,n,se,ne,ne,nw,nw,n,nw,s,n,se,n,n,n,n,n,n,n,n,n,n,n,n,nw,n,n,n,n,nw,n,se,n,n,sw,n,n,ne,s,n,n,n,n,n,n,n,n,n,s,n,nw,n,n,ne,s,n,ne,se,n,n,ne,ne,n,s,s,n,n,nw,n,n,s,ne,n,n,n,ne,ne,n,se,n,n,n,n,sw,n,sw,n,se,s,nw,n,n,n,ne,n,ne,n,ne,se,s,se,ne,n,n,n,ne,ne,ne,ne,ne,ne,n,ne,n,n,ne,n,n,se,ne,n,n,n,n,se,ne,n,n,n,se,s,ne,ne,ne,ne,ne,ne,ne,sw,sw,ne,ne,ne,nw,n,ne,n,ne,ne,ne,n,ne,ne,sw,ne,n,se,ne,nw,ne,n,s,ne,ne,ne,ne,n,ne,ne,ne,ne,ne,ne,sw,s,n,ne,n,ne,ne,ne,n,nw,sw,ne,ne,ne,ne,ne,ne,se,ne,n,s,ne,sw,nw,ne,n,ne,n,n,ne,n,ne,ne,ne,s,ne,ne,ne,ne,ne,ne,se,ne,ne,ne,ne,ne,ne,s,ne,se,n,ne,sw,ne,n,ne,ne,ne,ne,ne,ne,s,ne,ne,ne,ne,se,ne,s,ne,ne,ne,ne,s,ne,ne,s,ne,ne,ne,ne,ne,ne,ne,se,se,se,ne,ne,n,ne,ne,ne,s,n,ne,s,ne,se,ne,ne,ne,ne,ne,s,sw,ne,s,ne,se,se,ne,nw,ne,se,se,se,ne,nw,sw,ne,ne,ne,ne,ne,ne,ne,ne,ne,s,se,ne,ne,se,s,se,ne,se,ne,nw,s,se,ne,ne,se,se,se,s,ne,se,ne,sw,se,ne,se,se,ne,ne,ne,se,se,ne,se,nw,s,ne,ne,n,ne,ne,se,ne,ne,se,ne,ne,se,ne,ne,ne,se,ne,nw,ne,ne,sw,se,se,sw,se,ne,ne,se,nw,sw,ne,s,ne,ne,se,ne,ne,s,se,ne,ne,ne,n,sw,n,se,ne,ne,ne,se,n,ne,sw,ne,sw,se,se,ne,ne,se,ne,ne,se,se,se,se,nw,nw,se,se,ne,se,sw,ne,s,ne,ne,se,se,se,sw,sw,se,ne,ne,nw,n,ne,se,ne,ne,se,se,se,ne,ne,sw,se,ne,se,ne,se,se,se,se,ne,se,se,se,ne,se,se,sw,se,se,se,se,se,ne,se,se,se,se,se,ne,se,se,se,se,se,ne,ne,sw,se,se,ne,ne,ne,nw,se,se,nw,se,se,se,sw,se,se,se,sw,ne,se,se,sw,se,s,se,se,se,se,se,se,s,se,se,s,s,se,se,se,se,se,se,se,sw,se,se,se,se,se,se,ne,n,se,se,n,se,se,se,sw,s,ne,s,se,se,se,se,se,se,se,se,sw,ne,se,se,s,se,se,se,se,s,n,se,se,nw,se,ne,se,se,nw,se,se,se,se,n,se,se,se,se,se,se,se,se,n,se,se,se,se,n,se,s,se,n,s,se,s,s,sw,se,s,se,n,se,sw,s,se,sw,se,se,se,se,se,se,se,se,se,se,se,se,se,se,se,sw,n,sw,se,se,se,s,se,nw,se,s,s,s,se,s,se,se,sw,sw,se,se,ne,se,s,se,s,se,ne,s,s,se,s,nw,se,se,s,sw,s,se,s,s,se,s,s,sw,nw,se,se,se,sw,s,nw,se,n,se,s,s,s,se,se,se,se,ne,ne,s,s,se,se,sw,s,s,se,se,nw,s,nw,s,se,s,s,s,se,se,s,s,s,nw,n,sw,se,se,s,se,se,se,se,se,s,s,se,se,s,s,s,s,se,sw,se,ne,nw,sw,ne,s,s,s,se,n,nw,se,se,se,s,se,ne,sw,s,s,se,s,s,s,nw,nw,s,s,se,s,s,se,s,s,s,sw,s,se,se,ne,s,se,s,nw,s,se,s,se,se,s,s,nw,n,se,n,se,s,s,se,se,se,s,se,s,s,sw,s,s,nw,se,sw,s,sw,s,s,s,se,se,n,s,se,s,ne,s,s,se,s,se,se,s,nw,s,s,s,n,se,sw,s,s,se,ne,s,s,s,n,s,s,s,s,nw,s,s,s,n,s,se,s,s,s,se,s,s,s,s,s,n,s,s,se,se,s,ne,se,se,s,s,ne,s,s,s,se,se,se,nw,s,s,se,s,se,s,s,s,s,s,s,se,s,s,s,s,s,n,s,s,ne,n,s,s,s,s,n,n,ne,se,s,sw,s,s,s,s,s,s,s,ne,s,s,se,s,se,se,s,s,s,s,s,ne,s,s,sw,s,se,nw,s,s,sw,s,s,s,sw,s,s,s,s,s,se,nw,s,s,s,s,s,sw,s,s,s,s,sw,s,nw,ne,se,s,ne,s,s,s,nw,s,s,s,s,se,s,s,sw,s,s,s,s,s,s,s,se,s,sw,ne,s,s,s,s,sw,sw,sw,s,nw,s,ne,s,s,s,n,sw,sw,s,sw,sw,s,se,s,s,se,s,s,s,s,sw,s,s,sw,s,s,s,s,nw,sw,s,s,sw,s,s,se,nw,s,s,s,s,s,nw,s,sw,s,s,n,s,s,s,n,sw,se,s,se,s,se,s,s,sw,sw,n,sw,s,s,se,s,sw,sw,se,s,nw,s,sw,s,s,s,nw,s,s,s,s,sw,nw,sw,s,s,s,s,s,s,s,s,nw,s,sw,sw,sw,s,sw,n,s,sw,n,sw,s,sw,sw,s,s,s,sw,s,s,n,n,s,sw,s,sw,s,s,sw,nw,s,se,s,s,s,n,s,s,se,sw,s,s,sw,s,s,sw,s,sw,sw,s,s,s,sw,s,s,s,s,s,sw,sw,sw,se,n,s,sw,sw,sw,s,n,se,s,s,sw,s,s,sw,sw,se,se,sw,sw,sw,s,s,s,sw,s,sw,s,s,sw,sw,sw,se,s,sw,s,sw,sw,sw,se,sw,sw,sw,n,sw,sw,s,s,s,sw,s,sw,sw,s,sw,ne,s,sw,s,s,sw,s,s,n,sw,s,s,sw,se,s,s,n,sw,sw,s,s,s,s,sw,nw,se,sw,sw,sw,s,sw,s,sw,s,sw,s,sw,s,nw,s,s,sw,sw,s,s,sw,nw,ne,sw,sw,sw,sw,ne,s,s,sw,s,sw,sw,s,sw,sw,s,sw,sw,sw,sw,s,sw,ne,sw,sw,s,nw,sw,s,s,s,s,sw,sw,se,ne,nw,sw,sw,sw,s,s,se,s,s,sw,s,sw,sw,s,n,ne,sw,sw,s,sw,s,sw,s,sw,s,sw,sw,sw,sw,s,sw,s,sw,sw,s,nw,s,nw,s,sw,sw,sw,sw,s,sw,sw,s,sw,sw,s,se,s,sw,sw,sw,sw,sw,sw,sw,s,sw,sw,sw,se,s,s,sw,sw,s,s,sw,sw,sw,s,sw,s,sw,sw,s,sw,sw,ne,sw,s,sw,s,sw,sw,sw,sw,s,sw,se,sw,sw,sw,sw,sw,sw,sw,sw,sw,sw,nw,sw,sw,s,sw,sw,sw,nw,sw,sw,sw,se,n,sw,sw,s,s,sw,sw,sw,s,sw,sw,sw,nw,sw,sw,nw,sw,sw,sw,sw,s,n,sw,s,sw,sw,sw,s,sw,se,sw,sw,sw,ne,sw,sw,sw,s,sw,sw,sw,n,sw,sw,s,sw,sw,s,sw,sw,s,se,sLine truncated
|
||||||
@@ -0,0 +1,30 @@
|
|||||||
|
var input = require("fs").readFileSync("input.txt").toString().replace("\n", "");
|
||||||
|
var dirs = input.split(",");
|
||||||
|
|
||||||
|
var replacements = [
|
||||||
|
[["n", "s"], ""],
|
||||||
|
[["ne", "sw"], ""],
|
||||||
|
[["nw", "se"], ""],
|
||||||
|
[["ne", "nw"], "n"],
|
||||||
|
[["se", "sw"], "s"],
|
||||||
|
[["ne", "s"], "se"],
|
||||||
|
[["se", "n"], "ne"],
|
||||||
|
[["sw", "n"], "nw"],
|
||||||
|
[["nw", "s"], "sw"],
|
||||||
|
];
|
||||||
|
|
||||||
|
var oldlength = 0;
|
||||||
|
while(dirs.length != oldlength){
|
||||||
|
oldlength = dirs.length;
|
||||||
|
for(var replacement of replacements){
|
||||||
|
if(dirs.indexOf(replacement[0][0]) > -1 && dirs.indexOf(replacement[0][1]) > -1){
|
||||||
|
dirs.splice(dirs.indexOf(replacement[0][0]), 1);
|
||||||
|
dirs.splice(dirs.indexOf(replacement[0][1]), 1);
|
||||||
|
if(replacement[1]){
|
||||||
|
dirs.push(replacement[1]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
console.log(dirs.length);
|
||||||
@@ -0,0 +1,41 @@
|
|||||||
|
var input = require("fs").readFileSync("input.txt").toString().replace("\n", "");
|
||||||
|
var dirs = input.split(",");
|
||||||
|
function simplify(dirs){
|
||||||
|
var replacements = [
|
||||||
|
[["n", "s"], ""],
|
||||||
|
[["ne", "sw"], ""],
|
||||||
|
[["nw", "se"], ""],
|
||||||
|
[["ne", "nw"], "n"],
|
||||||
|
[["se", "sw"], "s"],
|
||||||
|
[["ne", "s"], "se"],
|
||||||
|
[["se", "n"], "ne"],
|
||||||
|
[["sw", "n"], "nw"],
|
||||||
|
[["nw", "s"], "sw"],
|
||||||
|
];
|
||||||
|
var oldlength = 0;
|
||||||
|
while(dirs.length != oldlength){
|
||||||
|
oldlength = dirs.length;
|
||||||
|
for(var replacement of replacements){
|
||||||
|
if(dirs.indexOf(replacement[0][0]) > -1 && dirs.indexOf(replacement[0][1]) > -1){
|
||||||
|
dirs.splice(dirs.indexOf(replacement[0][0]), 1);
|
||||||
|
dirs.splice(dirs.indexOf(replacement[0][1]), 1);
|
||||||
|
if(replacement[1]){
|
||||||
|
dirs.push(replacement[1]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return dirs;
|
||||||
|
}
|
||||||
|
|
||||||
|
var maxlen = 0;
|
||||||
|
|
||||||
|
for(var i = 0; i < dirs.length; i++){
|
||||||
|
var sub = dirs.slice(0, i);
|
||||||
|
var len = simplify(sub).length;
|
||||||
|
if(len > maxlen){
|
||||||
|
maxlen = len;
|
||||||
|
}
|
||||||
|
console.log(i/dirs.length);
|
||||||
|
}
|
||||||
|
console.log(maxlen);
|
||||||
+2000
File diff suppressed because it is too large.
Load diff
@@ -0,0 +1,11 @@
|
|||||||
|
var input = require("fs").readFileSync("input.txt").toString();
|
||||||
|
var links = input.split("\n").filter((a)=>(a)).map((a)=>(a.split(" <-> ")[1].split(", ").map((b)=>(parseInt(b)))));
|
||||||
|
var attached = [];
|
||||||
|
function add(x){
|
||||||
|
if(attached.indexOf(x) == -1){
|
||||||
|
attached.push(x);
|
||||||
|
links[x].forEach((a)=>(add(a)));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
add(0);
|
||||||
|
console.log(attached.length);
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
var input = require("fs").readFileSync("input.txt").toString();
|
||||||
|
var links = input.split("\n").filter((a)=>(a)).map((a)=>(a.split(" <-> ")[1].split(", ").map((b)=>(parseInt(b)))));
|
||||||
|
var allvisited = [];
|
||||||
|
function getconnected(x, items){
|
||||||
|
if(items.indexOf(x) == -1){
|
||||||
|
items.push(x);
|
||||||
|
links[x].forEach((a)=>(getconnected(a, items)));
|
||||||
|
}
|
||||||
|
return items;
|
||||||
|
}
|
||||||
|
var i = 0;
|
||||||
|
while(allvisited.length != Object.keys(links).length){
|
||||||
|
var start = Object.keys(links).map((a)=>(parseInt(a))).filter((a)=>(allvisited.indexOf(a) == -1))[0];
|
||||||
|
console.log(i, start);
|
||||||
|
var newgroup = getconnected(start, []);
|
||||||
|
allvisited = allvisited.concat(newgroup);
|
||||||
|
i++
|
||||||
|
}
|
||||||
|
console.log(i);
|
||||||
@@ -0,0 +1,43 @@
|
|||||||
|
0: 4
|
||||||
|
1: 2
|
||||||
|
2: 3
|
||||||
|
4: 5
|
||||||
|
6: 6
|
||||||
|
8: 4
|
||||||
|
10: 8
|
||||||
|
12: 6
|
||||||
|
14: 6
|
||||||
|
16: 8
|
||||||
|
18: 8
|
||||||
|
20: 6
|
||||||
|
22: 8
|
||||||
|
24: 9
|
||||||
|
26: 8
|
||||||
|
28: 8
|
||||||
|
30: 12
|
||||||
|
32: 12
|
||||||
|
34: 10
|
||||||
|
36: 12
|
||||||
|
38: 12
|
||||||
|
40: 10
|
||||||
|
42: 12
|
||||||
|
44: 12
|
||||||
|
46: 12
|
||||||
|
48: 12
|
||||||
|
50: 12
|
||||||
|
52: 14
|
||||||
|
54: 14
|
||||||
|
56: 12
|
||||||
|
58: 14
|
||||||
|
60: 14
|
||||||
|
62: 14
|
||||||
|
64: 17
|
||||||
|
66: 14
|
||||||
|
70: 14
|
||||||
|
72: 14
|
||||||
|
74: 14
|
||||||
|
76: 14
|
||||||
|
78: 18
|
||||||
|
82: 14
|
||||||
|
88: 18
|
||||||
|
90: 14
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
var input = require("fs").readFileSync("input.txt").toString();
|
||||||
|
var depths = input.split("\n").filter((a)=>(a)).map((a)=>(a.split(": ").map((b)=>(parseInt(b))))).reduce((dep, a)=>{dep[a[0]] = a[1]; return dep;}, []);
|
||||||
|
var severity = depths.map((a, i)=>(a*i)).filter((a, i)=>((i % (a/i*2 - 2)) == 0)).reduce((a, b)=>(a+b));
|
||||||
|
console.log(severity);
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
var input = require("fs").readFileSync("input.txt").toString();
|
||||||
|
var depths = input.split("\n").filter((a)=>(a)).map((a)=>(a.split(": ").map((b)=>(parseInt(b))))).reduce((dep, a)=>{dep[a[0]] = a[1]; return dep;}, []);
|
||||||
|
var caught = (del)=>(depths.filter((a, i)=>(((i+del) % (a*2 - 2)) == 0)).length > 0);
|
||||||
|
for(var i = 0; i < 10000000; i++){
|
||||||
|
if(caught(i) == false){
|
||||||
|
console.log(i);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,32 @@
|
|||||||
|
function hash(input){
|
||||||
|
var list = [];
|
||||||
|
for(var i = 0; i < 256; i++){
|
||||||
|
list.push(i);
|
||||||
|
}
|
||||||
|
var pos = 0;
|
||||||
|
var lengths = input.split("").filter((a)=>(a)).map((a)=>(a.charCodeAt(0))).concat([17, 31, 73, 47, 23]);
|
||||||
|
var skip = 0;
|
||||||
|
for(var x = 0; x < 64; x++){
|
||||||
|
for(var length of lengths){
|
||||||
|
for(var i = 0; i < (length/2); i++){
|
||||||
|
var a = list[(pos+i)%list.length];
|
||||||
|
var b = list[(pos+length-1-i)%list.length];
|
||||||
|
list[(pos+i)%list.length] = b;
|
||||||
|
list[(pos+length-1-i)%list.length] = a;
|
||||||
|
}
|
||||||
|
pos += length + skip;
|
||||||
|
pos = pos % list.length;
|
||||||
|
skip += 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
var hash = list.reduce((arr, a, i)=>{arr[Math.floor(i/16)] = arr[Math.floor(i/16)] ^ a; return arr;}, []);
|
||||||
|
return hash.map((a)=>(a.toString(2).split("").map((b)=>(parseInt(b))).reduce((a,b)=>(a+b)))).reduce((a, b)=>(a+b));
|
||||||
|
}
|
||||||
|
|
||||||
|
var total = 0;
|
||||||
|
for(var i = 0; i < 128; i++){
|
||||||
|
total += hash("xlqgujun-" + i);
|
||||||
|
}
|
||||||
|
|
||||||
|
console.log(total);
|
||||||
@@ -0,0 +1,61 @@
|
|||||||
|
function hash(input){
|
||||||
|
var list = [];
|
||||||
|
for(var i = 0; i < 256; i++){
|
||||||
|
list.push(i);
|
||||||
|
}
|
||||||
|
var pos = 0;
|
||||||
|
var lengths = input.split("").filter((a)=>(a)).map((a)=>(a.charCodeAt(0))).concat([17, 31, 73, 47, 23]);
|
||||||
|
var skip = 0;
|
||||||
|
for(var x = 0; x < 64; x++){
|
||||||
|
for(var length of lengths){
|
||||||
|
for(var i = 0; i < (length/2); i++){
|
||||||
|
var a = list[(pos+i)%list.length];
|
||||||
|
var b = list[(pos+length-1-i)%list.length];
|
||||||
|
list[(pos+i)%list.length] = b;
|
||||||
|
list[(pos+length-1-i)%list.length] = a;
|
||||||
|
}
|
||||||
|
pos += length + skip;
|
||||||
|
pos = pos % list.length;
|
||||||
|
skip += 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
var hash = list.reduce((arr, a, i)=>{arr[Math.floor(i/16)] = arr[Math.floor(i/16)] ^ a; return arr;}, []);
|
||||||
|
return hash.map((a)=>(("00000000" + a.toString(2)).slice(-8).split("").map((b)=>(parseInt(b))))).reduce((a, b)=>(a.concat(b)));
|
||||||
|
}
|
||||||
|
|
||||||
|
var grid = [];
|
||||||
|
for(var i = 0; i < 128; i++){
|
||||||
|
grid.push(hash("xlqgujun-" + i));
|
||||||
|
}
|
||||||
|
|
||||||
|
var seen = [];
|
||||||
|
function calc(x, y){
|
||||||
|
return (x + (128 * y));
|
||||||
|
}
|
||||||
|
function scanNeighbours(x, y){
|
||||||
|
if(grid[x]){
|
||||||
|
if(grid[x][y]){
|
||||||
|
if(seen.indexOf(calc(x,y)) == -1){
|
||||||
|
seen.push(calc(x,y));
|
||||||
|
scanNeighbours(x+1,y);
|
||||||
|
scanNeighbours(x-1,y);
|
||||||
|
scanNeighbours(x,y+1);
|
||||||
|
scanNeighbours(x,y-1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
var total = 0;
|
||||||
|
for(var x = 0; x < 128; x++){
|
||||||
|
for(var y = 0; y < 128; y++){
|
||||||
|
if(grid[x][y]){
|
||||||
|
if(seen.indexOf(calc(x,y)) == -1){
|
||||||
|
total++;
|
||||||
|
scanNeighbours(x,y);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
console.log(total);
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
var a = 591;
|
||||||
|
var b = 393;
|
||||||
|
var total = 0;
|
||||||
|
for(var i = 0; i <= 40000000; i++){
|
||||||
|
a = (a*16807)%2147483647;
|
||||||
|
b = (b*48271)%2147483647;
|
||||||
|
if(a.toString(2).slice(-16) == b.toString(2).slice(-16)){
|
||||||
|
total++;
|
||||||
|
console.log(i);
|
||||||
|
console.log(a, b);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
console.log(total);
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
var a = 591;
|
||||||
|
var b = 393;
|
||||||
|
var total = 0;
|
||||||
|
for(var i = 0; i <= 5000000; i++){
|
||||||
|
do{
|
||||||
|
a = (a*16807)%2147483647;
|
||||||
|
}
|
||||||
|
while(a%4 != 0)
|
||||||
|
do{
|
||||||
|
b = (b*48271)%2147483647;
|
||||||
|
}
|
||||||
|
while(b%8 != 0)
|
||||||
|
if(a.toString(2).slice(-16) == b.toString(2).slice(-16)){
|
||||||
|
total++;
|
||||||
|
console.log(i);
|
||||||
|
console.log(a, b);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
console.log(total);
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
x3/11,s10,x0/10,s10,x9/2,pi/m,x6/0,pa/l,x11/5,pe/g,x2/4,s10,x6/9,s6,pc/o,x15/7,s7,x12/0,pb/l,x8/2,s8,x13/1,s14,x7/10,s5,x8/3,s3,x10/11,pi/m,x14/3,pj/k,x11/2,s6,pc/e,s9,x4/6,pd/h,x9/11,s3,pa/e,x6/7,pi/o,s12,x14/3,s5,x15/11,s7,pb/m,x12/5,s1,x15/10,s14,x14/1,pn/o,x10/4,s2,x8/1,ph/e,x4/14,pb/g,x13/6,pc/p,x8/12,pi/m,x11/7,s5,x6/13,po/l,x0/7,pg/a,s10,x15/10,s14,x6/11,s14,x14/0,s10,x4/1,pe/m,x11/10,pc/f,x8/13,s2,x1/10,s1,x13/15,pg/o,x9/1,pn/b,s10,x3/12,s10,x15/9,s15,x3/6,pp/k,x10/1,ph/o,x5/0,s6,x12/14,pn/d,x6/4,s7,x2/3,s8,x12/15,s9,x10/9,s1,x1/5,s7,x9/4,s7,x2/1,pm/o,x10/5,s2,x9/4,s12,x3/8,s3,x6/12,s2,x1/10,s4,x15/7,s3,x12/5,pf/l,x2/13,s5,po/g,x9/8,s3,x1/7,pk/i,x2/11,s7,x1/15,s1,x9/6,s14,x12/14,s14,x0/1,po/l,s14,x3/9,s1,x6/5,s12,x15/10,ph/k,x11/5,s1,x1/2,pn/f,s4,x11/14,pe/k,x10/13,pb/h,x2/11,pm/l,x15/0,s1,x8/2,pa/h,x4/3,pm/o,s11,x10/1,pj/g,x13/12,s4,x0/2,s10,x4/11,s9,x1/15,s1,x8/13,s7,x3/14,pp/k,x10/11,pi/e,x5/15,s2,x13/14,s5,x1/10,s13,x2/5,s5,x3/7,s14,ph/l,s5,x14/2,s4,x11/5,s7,x14/2,s10,x9/13,pm/i,x4/6,s2,x5/1,s4,x15/11,s1,x12/2,pf/g,x1/7,s15,x4/3,s4,x8/11,s1,x3/12,s1,x2/4,s4,x15/14,s12,x3/12,s10,x0/5,s11,pi/j,x4/11,pa/k,x0/5,s11,x15/2,ph/g,x7/4,s8,x0/15,pl/a,s15,x3/6,pk/j,x13/2,s1,pd/h,x8/3,s10,x10/15,s14,x6/14,s2,x2/3,pi/k,x1/14,s9,x11/10,s6,x5/4,s2,x1/13,pp/b,x4/5,pm/n,x14/9,ph/p,x5/10,s12,x14/3,pj/b,x9/6,s14,x4/5,pm/o,x14/13,pi/f,x7/8,s9,x6/4,pm/n,x0/1,s14,po/c,x15/8,pe/a,x4/6,s9,x1/13,s7,x4/5,s9,x11/8,s3,x3/14,s14,x6/2,pj/g,x15/13,s9,x6/1,s2,x0/13,s9,x8/1,s13,x5/15,pn/h,x0/10,pg/b,x13/9,s4,x8/14,pf/n,s1,x11/3,s6,x0/2,s7,x6/11,ph/l,x4/7,s6,x2/3,s12,x9/11,s4,x6/12,pi/g,s10,x1/14,s15,x7/10,s1,x13/12,po/c,x0/10,pk/g,x3/15,s15,x9/1,pe/d,x5/2,s10,x10/1,s5,x13/0,s2,x5/11,s8,x10/2,s6,x3/4,s8,x6/11,ph/f,x0/10,s8,x1/5,s3,pk/m,s12,x6/11,po/c,s11,x9/4,s14,pe/i,x15/10,s6,x7/3,po/j,x5/11,s2,x7/14,pe/a,x6/3,s13,x1/13,pc/n,x7/0,s2,x1/12,s12,x13/11,s11,x9/15,s6,x6/7,pe/o,x14/10,s5,x13/3,s12,x8/4,pa/k,x13/0,pc/f,x11/12,pp/o,x6/1,ph/d,x12/2,s1,x0/6,pp/n,x12/13,s2,x6/9,s5,pi/l,x14/8,s12,x9/13,s5,x3/5,s4,x6/10,s8,x0/13,pe/d,x15/5,s5,x0/11,pg/i,x15/2,s11,x1/13,s4,x12/14,s6,pm/k,s15,x4/1,ph/f,x14/11,s4,x10/1,po/a,x9/13,s15,x10/8,s9,x0/3,s10,x14/15,s2,x11/1,pg/e,x4/5,pa/h,x2/6,pj/c,x9/0,pi/e,x8/5,s8,pa/o,x4/12,s14,x15/10,s12,pm/h,s8,x2/0,s1,x11/12,s14,x2/13,pg/a,x4/15,s12,x6/12,pl/c,x4/2,s5,x6/15,s11,x9/14,s9,pe/o,x2/10,s4,x13/12,s5,ph/d,x9/15,pf/p,x1/10,pi/l,s4,x13/5,pa/e,s9,x12/6,s5,x7/3,pn/g,x11/6,pd/e,x0/1,pn/k,x3/8,s9,x15/12,s14,x7/4,s12,x13/10,pb/a,x12/11,s6,x7/5,pe/p,x10/13,s8,x14/7,s10,x1/9,s15,x6/3,s9,pg/b,x15/7,s11,x9/14,s5,x13/8,po/c,x6/14,pl/k,s5,x9/7,pi/b,x10/4,pf/j,x0/12,s5,x5/4,s7,x9/6,pc/i,x12/2,po/b,x14/0,s9,x13/4,s3,x7/10,pg/i,x6/4,s5,x14/1,s5,x11/15,pc/f,x2/5,s3,x13/0,s11,x15/5,s2,x14/3,s7,x0/9,s9,po/m,x12/15,s5,x8/11,s3,x10/9,s11,x13/0,pi/l,x3/7,pm/k,x6/8,s3,x11/15,pg/c,x7/1,s10,x5/10,pb/l,x7/15,s4,x14/13,s3,x7/5,s15,x0/13,pp/k,x15/1,po/d,s7,x4/0,pb/n,x12/10,pi/a,x3/0,s11,x6/5,pk/o,x9/2,s3,x15/11,pj/b,x13/1,pa/d,x5/4,pn/h,x0/13,pj/d,x5/3,pg/i,s3,x6/9,s1,x1/8,pm/n,x4/3,s1,x7/10,pa/g,x6/12,pb/m,x13/2,s13,x14/7,s14,x2/12,s6,x11/13,s9,x12/0,s11,x13/14,pd/n,s13,x4/15,s9,x8/0,s10,x15/3,s12,pm/h,x6/10,pp/b,x3/9,s5,x14/2,pn/k,x13/3,s5,x0/5,s9,x9/4,s11,x11/3,s13,x8/12,s13,x2/11,pb/o,x8/1,pp/f,x0/7,s6,pl/j,x6/2,pa/b,x8/5,s14,x0/7,pl/j,x11/2,s11,x15/14,s7,x7/6,pe/c,s10,x12/10,pa/h,x2/6,s5,x1/3,s11,x0/13,s15,x1/2,pb/o,x6/3,pk/d,x13/10,s1,x4/1,pe/o,x14/9,ph/l,x15/13,s3,x11/4,s9,x10/8,pn/g,x11/13,s10,x4/1,pk/b,x2/8,pj/n,x7/6,s5,x13/11,s15,x9/14,s1,x3/11,ph/i,x14/13,po/a,x12/8,ph/m,x11/2,s13,x7/10,pe/k,x12/15,s11,x5/8,pc/d,x9/2,s11,x11/12,po/b,x9/0,s2,x2/11,s13,x1/5,s13,x15/3,s7,x11/7,ph/a,x8/5,pg/b,s4,x3/4,s11,x0/13,s8,x15/1,s15,x7/9,s3,x11/12,pi/m,x15/13,pc/p,s12,x8/3,s2,x15/0,pb/n,x5/1,s14,x9/2,s2,x14/11,pi/o,x2/9,s4,x5/3,pj/l,x4/15,s13,x11/7,s12,x5/6,s7,x1/7,s15,x3/14,po/k,x2/6,s12,pa/p,x3/10,s8,x13/6,pn/c,x14/15,s14,x6/12,s10,pk/h,x5/9,s15,x15/11,s6,x12/0,s6,pp/a,x5/14,s1,x13/8,s2,x2/11,pd/j,x7/10,s7,pc/f,x8/4,pn/b,x1/11,pi/p,x0/14,s5,x3/12,s5,x10/2,s10,x4/1,s6,x6/10,s14,x0/11,s13,x14/7,pj/h,x11/0,s7,x2/7,pp/a,x15/9,s10,x0/2,pf/c,x4/7,ph/a,s9,x0/6,s8,x1/5,pl/e,x14/3,s3,x11/15,s6,x2/1,pm/n,x0/3,pd/k,x13/6,pa/j,s5,x2/10,pk/c,x3/14,pb/d,s13,x8/4,pf/e,x9/1,pb/k,x5/11,s11,x3/4,s14,x2/15,pl/e,x10/4,pp/i,x15/12,s4,x10/11,s8,x6/2,s3,x15/3,pe/f,x14/12,s15,x11/0,s6,x14/8,pk/i,x4/9,s6,x8/12,s15,pj/d,x2/11,s11,x9/1,s8,x12/6,s2,x9/2,s1,x3/13,s2,x1/4,s4,pk/c,s4,x3/10,s13,x14/12,pb/p,x10/2,pn/e,x15/12,pl/j,x14/13,s1,x4/7,s4,x6/2,pd/i,x9/14,pk/a,x12/5,pb/p,x3/14,s10,x4/5,pc/n,x14/12,s12,x9/0,pb/e,x15/4,pm/h,s10,x2/7,pl/k,x0/14,pj/h,x4/15,s14,x0/14,s14,x6/4,pf/o,x9/14,s2,x6/8,s13,pg/p,x10/14,s5,x7/11,pl/i,x4/3,pa/o,x12/8,pc/e,s15,x1/10,s7,x11/3,s6,x12/13,pa/g,s6,x6/1,s4,x0/15,s3,x4/7,pd/f,x10/2,pp/o,x14/12,s3,x10/2,s8,x5/8,pg/e,x11/9,s12,x6/0,s2,x12/2,s13,x14/3,s2,x9/0,s11,x4/5,pl/a,x13/9,s15,x3/5,pp/m,x11/10,s8,x9/0,pe/k,x13/2,s6,x15/3,pp/f,x10/1,s13,x7/9,po/h,x4/1,s2,x8/13,pf/e,x4/1,s15,x5/3,s7,x13/14,s12,x1/15,s11,x13/7,s8,x11/4,s3,pn/Line truncated
|
||||||
@@ -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(""));
|
||||||
@@ -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]);
|
||||||
Reference in new issue
Block a user