initial commit (previous days; code already done)

This commit is contained in:
Baipyrus 2023-12-08 09:08:25 +01:00
commit 5edbcae3fb
13 changed files with 1902 additions and 0 deletions

20
Day1/Part1.js Normal file
View File

@ -0,0 +1,20 @@
import { readFileSync } from "fs";
const t0 = performance.now();
const lines = readFileSync("input.txt")
.toString()
.split("\n")
.filter((e) => e.length > 0);
const numbers = lines.map((a) =>
a
.split("")
.filter((b) => parseInt(b))
.join("")
);
const combinations = numbers.map((e) => parseInt(e[0] + e[e.length - 1]));
const sum = combinations.reduce((a, i) => a + i);
console.log(combinations);
console.log(sum);
const t1 = performance.now();
console.log(`Runtime: ${t1 - t0}ms`);

48
Day1/Part2.js Normal file
View File

@ -0,0 +1,48 @@
import { readFileSync } from "fs";
const t0 = performance.now();
const names = {
zero: "0",
one: "1",
two: "2",
three: "3",
four: "4",
five: "5",
six: "6",
seven: "7",
eight: "8",
nine: "9",
};
const lines = readFileSync("input.txt")
.toString()
.split("\n")
.filter((e) => e.length > 0);
const numbers = lines.map((a) => {
const f1 = Object.keys(names)
.map((e) => [names[e], a.indexOf(e)])
.filter((e) => e[1] >= 0)
.sort((c, b) => c[1] - b[1])[0];
const l1 = Object.keys(names)
.map((e) => [names[e], a.lastIndexOf(e)])
.filter((e) => e[1] >= 0)
.sort((c, b) => b[1] - c[1])[0];
const numbers = a
.split("")
.map((c, i) => [c, i])
.filter((b) => parseInt(b));
const f2 = numbers.sort((c, b) => c[1] - b[1])[0];
const l2 = numbers.sort((c, b) => b[1] - c[1])[0];
const before = [f1, f2, l1, l2];
const after = before.sort((c, b) => c[1] - b[1]).filter((e) => e);
const i = after.length - 1;
if (!after[0] || !after[i]) debugger;
return parseInt(after[0][0] + after[i][0]);
});
const sum = numbers.reduce((a, i) => a + i);
console.log(JSON.stringify(numbers));
console.log(sum);
const t1 = performance.now();
console.log(`Runtime: ${t1 - t0}ms`);

1000
Day1/input.txt Normal file

File diff suppressed because it is too large Load Diff

38
Day2/Part1.js Normal file
View File

@ -0,0 +1,38 @@
import { readFileSync } from "fs";
const t0 = performance.now();
const lines = readFileSync("input.txt")
.toString()
.split("\n")
.filter((e) => e.length > 0);
const ids = lines.map((e) => {
const current = parseInt(e.match(/^Game (\d{1,3}):/)[1]);
const pulls = e.split(":")[1].trim().split(";");
let failure = false;
for (const cubes of pulls) {
const values = cubes.split(",").map((e) => e.trim());
const bag = { red: 12, green: 13, blue: 14 };
values.forEach((e) => {
const splits = e.split(" ");
const color = splits[1];
const amount = parseInt(splits[0]);
bag[color] = bag[color] - amount;
});
if (
Object.keys(bag)
.map((e) => bag[e])
.filter((e) => e < 0).length > 0
) {
failure = true;
break;
}
}
return failure ? -1 : current;
});
const sum = ids.filter((e) => e >= 0).reduce((a, i) => a + i);
console.log(sum);
const t1 = performance.now();
console.log(`Runtime: ${t1 - t0}ms`);

30
Day2/Part2.js Normal file
View File

@ -0,0 +1,30 @@
import { readFileSync } from "fs";
const t0 = performance.now();
const lines = readFileSync("input.txt")
.toString()
.split("\n")
.filter((e) => e.length > 0);
const powers = lines.map((e) => {
const pulls = e.split(":")[1].trim().split(";");
const min = { red: 0, green: 0, blue: 0 };
pulls.forEach((cubes) => {
const values = cubes.split(",").map((e) => e.trim());
values.forEach((e) => {
const splits = e.split(" ");
const color = splits[1];
const amount = parseInt(splits[0]);
min[color] = Math.max(min[color], amount);
});
});
return Object.keys(min)
.map((e) => min[e])
.reduce((a, i) => a * i);
});
const sum = powers.reduce((a, i) => a + i);
console.log(sum);
const t1 = performance.now();
console.log(`Runtime: ${t1 - t0}ms`);

100
Day2/input.txt Normal file
View File

@ -0,0 +1,100 @@
Game 1: 1 blue, 1 red; 10 red; 8 red, 1 blue, 1 green; 1 green, 5 blue
Game 2: 9 green, 11 red; 1 green, 7 red, 1 blue; 1 red, 1 blue, 1 green; 11 green, 3 red, 1 blue; 5 green, 12 red; 8 green, 1 blue, 7 red
Game 3: 16 blue, 2 red, 4 green; 8 red, 4 green; 7 green, 16 blue
Game 4: 3 green, 4 blue, 6 red; 7 red, 12 green, 5 blue; 5 green, 16 red, 8 blue
Game 5: 4 green, 4 blue, 3 red; 4 green, 7 red, 1 blue; 2 blue, 2 red, 4 green; 3 green, 7 red, 4 blue; 2 blue, 3 green, 8 red
Game 6: 3 green, 4 blue, 10 red; 13 red, 3 green, 4 blue; 11 red; 14 red, 1 green; 6 red, 2 green, 1 blue; 10 red, 1 blue, 1 green
Game 7: 2 green, 9 red, 9 blue; 12 red, 14 blue; 8 red, 3 green
Game 8: 9 green, 1 red; 18 green, 2 red, 7 blue; 1 blue, 9 green, 3 red; 3 red, 15 blue, 18 green
Game 9: 2 red, 1 blue, 10 green; 4 red, 1 blue, 5 green; 6 green, 3 red; 1 green, 2 blue; 8 red
Game 10: 9 green; 6 red, 4 green, 4 blue; 9 red, 2 blue, 9 green; 8 blue, 9 red, 12 green; 4 red, 8 green, 2 blue; 6 green, 7 blue
Game 11: 1 blue, 15 red, 2 green; 3 green, 9 red; 1 blue, 3 red, 1 green; 10 red, 1 green; 3 red
Game 12: 6 blue, 9 red, 4 green; 1 green, 8 blue; 4 green, 8 blue, 1 red; 7 green, 7 blue, 2 red
Game 13: 11 green, 8 blue, 1 red; 5 blue, 2 red, 5 green; 2 red, 18 green; 5 blue, 5 green, 2 red
Game 14: 1 red, 4 blue, 3 green; 2 red, 1 green, 1 blue; 1 red, 5 green, 1 blue; 3 red, 4 green, 4 blue
Game 15: 2 blue, 1 green; 3 red, 2 blue, 7 green; 1 red, 4 green, 15 blue; 1 green, 14 blue, 2 red
Game 16: 3 red, 10 blue, 9 green; 20 blue, 13 green, 1 red; 9 green, 11 blue, 6 red
Game 17: 4 red, 1 green, 1 blue; 1 green, 1 red, 11 blue; 1 red, 7 blue
Game 18: 5 red, 9 green; 17 green, 2 blue, 16 red; 11 red, 2 blue, 1 green
Game 19: 3 red, 14 green; 4 blue, 1 red, 17 green; 14 green, 3 red, 9 blue; 9 blue, 8 green, 8 red; 4 green, 8 blue
Game 20: 8 green, 3 blue, 3 red; 5 green, 6 red, 1 blue; 1 blue, 6 red, 13 green; 1 blue, 4 red; 4 red, 4 green, 1 blue
Game 21: 10 green, 3 blue, 7 red; 4 green, 14 blue, 11 red; 2 red, 8 green, 15 blue; 13 green, 7 blue, 4 red
Game 22: 3 blue, 11 green, 3 red; 7 green, 2 blue, 2 red; 3 red, 3 blue, 15 green; 12 green, 2 blue, 5 red
Game 23: 4 red, 3 blue; 2 green, 7 red, 6 blue; 1 green, 2 red, 3 blue
Game 24: 7 red, 3 green, 2 blue; 3 red, 9 green, 9 blue; 8 green, 6 red, 7 blue
Game 25: 2 red, 2 green, 2 blue; 3 green, 1 red, 4 blue; 4 red, 3 blue; 4 green, 1 blue, 5 red; 2 green, 4 red, 2 blue; 5 green, 3 red
Game 26: 1 red, 7 blue, 12 green; 2 blue, 2 red, 7 green; 3 green, 5 red, 6 blue; 8 green, 3 blue, 5 red; 15 green, 7 blue
Game 27: 4 blue, 7 red, 15 green; 4 red, 1 blue, 15 green; 3 red; 8 red, 4 blue, 10 green; 4 red
Game 28: 2 blue, 5 red, 8 green; 13 red, 9 green; 2 blue, 4 red, 5 green; 1 blue, 14 green, 12 red; 13 green, 11 red, 3 blue
Game 29: 7 green, 10 red; 9 green, 2 red, 1 blue; 3 blue, 13 green, 5 red
Game 30: 3 green, 6 blue, 5 red; 3 green, 1 red, 13 blue; 2 red, 2 green, 7 blue; 13 red, 2 green, 9 blue; 2 blue, 7 red, 2 green
Game 31: 8 red, 16 green, 1 blue; 10 red, 3 blue, 11 green; 2 green, 4 blue, 3 red; 2 blue, 7 red, 12 green; 16 green, 9 red, 6 blue; 8 blue, 9 red, 11 green
Game 32: 6 red, 3 green, 7 blue; 3 green, 7 blue, 3 red; 4 green, 1 red, 7 blue; 7 blue, 6 green, 5 red; 9 green, 11 red
Game 33: 8 green, 6 blue; 2 green, 8 red, 1 blue; 12 green, 4 blue, 14 red; 11 blue, 1 green, 7 red; 1 blue, 5 green, 9 red; 7 green, 7 red, 5 blue
Game 34: 5 blue, 6 green, 7 red; 6 blue, 5 green, 10 red; 9 red, 3 blue, 7 green; 9 red, 4 green; 15 red, 6 green, 4 blue
Game 35: 6 blue, 4 green, 7 red; 2 blue, 6 red; 4 green, 11 red, 2 blue; 2 red, 1 blue, 4 green; 10 red, 10 blue, 1 green; 11 blue, 4 green
Game 36: 13 blue, 6 green, 7 red; 5 red, 9 blue, 9 green; 6 red, 2 blue, 3 green; 2 blue, 7 green; 7 red, 5 blue; 12 blue, 7 red, 3 green
Game 37: 2 red, 12 green, 3 blue; 6 red, 4 blue; 3 blue, 1 green; 4 red, 5 blue, 6 green
Game 38: 3 red, 16 blue, 10 green; 6 red, 5 green, 5 blue; 7 blue, 12 red, 5 green
Game 39: 17 red, 4 green, 6 blue; 6 blue, 11 red; 18 red, 3 green, 1 blue; 3 blue, 6 red, 2 green; 19 red, 5 blue
Game 40: 1 red, 2 green, 3 blue; 6 blue, 5 green, 1 red; 5 green, 1 blue
Game 41: 7 blue, 6 green; 8 blue, 2 red, 3 green; 2 blue, 3 green; 3 green, 7 red, 17 blue
Game 42: 6 blue; 10 red, 5 blue, 14 green; 1 blue, 11 green; 6 blue, 2 green, 5 red; 7 blue, 13 green, 11 red
Game 43: 15 green, 3 blue; 7 blue, 14 green; 11 blue, 3 green; 17 green, 1 red, 1 blue; 17 green, 2 blue, 1 red
Game 44: 11 red, 4 blue, 16 green; 11 blue, 16 green; 14 red, 10 blue, 17 green
Game 45: 6 blue; 6 green, 6 blue, 1 red; 5 blue, 11 green; 4 green, 6 blue
Game 46: 6 green, 3 blue, 2 red; 9 green, 4 red, 2 blue; 9 green, 1 red, 3 blue
Game 47: 6 red, 3 blue, 9 green; 3 green, 11 blue; 4 blue, 1 red; 11 green, 11 blue
Game 48: 13 blue, 15 red; 9 red, 9 blue; 15 green, 9 red, 1 blue
Game 49: 8 green, 4 red; 1 red, 6 blue; 5 blue, 8 green; 1 red, 2 green, 3 blue; 2 red, 5 blue, 5 green
Game 50: 1 red, 8 green, 3 blue; 1 blue, 9 green; 3 green, 6 blue
Game 51: 8 green, 8 red, 8 blue; 9 green, 2 red, 6 blue; 1 green, 1 red, 1 blue; 5 blue, 1 red, 7 green; 7 blue, 5 red, 5 green
Game 52: 2 green, 1 red; 4 blue, 7 red, 2 green; 3 red, 4 blue; 1 green, 1 blue, 7 red; 8 red, 1 green, 8 blue; 4 blue, 3 green, 4 red
Game 53: 9 blue, 9 red; 3 blue, 3 green, 5 red; 1 green, 6 blue, 2 red; 4 red, 3 green, 3 blue
Game 54: 1 blue, 2 red, 2 green; 6 green, 1 blue, 3 red; 1 green, 1 blue
Game 55: 14 red, 8 blue; 9 red, 2 green, 8 blue; 6 blue, 11 red, 1 green; 10 red, 3 blue, 4 green; 13 red, 2 green, 4 blue; 5 green, 5 blue, 3 red
Game 56: 12 green, 3 blue; 1 red, 13 green, 5 blue; 17 blue, 6 red, 2 green; 4 red, 12 green, 12 blue
Game 57: 9 green, 9 red, 10 blue; 10 blue, 10 red, 9 green; 4 blue, 14 red, 8 green; 14 red, 7 green; 10 green, 3 blue, 7 red; 1 red, 2 blue, 1 green
Game 58: 1 green, 9 red, 11 blue; 5 green, 11 red, 6 blue; 2 green, 3 red, 8 blue; 2 green, 14 blue, 4 red; 9 blue, 1 red
Game 59: 10 blue, 13 green, 3 red; 4 red, 12 green, 8 blue; 4 red, 9 blue, 10 green; 17 green, 5 red, 7 blue; 4 red, 3 blue, 10 green
Game 60: 4 green; 5 blue, 8 red; 19 red, 3 blue, 2 green; 4 green, 14 blue, 3 red
Game 61: 2 red, 6 blue; 15 blue, 5 red; 1 green, 2 red; 1 green, 2 blue, 8 red; 7 red, 10 blue; 11 blue
Game 62: 10 blue, 2 green, 7 red; 2 red, 2 green, 10 blue; 5 red
Game 63: 19 red; 1 green, 2 blue, 3 red; 1 blue, 11 red
Game 64: 11 red, 3 green; 3 red, 1 blue, 3 green; 2 green, 2 red, 4 blue; 9 red, 1 green; 3 green, 7 red, 4 blue; 9 red, 2 blue, 3 green
Game 65: 2 red, 12 green; 3 red, 3 green; 8 green, 1 blue, 4 red; 2 red, 3 green
Game 66: 4 blue, 11 red, 15 green; 1 blue, 2 green, 10 red; 4 red, 5 green; 16 red, 16 green, 4 blue
Game 67: 6 red, 1 green; 1 green, 1 blue, 12 red; 11 red, 2 blue
Game 68: 4 green, 5 red; 9 blue, 1 red; 1 green, 2 red, 7 blue; 6 red, 5 green, 8 blue; 2 green, 7 red, 2 blue
Game 69: 9 red, 16 green, 12 blue; 5 red, 4 green, 3 blue; 6 green, 11 blue, 6 red; 13 green, 16 blue, 7 red; 1 red, 8 blue, 14 green
Game 70: 7 red, 5 blue, 4 green; 6 red, 12 blue, 13 green; 5 green, 4 red, 8 blue; 9 blue, 5 green, 2 red
Game 71: 15 red, 3 green, 3 blue; 1 red, 5 green, 6 blue; 6 green, 7 blue, 16 red
Game 72: 4 blue, 4 green, 6 red; 9 green, 2 blue; 15 green, 5 red
Game 73: 1 green, 7 red; 6 red, 2 blue; 5 red, 9 blue; 12 blue, 9 red
Game 74: 6 blue, 4 red, 4 green; 17 green, 1 blue; 4 blue, 7 green, 4 red
Game 75: 3 green, 2 blue, 10 red; 17 red, 14 green, 2 blue; 2 green, 1 blue, 14 red; 16 red, 1 blue, 9 green; 14 red, 1 blue, 9 green
Game 76: 1 red, 10 green, 4 blue; 4 blue, 4 red, 7 green; 1 red, 2 blue, 15 green; 5 blue, 7 green, 1 red; 5 blue, 3 red, 17 green; 18 green, 4 blue, 1 red
Game 77: 4 green, 5 blue, 7 red; 3 blue, 4 red, 5 green; 1 red, 1 green; 6 green, 4 blue, 16 red
Game 78: 2 blue, 9 red; 7 red, 3 blue, 18 green; 2 blue, 12 green
Game 79: 3 red, 10 green, 10 blue; 10 blue, 12 green; 7 green, 10 blue, 3 red
Game 80: 10 green, 2 blue, 14 red; 3 blue, 4 red; 12 green; 3 red, 2 blue, 1 green; 10 red, 12 green, 2 blue
Game 81: 1 green, 3 red, 6 blue; 5 blue, 1 red, 1 green; 6 blue, 9 red
Game 82: 3 blue, 11 red, 20 green; 15 red, 5 green, 3 blue; 4 red, 7 green, 3 blue
Game 83: 5 red, 12 blue, 6 green; 11 green, 9 blue, 6 red; 6 green, 1 red, 7 blue; 16 blue, 4 red; 3 green, 6 blue
Game 84: 3 red, 3 blue, 2 green; 3 red, 9 green; 2 blue, 11 green, 1 red; 1 red, 11 green, 1 blue
Game 85: 11 green, 1 red, 2 blue; 6 red, 8 green, 14 blue; 3 red, 6 green, 15 blue; 9 blue, 7 red, 1 green; 19 blue, 2 green, 5 red; 6 blue, 7 red, 6 green
Game 86: 11 red, 4 green; 2 green, 1 blue, 10 red; 11 red, 3 blue, 9 green
Game 87: 2 green, 17 blue; 12 blue, 3 red, 2 green; 3 green, 2 blue, 13 red; 6 red, 3 green; 13 blue, 11 red, 3 green; 5 blue, 7 red, 1 green
Game 88: 1 red, 12 green; 4 green, 3 blue; 6 blue, 12 green; 1 red, 2 blue
Game 89: 9 green, 2 red, 12 blue; 19 green, 12 blue, 3 red; 2 red, 8 blue, 11 green; 13 blue, 8 red, 9 green
Game 90: 2 red, 2 blue, 7 green; 7 green, 2 red, 12 blue; 6 red, 9 green, 5 blue
Game 91: 14 blue, 2 red, 7 green; 7 blue, 7 green; 1 red, 5 green, 10 blue; 4 red, 7 blue, 4 green; 5 green, 1 red, 13 blue; 5 green, 1 red
Game 92: 6 green, 4 blue, 7 red; 18 blue, 3 red; 6 red, 2 blue; 16 blue, 5 red, 3 green
Game 93: 6 red, 17 blue, 5 green; 14 red, 16 blue, 10 green; 11 blue, 7 red, 11 green; 6 blue, 7 green, 3 red; 17 blue, 1 green
Game 94: 4 green, 9 blue; 2 green, 6 red, 3 blue; 5 red, 4 green, 8 blue; 4 green, 5 red, 6 blue; 7 green, 7 red, 6 blue
Game 95: 6 blue, 2 red, 3 green; 9 green, 2 blue; 2 red, 4 blue, 11 green; 4 blue, 4 red, 8 green; 13 green, 5 red, 7 blue; 4 red, 15 green, 2 blue
Game 96: 5 red, 8 blue, 5 green; 12 blue, 2 red; 15 blue, 2 red, 1 green; 4 red, 1 green
Game 97: 5 red, 5 blue; 1 red, 11 blue; 3 green, 10 blue; 3 green, 1 red, 7 blue; 2 blue, 6 red; 1 red, 1 green, 8 blue
Game 98: 4 red, 3 blue, 8 green; 5 blue, 2 red, 8 green; 7 green, 10 red, 2 blue; 11 blue, 9 red, 9 green; 6 blue, 10 green, 11 red
Game 99: 7 green, 3 red, 9 blue; 3 blue, 5 red, 4 green; 2 red, 6 green, 1 blue; 12 blue, 1 red, 1 green; 11 green, 1 red, 12 blue
Game 100: 2 blue, 1 red; 4 blue, 2 red, 1 green; 7 red, 5 blue; 2 red, 1 green, 5 blue

51
Day3/Part1.js Normal file
View File

@ -0,0 +1,51 @@
import { readFileSync } from "fs";
const t0 = performance.now();
const lines = readFileSync("input.txt")
.toString()
.split("\n")
.filter((e) => e.length > 0)
.map((e) => e.split(""));
const numbers = lines.map((a) => {
const current = { index: 0, number: "" };
const scan = a
.map((c, i) => {
if (!isNaN(c)) {
current.number += c;
return -1;
} else if (current.number.length > 0) {
const next = {
number: current.number,
index: current.index,
};
current.index = i + 1;
current.number = "";
return next;
}
current.index = i + 1;
return -1;
})
.filter((e) => typeof e === "object" || e >= 0);
if (current.number.length > 0) scan.push(current);
return scan;
});
const adjacent = numbers
.map((a, l) =>
a.filter((n) => {
for (let k = 0; k < n.number.length; k++)
for (let i = -1; i < 2; i++)
for (let j = -1; j < 2; j++)
if (
lines[l + j] &&
(lines[l + j][n.index + k + i] ?? "").match(/[^.\s\w]/)
)
return true;
return false;
})
)
.filter((a) => a.length > 0);
const sum = [].concat(...adjacent).reduce((a, i) => a + parseInt(i.number), 0);
console.log(sum);
const t1 = performance.now();
console.log(`Runtime: ${t1 - t0}ms`);

140
Day3/input.txt Normal file
View File

@ -0,0 +1,140 @@
.......12.......935............184.720...243........589.652..........435..........483.............6...........................904...........
......*.....968*.....$............*........=..348...*..........986....*...................459....*........422................#......%482....
....291............612....290..........903........699......218*.......376............890....*.838...81......*.....138.../194................
..............156......$..*...891.&731....%..89...................523..........699....+...227......*.......225....=...........388....*......
................*...189..591.*................*.......783.....107..-...54.287..$................533.../..............909........&.603.424...
...229*952.....938............470.555.......746...28.....+...*.........................................279..826..788*.......................
...................................*...............@.........867.-....102..845...542.779.....................*........182.166...511.........
563.727.....282....237..171.......892...183.......................989....*..........*................$....709...8*974.=...%.....*.....873...
....#..........+...*.......*..........................&......129+......491...................877....715.......................270.......#...
.................53.....781...&295....@773.336......547................................45......*.............=800.....*359..................
...342*468....&.....573....................*.................................%850............*..465................192.....*.......&115.....
............988.......*...731.............789.673....*256..............677..................621...........#....716......910..297........22..
204&....69............905...=.....641.472.......#.524............127....*..714.........*62..........622..324..&.................*...........
..........*........................+....@.................812......*..955.....*.....257....../.................../..............545.........
........668....91..&.........840......+..............566.....+...66.........660..............469.................525...765...........25.....
...............$...666.979..*........952...122......%............................71......=39...../94.........................132......*.....
......@.................../.460..#.......=.=..........146..625........214.........#.278................667..........386.......-....936......
....643.......@..................974...464...........*.....*...........*.............%.....$...........=...=..%995...*......................
........./...577...-....3.../186.................*.995.....678.&.......882...559...........374.......&...554.........428.......725....*.....
.......96........678....%.....................529..............374...........*......924........=277..606..................#...#......8.257..
...609....................397.......475...................651.......856......697.&.....&..=...................486........888................
............-................*..................756...399....*..42................866....287.....#......515...*......................137....
.....285..947....#..........997......=.....665..*......*..420...*.....-..268*457.............=63..758.....+..623.............+../...........
..............458.....422.......338...827...+..462....797.....26....523..........*.880*.............................&.....934..157..........
.......149........409....$................................................868.378......144..149............356.....872..............871.533.
....22...*..........$........7.......149....979......................826.&.....................@........-.....*275.....................*....
........518.773*.........10..$..........*........805..812.972......................123......*............98.........=........./609.682......
.................5........./............349........$.....*..................786....*.......160..903...40.............209...............*....
.......*.....................................497...........#.............../.....153.795............./.........&806..........839....419.337.
78...582............675................145.........405....77..361............952.......*..../741....................624..527*...............
...................../../....=.....+....&.............*51.....*..........733*.........728.........173....834.....76.........................
................878....276..792.....372....................385..179.............@610.............................%........146=..............
..........522.....*...........................-....30....-........*.@................110=..+.......197.....643.................762......%...
......%....*...173.............420..407......261.........687.806.12..104.....914..........685.233.&.......*.....549...=...........*......591
.....837..135.......313...579....%.=.....613................../..........729.........257#.....&.........430.399*.....157.........970........
...................*.....*.....*......@.....*............../....566........+.....................*906....................%..................
....459.78$.775.768..62...345.537......122.803.142*758...148...*....992................711....316.........#...............521.298*590..289..
....*.................#.........................................444............382.....*...@...............753.......927................/...
.....592..735......+.............634.......652.....853....690................./.......874.846.35.....884.........182.-......................
.419........*.839.157.......795...................*.......*...........928........................756....*64......*.....*19.....309..........
.........716...*.......591....*....358$.#378.............623...............687.........-816......*............292...110....&....*......643..
..134...........910......*.941.......................................547=....*....................490....938+..............422.482..........
...*..331....$..........80.................#346....180...........737.........76.......992@...91......................../....................
...16....$.140.464*831.....933.917....303............*......%.....*....336........339.......*.............@..939....583....*564.........864.
..............................*........=...+54.....449......209.912.....+.....615..%.....605............960..*..........219.................
.........@442.....730..................................413...........................26.....................944..336........188......./.....
...190............#...@...524.544....968*.............*........466...222...536...843.@..........=.....32...........$..........-.......410...
......*..80@..491....232..-......*.......16........402......27..*...*.....*...................480....*........&........894..................
.....218.........*.............=..819......................*........857...896...........677........689........638...45*.....993.............
................754...........434.........622.338...........607....................&......&.%213...........................-................
........+.894......................681.......*.........484.........963.498...*..538.............................................346.........
.....802.....*162....752...........................................*........520...........229.2.586..513..............25=.746........782*423
...............................@...307#.497....551..996..696....879...911................%......................277*........................
....*157.....137....#.........621.........*...#.....*...#............*............527......9........./..............844.....@224....304.....
.541............*.649.............412.....744......560..............404.....240.......986*.@.......346.....@..........................+.....
......268....764.................%.......................902....856.......*....*..........................242.....842.....#.................
........&...............514..38..........+..=...........@..............715.142..587.......307.................731...*...954....878*.........
............................*.....349....76.92....612.....376.......................257...$...................../.968..............765......
........960*414........713.501......&............%.......*......*941............................#........415...........937%.................
....967............409..*......605......................375..771........599*884.................880.........*...127..$.................$513.
.....*................*..171..*.....@.......507.895..................*.................636...........768...114....-..292.......-...223......
...807...977.......218.......753...47.......*......*..............507.90....../725.......*.........+...@.....................755......*.....
............*478.............................542....676...............................673........974.....@....*170....261..............134..
800...............532............................15............%...445..102.............../510.........625.279..........-.....*.............
.......................654.....850.405......................395.....-.......467....477...........973............../........191........398...
.925...793...423*.........@..........................................................=.659..........*.....817.....230...........653..-......
.......*.........52...........764$....273...................@........430....................................*...........669.....-.......71..
.435....804..177....990.838.........#..-...475...297..337..360.........*....914.............................833.............................
....*.......*.........*...*.......281......&......*..+.............328..746......=215.......359....295.....................#481......868....
..967........936.689%.785..515...............*64.827........................761.........+....&.......+..............................*....637
....../.+265..............................562...............235........585..*...........793........=...838.147....284.902..301*330..........
....579.........................21%..327................481..*...469%..*.....297.704..............797.....*...........*.................#...
......................638............*...................*....81.......780.........*...../...282....................907.882.781.......797...
..........671....608.................295.................302......953............171..919.......*........................*...*......#.......
............*....*....251.....191........#............*..........................................999.....451....+....286.415.581....274.....
..245$.....217...649.-....................898......950..................495*497.......53*............@...........398..-.....................
...........................942.......323...............+.....623.........................804.......875........................#.............
.....42..543.................*..320....*..918....314....145...........603......991$.921.......261......................762...187.....951*638
.....*..#........53........374........756...........*.........-.......................*........../..217*550..............*..................
....217..........*................................743......703....368...$861..4*966.415..703................................*959........*344
...........626...31...602.................700..........696........*.....................*......396..........591.......*124..................
..135........@................................699.139.....*.662....46........=797......144.....#...*289......*.....840............-...102.44
................909.......180.............100.*....#...574..*............52...................................451............764.517....*...
........701*..........127*............117../...787...........67.....903..........273....*900................................=..........112..
............430............423.67.......*..............*572...........@...199.........94..........686.....679.....................921*......
.542*119...............396....*.......938...........250......888..........*.....978...................25..../.........306.............780...
...............251........*.....................238......................340....+..............112....*........120...*....24................
.223.....549......-..98..60..775..28*105...........*.436..951.599.................309*682.......*..937...158.....*....697.*......764..$.....
.....788............#....................768.....266........*..%..............................779........*.......542.......148...*....529...
....*......310.............412.......23.+....289..........560............249+.204..606*................271...805.......394.......898........
....919.......&...867.......*........*......%.........592............166.........*.....460.........369..........*........*..................
.........920.......*.....233.....732..500.....950.....*.......514...........110..961..................*309.....450..#...521.................
.................753...............*............#...965..............................852...841....%........524.....981............653.......
...........858...........*..234..922........65..................991.........-839.800....*......869...836..$.............675..789...*....505.
..........*.............516...*..................774.....&.149.=.................*.......737.........*......402....%.......*....#..762......
........780.........4.........116.....................976..-...........%........791..................300.....%....338.471...................
...................*.................480*160..3..............*727.....363................................................................167
...........743.....721.......................*..........808...............942...........339.289.............$............416.....$..........
..955...................606*623.............718...503....*...................*245..........*........531.....686......250..../....275........
.............@....................110...............*...309..#....&......210..........386.................%...........*........+........391.
.....444.....743......519..691......*.......-824......+......759.617....*.......710..*.....814.........356.........464.......709............
......*..746......247.....*......596..999.............907.............296.-..../.......760.+.................$.890.......................669
...479.....*.........*.......561.....+..........*178......................977....266...*.....640..........607.....*.....%...........545.....
........395...=......361........*372.........655..........398...203..11................147..*......../.............196..499........*........
..561........646......................*898.......175.570.....$.....#...*..135..............633..314...871......898..........891...90.....780
.......*91........405..............627..............*....736.........760.....*........=..........*...........%....*..........*..............
....722...........*......................................*.................744.698.367..-........767..........236.692.......308.............
...............740........./............906......*593...977.......645............*......167.............................................*...
........+...............123...................281....................*...543......461........................175.....................381.319
.282...814......771*........920.......................@............473....*...............&....872...../401.....*......=......18............
....*.........%......993...*...........................256..223...........242....977.......293.-...............550.....435..................
....23.........960........307....$.....504.638*656...............&...................203.............33.$430..................731...........
................................885......*................398....763...........805.....=....338.......*......146*916..................513...
..20...............42....................828.............../...................*............$.........531............159*761......78........
......805-...-..........598...........#.............351........34.........682..516.534..............*........&..........................283.
..............664....../.......255..887.....258......%.........*.........*............*.....226..931.91......128............................
...557.938#.......75.....585..*...............*.194......#..686........786..........755.......&..........637..............988.......275.....
....*............%....35...*.141...........508.....*865.967..............................80*............./.....978....790*.....@...*........
.662..................*..............@939...........................204........484....34....99.............@.................350.54.........
............358....832..=......................%......307.95........*......654...*......&.........734.....491...50...924.385................
............*............340................483.........-.*.......118..794*.....431...........783..*..............-......*.........&594.#...
..........338........=.............$.................*....94....................................*...546.....$.......187..593.768........282.
...............796.380.183....+.564..94.144.........138..............394.392.....971.......#928.447........275..57...*.......&..............
...........233...*.......%...40........*........................945.....*.........-.................%.............=.438...........*......906
.....881.../...491...903..........918.....303......................*........578*...................807......597................681.539......
......*.................*.463.467*....246.......577.....198.....245.....967.....988.&.........759.......=...*.........-889..................
......462..978........664...%...........*.-731.../.....&....375.............#.......217........@........381.250...219......947..............
..........&..........................252.......%.............*..............258............427...137...............@........@....-175.......
....864...................461..................234.......69.222........*...........411....=............651...#..............................
....*......243...............*283...................777-..*..........92.761..581%.*.....................$.....258..867..876.................
.916......%.........629.................911*238...........680...239................672.............137@...469.........*.......737...@.......
..............764....*........894/..289...........944..........#...........@....%........../876..........*.........687.........*....436.....
......442.255.....442..903.............*.....*493..../......................338..346...................927..............764.....536.........
.........*.....*........*.....869*888.597.241..................11-....542#...........412*..................235..............................
.804.329......344....195...94.......................................*....................880......44.622.........342.18...............417...
....*.....=................+.........76..328.....803.....658.....254.............327..........340......*.............@......................
...........254........../...........*...*...........*234...%..........20.....238...*..........*.........380......&......78.246%...598.......
.96....990.........%..718...%....869.......596....*......................423.....433..93.....613....$.............905...=........*.....497..
...*....*........=.86.....499..............*...385.296...................*...........*...............523.$.....................529...$.*....
...780.685.....822....................560.35.............................529......780.....................453......................711..930.

28
Day4/Part1.js Normal file
View File

@ -0,0 +1,28 @@
import { readFileSync } from "fs";
const t0 = performance.now();
const lines = readFileSync("input.txt")
.toString()
.split("\n")
.filter((e) => e.length > 0);
const cards = lines.map((line) => {
const id = parseInt(line.match(/^Card\s{1,}(\d{1,3}):/)[1]);
const left = line
.match(/:\s*((?:\s*\d{1,2})+)\s*\|/)[1]
.split(/\s{1,}/)
.map((num) => parseInt(num));
const right = line
.match(/\|\s*((?:\s*\d{1,2})+)\s*$/)[1]
.split(/\s{1,}/)
.map((e) => parseInt(e));
const matches = right.filter((a) => left.some((b) => a === b));
return { id, left, right, matches };
});
const points = cards.map((e) =>
e.matches.length > 0 ? 2 ** (e.matches.length - 1) : 0
);
const sum = points.reduce((a, i) => a + i);
console.log(sum);
const t1 = performance.now();
console.log(`Runtime: ${t1 - t0}ms`);

30
Day4/Part2.js Normal file
View File

@ -0,0 +1,30 @@
import { readFileSync } from "fs";
const t0 = performance.now();
const lines = readFileSync("input.txt")
.toString()
.split("\n")
.filter((e) => e.length > 0);
const cards = lines.map((line) => {
const id = parseInt(line.match(/^Card\s{1,}(\d{1,3}):/)[1]);
const left = line
.match(/:\s*((?:\s*\d{1,2})+)\s*\|/)[1]
.split(/\s{1,}/)
.map((num) => parseInt(num));
const right = line
.match(/\|\s*((?:\s*\d{1,2})+)\s*$/)[1]
.split(/\s{1,}/)
.map((e) => parseInt(e));
const matches = right.filter((a) => left.some((b) => a === b)).length;
return { id, left, right, matches };
});
const cardCount = (c) =>
1 +
[...Array(c.matches).keys()]
.map((e) => cardCount(cards[c.id + e]))
.reduce((a, n) => a + n, 0);
const totalCards = cards.map((e) => cardCount(e)).reduce((a, i) => a + i);
console.log(totalCards);
const t1 = performance.now();
console.log(`Runtime: ${t1 - t0}ms`);

190
Day4/input.txt Normal file
View File

@ -0,0 +1,190 @@
Card 1: 2 15 17 11 64 59 45 41 61 19 | 4 36 62 43 94 41 24 25 13 83 97 86 61 90 67 7 15 58 18 19 38 17 49 52 37
Card 2: 41 62 67 93 88 12 78 51 95 49 | 55 63 89 78 45 11 62 50 81 9 32 82 15 36 74 54 4 58 5 56 44 83 90 49 34
Card 3: 51 22 38 33 85 23 56 76 60 93 | 94 40 61 37 38 82 93 96 13 50 81 65 56 26 4 18 86 30 8 16 60 27 23 48 51
Card 4: 51 6 90 10 97 65 19 17 24 3 | 93 82 10 13 17 3 90 74 14 7 77 38 70 97 72 60 6 79 65 94 24 19 51 45 28
Card 5: 76 61 43 95 41 2 40 58 30 96 | 72 23 69 5 30 3 10 17 78 20 13 86 60 81 90 46 96 39 6 32 31 73 65 95 62
Card 6: 32 70 49 99 27 26 75 96 91 4 | 15 74 28 2 17 82 55 96 88 11 95 77 12 38 91 3 56 44 7 32 19 94 85 27 97
Card 7: 38 21 90 66 46 32 55 94 72 75 | 3 10 90 77 41 99 46 82 65 72 9 21 66 94 80 22 97 56 93 61 18 81 34 76 64
Card 8: 32 36 87 79 4 17 1 77 16 63 | 9 63 23 25 91 82 35 74 28 72 6 52 56 12 39 99 57 46 15 76 85 2 75 77 96
Card 9: 42 5 58 80 96 88 37 30 49 69 | 26 6 17 71 46 51 45 10 62 33 38 23 42 74 50 61 95 11 93 57 14 22 72 85 86
Card 10: 10 74 58 71 57 35 34 96 77 18 | 14 27 22 18 70 42 56 94 76 74 85 73 61 34 88 45 39 64 35 87 90 58 91 75 54
Card 11: 24 26 43 62 66 93 38 51 95 86 | 31 75 23 91 12 3 90 9 36 87 76 58 40 35 56 65 17 74 61 93 20 71 82 92 73
Card 12: 2 25 63 37 64 81 20 15 28 88 | 67 26 12 6 58 37 69 93 83 52 81 25 19 30 80 54 73 21 86 20 8 57 47 32 60
Card 13: 48 37 14 80 51 17 85 26 40 33 | 80 7 79 38 8 74 10 78 89 16 81 84 19 49 86 83 63 82 40 58 25 47 53 34 4
Card 14: 93 27 7 80 63 89 50 96 3 15 | 6 19 40 46 51 29 9 86 39 77 4 54 38 41 67 69 1 56 5 35 30 17 71 2 43
Card 15: 33 72 28 75 56 22 16 38 44 51 | 81 67 79 73 52 40 69 43 12 77 31 41 23 14 64 58 5 88 95 13 99 6 42 83 38
Card 16: 36 82 59 39 57 26 61 45 60 65 | 66 51 24 1 4 78 17 16 74 95 34 47 75 6 67 44 48 14 10 89 46 2 31 18 68
Card 17: 40 50 36 8 54 17 29 13 89 98 | 6 59 60 57 18 30 80 32 46 77 86 35 48 84 91 4 38 99 17 33 3 15 82 83 62
Card 18: 81 11 66 67 19 65 39 64 20 9 | 25 14 60 2 50 97 43 18 36 24 89 74 94 71 51 45 5 34 52 31 90 6 48 40 55
Card 19: 41 81 99 97 18 92 79 82 83 62 | 97 34 41 76 87 60 21 63 93 55 77 92 42 56 80 94 81 36 11 1 83 70 52 5 29
Card 20: 50 94 73 61 56 88 35 48 54 21 | 89 35 83 42 45 12 61 18 68 52 13 25 88 54 6 74 21 57 50 56 34 73 48 94 46
Card 21: 95 69 16 96 19 86 94 74 33 1 | 19 95 86 16 94 76 17 39 5 1 97 27 44 69 74 96 29 48 14 92 33 7 12 91 42
Card 22: 17 78 32 62 96 43 68 23 97 52 | 97 28 87 26 23 14 78 39 92 56 31 3 32 52 13 43 80 62 17 69 68 5 96 25 75
Card 23: 57 93 4 6 2 34 18 80 99 9 | 9 53 58 19 35 6 46 87 86 36 59 17 26 54 39 52 99 20 69 18 25 30 34 41 42
Card 24: 72 43 5 36 81 31 77 76 58 48 | 75 48 31 88 33 38 37 69 40 25 4 93 35 23 76 36 64 44 6 65 59 15 43 17 28
Card 25: 14 52 98 94 85 95 27 54 67 34 | 54 14 19 3 24 36 6 52 16 95 76 61 23 8 98 34 28 99 67 85 27 55 70 59 94
Card 26: 33 15 53 51 14 47 12 83 6 48 | 25 15 51 33 12 53 60 49 98 47 30 89 78 83 88 85 6 7 38 92 48 93 74 14 9
Card 27: 72 33 73 12 18 13 15 88 82 39 | 23 33 72 13 18 1 12 15 64 8 59 73 48 31 40 57 76 39 52 88 89 36 82 41 67
Card 28: 42 32 84 56 53 69 5 15 8 63 | 88 32 91 44 62 37 69 72 98 29 8 82 21 5 56 15 6 42 58 61 89 35 96 84 59
Card 29: 51 41 27 43 38 63 67 26 8 50 | 52 8 1 32 26 59 4 67 27 98 75 11 54 14 50 16 70 66 2 86 62 37 65 38 55
Card 30: 79 88 87 54 17 18 16 58 57 1 | 54 17 68 89 10 29 97 16 72 57 2 38 12 65 98 11 1 33 64 40 79 63 70 88 18
Card 31: 61 75 59 95 28 91 57 54 55 82 | 19 57 30 95 54 81 64 28 94 92 3 80 10 63 6 83 88 69 59 15 27 93 96 40 38
Card 32: 67 44 87 82 49 2 85 79 35 77 | 65 21 63 44 4 52 28 89 11 87 37 97 76 71 64 96 69 79 93 13 33 5 7 58 35
Card 33: 34 69 25 16 38 4 48 28 39 80 | 90 71 48 27 46 54 19 16 69 12 6 59 25 17 10 81 47 30 28 13 66 38 58 4 80
Card 34: 65 48 49 80 28 9 22 57 47 95 | 28 59 79 2 4 89 64 98 14 90 18 22 92 52 3 37 95 87 74 54 43 26 51 42 88
Card 35: 60 8 75 58 47 63 90 71 93 50 | 60 9 24 63 98 66 39 91 46 34 86 67 16 95 53 73 48 87 75 96 44 90 68 26 93
Card 36: 31 61 33 38 70 46 2 81 73 58 | 49 67 79 3 20 64 96 62 81 82 54 57 70 30 43 56 71 86 6 19 48 93 58 15 27
Card 37: 86 62 46 70 33 84 90 66 89 96 | 56 39 63 53 45 80 49 61 52 64 12 69 74 26 44 86 96 62 27 31 78 2 28 21 16
Card 38: 95 40 44 15 99 76 85 20 38 11 | 57 22 23 29 69 90 48 51 66 24 11 32 33 25 92 94 70 88 78 39 28 60 77 55 31
Card 39: 67 40 10 87 93 47 23 98 96 91 | 14 30 78 72 70 99 52 65 84 12 18 75 59 85 83 89 55 11 82 34 63 10 97 54 69
Card 40: 95 51 94 2 36 99 98 46 87 82 | 1 40 18 73 50 82 66 14 65 85 83 45 89 58 79 55 84 80 90 72 22 5 38 44 69
Card 41: 68 75 93 29 66 95 27 46 23 82 | 8 60 39 33 41 36 25 73 94 89 50 71 85 19 51 30 53 45 9 31 83 99 5 32 52
Card 42: 73 48 37 23 32 19 72 52 58 91 | 35 19 55 9 23 79 62 87 72 58 95 68 20 38 5 48 60 37 73 46 91 12 74 52 32
Card 43: 42 39 19 59 11 50 88 31 10 9 | 77 11 39 56 42 67 22 12 88 57 75 79 80 6 92 86 99 33 59 90 89 93 68 70 61
Card 44: 86 12 3 41 71 82 6 48 97 93 | 49 75 31 45 41 83 10 86 8 91 9 70 97 69 52 77 51 36 34 14 81 28 2 40 64
Card 45: 51 9 72 44 18 14 40 97 2 25 | 83 80 62 22 7 34 88 33 17 23 38 81 70 89 26 35 57 78 46 76 4 61 56 98 55
Card 46: 22 59 61 94 67 87 21 18 12 69 | 50 22 60 21 67 26 59 94 28 33 30 12 16 69 4 27 95 18 61 53 56 47 85 88 87
Card 47: 91 58 84 29 4 60 77 41 83 97 | 70 35 40 17 62 41 9 59 26 76 78 16 25 92 91 95 71 77 63 21 6 67 54 46 49
Card 48: 90 56 13 75 73 2 8 62 21 88 | 38 88 76 75 8 2 82 77 56 73 28 18 59 21 65 90 23 94 5 13 15 79 26 1 36
Card 49: 84 14 99 51 58 28 63 36 48 91 | 94 46 6 61 2 9 40 38 64 63 91 16 49 81 70 48 80 36 51 58 84 98 96 34 60
Card 50: 79 98 99 11 7 34 38 52 74 27 | 21 57 11 19 89 94 72 52 81 62 92 79 32 77 28 74 84 86 80 69 83 38 98 3 34
Card 51: 58 60 15 93 24 72 94 29 59 12 | 71 72 7 86 23 39 65 87 76 22 6 74 69 94 46 52 91 60 96 24 93 47 4 15 59
Card 52: 6 92 21 7 9 55 17 33 23 16 | 28 69 86 94 34 21 95 51 22 41 99 87 46 1 49 36 90 76 35 30 64 5 44 93 58
Card 53: 57 10 81 4 93 79 51 87 28 50 | 38 34 97 15 49 89 59 37 25 48 70 41 98 33 78 87 95 85 35 71 32 30 96 67 36
Card 54: 25 41 26 14 99 98 71 83 31 54 | 68 17 28 80 79 10 31 99 54 83 27 14 25 32 26 85 42 76 33 49 8 24 67 71 41
Card 55: 38 26 25 70 78 37 13 76 31 73 | 82 10 2 51 13 8 98 12 19 77 84 89 93 22 54 35 23 31 69 42 43 25 39 57 94
Card 56: 31 25 88 98 23 3 2 58 99 67 | 46 27 75 97 84 53 9 47 64 49 23 92 15 74 44 78 58 56 83 30 31 7 5 2 94
Card 57: 50 61 25 29 59 1 47 72 65 84 | 72 74 97 28 30 75 56 61 44 40 62 95 4 8 64 22 34 25 14 16 50 92 65 39 13
Card 58: 73 65 94 47 90 35 95 12 81 78 | 86 87 24 11 1 81 96 33 12 18 74 41 9 22 5 44 48 82 68 67 88 94 20 59 90
Card 59: 41 27 3 55 16 83 49 75 51 88 | 33 66 74 58 60 72 75 67 78 55 68 95 81 3 39 86 69 94 92 4 5 44 57 26 56
Card 60: 33 93 56 90 16 46 65 78 13 6 | 55 41 70 6 63 69 90 82 22 17 66 2 53 79 49 25 10 34 47 54 43 58 59 81 68
Card 61: 72 45 87 76 64 80 96 22 67 98 | 69 25 90 48 67 88 30 34 38 98 19 73 86 8 99 35 44 95 91 36 63 37 2 13 66
Card 62: 96 68 19 52 97 83 60 67 20 35 | 21 96 30 58 10 7 40 25 92 33 15 69 61 34 6 81 87 75 41 16 51 27 8 4 86
Card 63: 17 1 45 26 82 78 85 15 89 8 | 49 38 16 22 71 50 81 74 87 61 14 19 64 93 96 23 59 56 76 86 53 6 7 80 41
Card 64: 3 17 22 94 37 39 67 73 27 4 | 8 27 22 5 28 53 47 52 94 25 29 54 1 59 98 16 78 9 65 91 61 74 73 60 37
Card 65: 80 48 70 23 99 11 20 31 54 94 | 73 69 21 10 66 90 80 29 55 67 92 20 96 94 79 93 31 30 17 14 27 75 13 95 71
Card 66: 14 79 31 27 89 95 69 63 12 67 | 36 85 67 24 87 72 89 26 17 31 27 55 10 32 14 63 71 79 13 12 81 69 28 95 30
Card 67: 87 44 51 53 37 69 39 96 90 16 | 22 63 83 31 32 76 66 68 29 30 53 48 4 72 82 46 95 80 17 21 56 51 89 12 77
Card 68: 39 27 17 15 50 65 38 94 84 42 | 42 84 17 50 52 47 67 93 13 35 7 26 23 95 39 81 94 15 78 27 43 21 38 55 86
Card 69: 13 22 8 54 61 77 75 31 1 67 | 68 54 15 23 40 58 67 3 71 78 90 33 44 22 57 19 8 30 74 38 48 41 9 25 65
Card 70: 10 43 33 21 31 6 94 46 82 83 | 48 62 6 19 67 72 46 81 75 5 54 8 56 92 37 76 96 71 32 36 26 14 30 79 9
Card 71: 91 9 15 33 37 22 61 74 14 70 | 79 31 18 42 43 40 26 56 95 45 86 76 65 23 3 94 24 35 4 2 68 51 25 12 80
Card 72: 30 79 24 55 42 8 13 90 68 73 | 37 61 34 94 51 30 3 10 26 19 50 42 40 31 80 86 66 27 83 90 73 79 99 14 76
Card 73: 25 88 63 85 56 49 30 46 10 99 | 46 68 67 60 11 78 6 85 12 97 91 21 27 81 39 48 69 44 25 63 22 10 3 61 79
Card 74: 21 3 32 71 98 69 44 78 34 11 | 83 56 29 18 34 9 63 92 53 22 61 45 41 38 82 27 49 5 32 99 69 17 55 66 96
Card 75: 68 92 32 65 49 38 3 56 17 44 | 47 68 6 1 10 24 66 84 60 2 48 56 57 61 51 35 28 17 82 52 98 81 23 75 38
Card 76: 30 57 5 8 10 95 45 85 54 3 | 53 2 54 34 23 12 48 16 37 92 85 27 83 8 21 44 81 26 49 67 36 25 52 47 68
Card 77: 31 84 72 26 83 55 20 42 65 61 | 53 96 17 18 59 21 23 77 78 15 43 58 66 3 60 55 38 45 6 72 44 94 11 79 19
Card 78: 62 77 52 72 13 24 31 60 29 26 | 74 51 46 67 97 14 71 70 55 94 6 16 65 85 66 80 60 27 32 39 73 61 34 91 69
Card 79: 69 74 82 58 44 37 86 51 75 20 | 93 70 2 35 30 79 45 56 65 59 22 64 89 36 66 5 34 13 49 43 97 74 7 26 83
Card 80: 84 16 89 49 81 1 79 44 93 25 | 2 35 29 8 87 21 22 57 9 73 67 82 54 45 71 72 59 5 4 97 70 60 91 7 92
Card 81: 25 44 10 12 23 79 60 45 96 90 | 62 23 25 40 12 90 42 10 79 45 69 46 9 27 73 59 34 44 29 94 95 86 66 1 58
Card 82: 42 43 37 18 40 64 75 76 99 3 | 67 42 11 18 91 99 14 90 3 23 73 82 76 40 37 44 28 64 96 16 74 75 55 61 15
Card 83: 38 89 77 47 66 22 87 59 7 43 | 59 46 7 73 79 23 96 22 28 87 66 32 77 89 98 19 38 18 43 56 15 47 74 95 99
Card 84: 86 13 97 81 46 12 88 34 92 52 | 88 69 8 2 76 63 95 27 46 31 81 48 75 92 60 33 36 22 34 13 57 30 21 42 98
Card 85: 57 71 21 43 41 23 18 15 59 93 | 40 8 21 25 19 57 52 71 75 45 16 18 89 99 43 20 27 4 53 98 80 22 7 29 41
Card 86: 84 43 50 94 92 31 48 8 6 91 | 92 53 6 94 25 41 74 54 62 43 95 79 16 31 8 89 84 30 50 91 58 47 17 96 46
Card 87: 45 96 17 51 25 40 39 13 78 82 | 66 61 23 13 59 10 1 86 30 62 74 41 34 45 8 65 36 16 78 93 20 92 35 82 90
Card 88: 29 89 14 85 93 19 56 36 99 15 | 91 14 94 89 96 19 85 71 23 46 21 75 92 7 6 33 60 8 72 81 99 36 29 56 22
Card 89: 77 79 82 96 75 63 72 59 37 11 | 43 97 11 61 80 68 22 19 71 63 16 18 56 49 9 79 45 36 37 89 1 8 48 4 40
Card 90: 2 81 33 10 60 57 38 99 95 65 | 3 98 33 80 32 65 45 96 99 61 25 73 74 37 91 6 2 79 38 34 97 89 36 11 5
Card 91: 31 62 73 12 53 51 64 55 9 20 | 45 76 95 42 81 56 32 62 11 48 93 9 69 79 84 28 46 82 88 96 31 91 13 98 92
Card 92: 64 5 81 2 59 24 40 74 84 58 | 93 43 67 70 53 20 91 18 49 4 14 52 74 19 79 85 61 86 82 57 38 44 34 9 83
Card 93: 6 94 85 43 15 67 68 79 81 65 | 15 35 14 78 21 68 86 9 97 99 75 87 23 46 70 30 41 27 18 84 3 50 53 63 79
Card 94: 61 34 62 94 50 23 69 98 78 60 | 43 9 90 28 49 36 19 97 56 75 62 15 79 70 40 78 24 94 48 88 45 91 66 4 34
Card 95: 73 26 99 83 45 46 9 50 38 14 | 98 81 63 27 55 28 32 82 92 41 87 60 49 50 99 95 11 89 4 78 17 47 20 15 96
Card 96: 52 80 3 67 69 57 16 34 40 77 | 70 35 97 2 71 25 1 15 54 26 19 5 83 20 4 99 56 38 51 87 53 47 30 13 96
Card 97: 54 41 65 23 52 82 81 22 28 47 | 27 90 3 24 15 85 36 88 97 37 4 18 42 50 99 35 83 78 79 46 40 63 92 34 67
Card 98: 47 56 85 60 12 1 35 88 30 86 | 75 83 15 97 66 74 55 62 9 58 19 82 51 54 61 68 47 7 17 10 39 44 20 96 34
Card 99: 52 25 39 18 92 17 93 29 6 9 | 22 83 86 51 5 43 20 73 13 66 6 82 24 8 2 11 87 79 57 50 19 35 45 62 49
Card 100: 27 91 93 24 17 47 80 13 51 8 | 59 78 63 74 81 26 98 64 97 79 6 77 54 83 9 86 69 31 12 10 5 56 34 33 60
Card 101: 8 45 53 15 57 36 69 47 13 1 | 15 13 79 47 69 36 99 57 25 91 1 8 39 73 90 24 84 93 60 40 53 55 3 45 87
Card 102: 45 76 11 54 1 15 24 60 20 29 | 25 32 88 5 66 40 16 58 24 70 79 36 29 53 54 86 60 15 78 57 27 92 99 33 30
Card 103: 46 15 97 62 94 19 99 76 42 93 | 65 19 5 58 3 10 12 24 50 64 54 22 85 31 44 93 30 47 14 21 97 78 2 15 81
Card 104: 61 83 16 66 81 55 52 36 76 95 | 28 51 36 20 11 6 27 33 92 57 94 96 45 9 15 2 63 72 58 44 5 81 43 1 66
Card 105: 44 12 34 11 26 72 57 55 38 69 | 41 57 62 26 14 72 89 99 34 69 28 10 68 70 2 50 98 37 12 38 44 71 11 80 55
Card 106: 43 33 65 67 24 17 58 16 94 9 | 51 54 71 14 95 18 42 45 73 97 24 25 92 49 29 83 38 10 30 61 22 79 43 60 65
Card 107: 74 9 87 65 8 71 6 51 47 79 | 74 5 6 71 65 82 57 88 66 76 70 8 51 87 54 81 96 79 7 9 47 12 24 52 50
Card 108: 32 87 49 10 41 34 68 79 33 23 | 16 67 63 69 60 37 8 2 47 78 5 9 34 61 10 42 36 95 68 24 75 77 85 56 18
Card 109: 98 95 89 44 76 63 83 99 71 79 | 49 64 88 18 67 48 23 37 32 99 65 14 1 63 80 84 60 5 87 94 70 8 96 16 35
Card 110: 73 30 38 99 23 57 68 39 20 45 | 74 9 1 8 35 42 23 24 83 66 76 90 30 56 82 15 6 49 88 45 96 62 43 27 16
Card 111: 48 62 64 91 57 12 68 30 25 18 | 78 3 21 29 20 77 91 74 72 1 18 28 19 25 44 52 34 12 64 17 6 7 57 5 14
Card 112: 62 10 63 18 34 55 72 86 12 45 | 82 7 27 95 76 64 11 31 42 38 75 15 69 29 79 20 17 8 16 39 60 24 87 81 9
Card 113: 91 58 97 55 46 75 74 53 72 2 | 82 7 17 38 89 81 14 24 33 13 11 91 79 93 96 18 2 35 80 15 45 63 41 46 37
Card 114: 76 22 44 83 99 59 21 67 12 17 | 78 68 63 53 16 29 31 90 70 18 69 9 40 38 32 8 27 85 67 26 62 56 97 35 94
Card 115: 11 49 95 65 18 67 29 91 45 25 | 37 44 78 20 88 35 32 60 90 40 26 5 68 53 70 31 74 63 21 4 87 46 12 92 91
Card 116: 50 25 19 90 91 8 80 44 9 38 | 40 47 45 53 99 1 74 65 49 67 16 29 81 70 78 89 42 80 97 76 66 21 24 95 83
Card 117: 38 7 34 3 57 30 29 44 52 21 | 5 48 70 24 26 50 32 27 1 4 25 96 54 16 90 61 33 67 89 78 83 22 72 6 47
Card 118: 35 25 23 73 66 57 86 21 27 8 | 9 98 50 78 75 99 83 10 70 97 49 85 14 73 46 29 16 5 60 82 15 45 62 37 3
Card 119: 51 84 3 55 90 61 93 18 38 35 | 63 50 60 78 87 74 95 58 26 27 34 11 81 30 28 99 94 89 64 1 96 65 72 56 76
Card 120: 17 74 98 56 54 31 10 26 60 45 | 20 90 98 46 31 15 89 10 94 26 35 69 79 60 58 11 74 77 50 30 64 56 9 45 12
Card 121: 27 43 12 84 96 70 61 19 92 46 | 59 18 91 25 23 97 32 72 4 21 95 93 85 60 81 9 58 30 53 94 90 69 48 89 2
Card 122: 88 85 3 82 19 98 72 38 87 93 | 60 3 31 93 51 81 82 23 69 14 72 21 95 45 76 59 86 53 85 73 19 56 61 39 35
Card 123: 22 6 50 96 91 15 33 7 29 57 | 72 67 62 78 91 96 23 7 17 69 26 29 75 2 57 20 43 74 82 68 56 92 54 66 48
Card 124: 73 15 66 38 69 4 83 45 70 95 | 19 71 6 5 15 17 95 1 34 3 68 70 42 75 12 46 38 8 83 39 2 16 74 79 36
Card 125: 32 86 2 71 72 53 73 67 12 85 | 60 31 70 99 33 45 95 22 79 41 25 3 46 5 20 75 37 55 35 18 36 59 8 63 80
Card 126: 44 96 40 68 25 34 13 72 2 80 | 47 18 77 23 63 80 17 73 3 79 21 15 11 58 54 96 95 62 51 41 75 44 40 24 97
Card 127: 4 34 21 87 85 1 44 72 71 24 | 72 46 83 10 50 77 87 49 91 85 1 42 66 38 54 89 35 86 59 65 71 15 34 4 99
Card 128: 24 86 90 74 48 83 88 13 2 38 | 8 16 10 92 76 44 1 59 34 37 80 52 27 70 66 26 22 43 6 84 30 21 60 77 74
Card 129: 28 71 81 50 31 13 6 63 58 51 | 5 35 62 15 72 47 76 44 32 34 2 14 50 45 77 18 24 81 78 59 48 40 9 7 26
Card 130: 19 68 83 40 64 99 55 45 17 9 | 22 77 99 80 90 13 88 44 57 26 85 81 15 56 30 54 18 95 6 83 51 55 94 93 73
Card 131: 47 44 33 5 59 74 1 21 46 3 | 4 14 87 41 82 63 31 45 47 23 55 94 89 39 86 20 52 66 10 59 48 34 68 21 12
Card 132: 78 15 99 9 40 5 34 75 3 79 | 70 30 80 23 95 66 85 7 43 27 12 83 22 44 21 10 31 14 26 45 68 57 49 94 53
Card 133: 54 14 80 44 33 11 53 69 1 71 | 64 2 56 28 84 76 26 32 92 3 39 47 69 9 6 75 50 99 95 30 35 73 98 13 59
Card 134: 58 85 26 9 2 94 59 23 57 52 | 21 39 80 34 50 27 45 76 16 75 54 92 8 66 53 32 17 74 83 13 1 93 99 88 46
Card 135: 43 81 39 26 61 75 13 40 72 48 | 9 87 61 99 51 81 59 55 19 13 35 74 60 45 39 40 65 33 78 46 26 8 71 7 44
Card 136: 76 86 15 32 6 81 29 16 22 92 | 88 73 92 50 75 79 82 61 86 41 30 69 18 76 45 15 67 16 29 81 93 65 32 14 6
Card 137: 37 65 99 6 61 45 27 86 68 84 | 6 7 61 67 65 33 86 64 59 90 96 54 99 23 85 68 18 55 40 4 10 37 97 77 73
Card 138: 39 80 50 4 53 73 48 54 12 60 | 63 50 72 33 17 11 24 18 54 58 68 7 30 75 22 85 87 40 19 44 69 90 97 43 36
Card 139: 8 86 87 39 58 56 80 34 85 81 | 25 9 2 26 19 61 96 72 36 45 6 21 91 7 34 89 59 56 87 8 49 98 85 74 97
Card 140: 19 21 14 84 81 4 62 24 71 77 | 96 14 77 71 38 24 45 51 40 81 5 19 99 57 48 65 72 4 60 62 41 79 87 49 2
Card 141: 87 32 58 9 88 63 22 71 83 18 | 37 26 51 34 44 22 84 48 58 65 3 62 45 90 60 70 74 81 57 68 18 47 85 73 40
Card 142: 17 56 69 87 23 26 25 32 49 47 | 65 83 15 63 73 30 93 85 45 27 84 14 58 76 38 33 8 94 61 74 37 36 52 41 78
Card 143: 52 86 94 23 28 58 81 71 30 21 | 23 96 75 87 55 50 21 76 9 80 97 69 35 33 27 71 86 94 30 42 84 10 3 14 62
Card 144: 80 8 67 32 42 49 76 93 41 90 | 21 59 34 80 71 37 28 33 9 68 95 31 26 47 73 94 41 13 48 27 96 7 85 17 62
Card 145: 22 13 74 92 75 17 19 48 58 55 | 36 31 20 92 11 76 23 51 71 84 59 88 89 38 1 90 97 46 30 41 77 6 17 64 2
Card 146: 51 81 54 87 95 28 30 44 88 85 | 96 1 35 64 45 97 54 84 4 86 40 49 15 28 19 75 10 2 68 60 66 59 12 18 63
Card 147: 44 45 70 23 71 37 17 59 97 53 | 88 9 26 22 62 68 6 96 77 31 95 50 54 42 14 5 30 24 48 3 67 75 56 49 7
Card 148: 38 54 1 75 6 24 70 82 74 94 | 23 34 92 5 14 83 45 88 81 21 43 78 87 56 63 36 48 4 51 60 42 25 18 2 35
Card 149: 11 87 55 57 8 27 48 67 12 45 | 3 37 54 81 2 15 92 30 5 10 38 98 64 93 99 68 36 50 88 97 35 29 79 46 58
Card 150: 65 89 66 91 37 3 49 19 29 17 | 24 34 69 99 15 58 56 28 90 7 73 75 72 66 77 49 8 17 21 74 84 67 19 29 54
Card 151: 86 4 93 67 52 14 43 99 9 38 | 34 60 72 47 24 76 38 67 48 85 14 43 93 92 49 45 18 25 86 9 31 99 63 41 4
Card 152: 79 39 53 12 11 17 27 51 92 5 | 12 79 51 75 92 2 56 39 81 67 17 5 53 55 72 48 60 11 18 27 98 77 6 66 86
Card 153: 22 95 26 5 32 14 7 66 8 35 | 60 32 96 25 8 57 73 95 74 27 66 26 7 1 14 5 12 34 21 35 22 87 77 24 85
Card 154: 79 4 94 63 9 96 21 86 59 46 | 52 76 55 94 57 74 46 15 38 83 32 4 9 73 62 43 36 98 89 18 96 45 79 25 35
Card 155: 53 58 97 98 67 5 8 46 31 54 | 76 5 46 80 30 54 31 33 51 97 47 67 8 83 10 58 60 73 98 71 62 82 48 95 77
Card 156: 3 1 23 18 71 21 8 79 84 2 | 59 8 18 87 29 14 46 99 61 90 66 21 68 62 2 86 31 88 23 74 38 10 73 7 84
Card 157: 24 3 22 90 56 15 78 61 1 81 | 33 70 73 5 71 93 30 67 53 18 62 7 19 85 47 65 43 82 69 75 57 46 44 99 50
Card 158: 2 8 21 71 24 82 47 53 11 25 | 27 25 35 20 3 53 73 96 38 7 65 89 16 78 97 85 74 18 56 49 32 88 59 42 33
Card 159: 69 81 74 51 35 90 33 58 97 22 | 89 45 91 1 77 10 72 35 31 42 28 71 97 80 87 22 64 33 95 3 68 56 69 82 67
Card 160: 99 34 53 3 6 48 93 1 42 13 | 50 35 79 89 26 5 91 10 57 63 30 72 64 17 37 40 90 88 78 18 25 95 67 58 14
Card 161: 41 39 34 75 50 52 94 71 82 13 | 26 8 87 95 20 91 49 96 65 36 51 24 46 69 83 52 47 41 79 11 50 73 89 70 44
Card 162: 48 87 68 57 81 52 49 60 28 15 | 92 11 94 54 45 39 7 84 93 67 42 64 26 90 6 79 4 3 23 96 41 37 97 24 50
Card 163: 67 41 11 38 81 56 45 4 76 70 | 32 87 62 51 58 27 91 37 29 90 22 43 77 97 35 46 93 88 23 31 99 21 79 18 47
Card 164: 2 79 35 21 96 29 22 10 69 99 | 47 91 17 60 20 31 37 81 53 84 16 77 4 46 75 26 78 93 32 76 52 8 27 59 10
Card 165: 32 37 54 95 66 64 59 19 28 44 | 96 49 3 75 94 63 98 65 4 7 2 73 50 24 78 31 21 42 82 25 70 79 35 38 1
Card 166: 24 61 72 44 27 38 81 59 69 89 | 85 29 98 3 73 63 25 1 16 96 57 8 78 92 82 20 79 94 71 62 2 49 97 93 99
Card 167: 55 22 60 95 80 25 28 56 69 18 | 22 38 29 46 90 41 59 93 94 57 74 43 97 49 27 34 19 64 55 81 33 37 13 15 89
Card 168: 90 51 39 37 67 12 65 14 6 4 | 64 70 6 37 25 26 4 48 43 91 28 90 27 41 87 74 14 39 56 51 9 67 12 65 34
Card 169: 57 11 25 88 28 82 60 95 27 26 | 42 82 35 47 87 14 11 88 63 96 65 43 95 25 99 5 26 20 28 57 60 40 76 27 7
Card 170: 31 34 19 29 1 55 20 61 10 94 | 48 77 3 87 91 37 38 57 75 53 12 60 76 45 4 68 13 73 35 7 30 20 6 14 69
Card 171: 67 10 59 89 52 53 40 17 64 29 | 88 27 59 1 75 10 95 67 34 40 83 4 82 64 2 52 89 29 53 33 8 71 91 85 17
Card 172: 87 63 66 32 37 96 3 29 88 90 | 96 18 87 17 14 69 58 65 52 31 1 44 37 60 5 32 41 90 7 49 29 66 35 77 82
Card 173: 70 84 52 81 63 32 61 94 38 97 | 24 34 63 52 81 99 8 57 66 50 94 84 70 38 61 86 15 32 47 78 45 77 95 76 97
Card 174: 4 74 29 30 24 87 91 92 5 2 | 55 86 5 70 12 94 96 89 58 29 14 62 4 99 48 81 91 45 27 54 31 22 68 43 76
Card 175: 91 78 3 20 86 98 89 82 13 57 | 24 76 59 66 73 1 5 82 45 6 92 3 33 43 17 83 12 14 91 71 19 46 54 96 25
Card 176: 12 55 93 3 43 81 28 59 72 76 | 4 90 55 84 69 74 46 45 65 17 26 71 70 21 29 23 61 99 92 44 40 41 51 8 57
Card 177: 56 5 89 93 62 17 2 6 50 40 | 35 60 5 47 76 92 15 2 34 28 69 29 19 9 27 49 1 88 57 48 84 8 26 59 91
Card 178: 1 93 34 57 67 58 84 37 42 91 | 42 69 41 34 91 28 75 70 1 93 4 49 66 6 37 38 32 89 46 44 62 81 9 22 73
Card 179: 90 95 7 29 42 51 22 39 84 75 | 75 25 80 96 55 41 73 43 26 42 46 7 86 22 84 1 39 50 90 12 3 29 51 95 81
Card 180: 72 76 4 68 9 41 16 44 61 13 | 63 92 39 68 5 13 11 65 50 25 76 55 71 29 82 31 53 59 2 99 74 16 1 90 41
Card 181: 29 63 61 82 33 94 51 32 50 84 | 80 85 7 8 54 30 87 56 90 75 69 60 25 43 53 47 72 81 1 59 97 28 52 46 10
Card 182: 98 45 44 32 19 6 51 49 64 84 | 64 20 90 6 4 54 19 80 51 72 69 99 29 44 45 46 84 65 43 53 74 23 42 66 49
Card 183: 23 35 4 50 88 87 38 7 19 2 | 76 79 80 5 66 30 74 29 37 94 11 50 1 67 13 27 90 40 70 91 71 12 81 9 33
Card 184: 55 74 2 73 75 22 32 71 67 27 | 92 19 9 24 74 73 8 67 30 18 14 71 77 45 85 72 15 69 13 27 94 63 98 40 93
Card 185: 14 73 72 38 16 40 83 28 37 96 | 19 74 49 96 90 48 26 1 95 54 3 82 50 41 43 64 69 80 77 97 52 16 23 25 31
Card 186: 24 91 35 21 16 71 94 95 25 53 | 60 5 17 58 82 35 45 80 28 16 13 53 68 97 86 8 52 61 65 1 27 67 91 43 3
Card 187: 96 39 77 52 97 33 80 99 18 15 | 48 8 85 79 81 33 43 90 62 14 36 65 2 32 82 15 91 23 34 68 56 87 11 57 73
Card 188: 8 35 86 95 94 65 26 11 96 31 | 2 98 50 33 59 93 28 49 87 29 79 8 23 6 54 16 82 96 83 61 27 60 53 62 30
Card 189: 60 27 78 55 84 1 36 28 20 77 | 45 85 75 8 54 74 58 73 17 68 13 53 47 79 7 65 35 40 51 87 18 37 71 72 21
Card 190: 41 31 39 33 54 42 71 47 59 24 | 21 96 85 12 81 83 64 87 93 77 92 38 25 52 20 88 65 10 29 16 95 98 22 37 15

44
Day5/Part1.js Normal file
View File

@ -0,0 +1,44 @@
import { readFileSync } from "fs";
const t0 = performance.now();
const categories = readFileSync("input.txt").toString().split("\n\n");
const seeds = categories[0]
.split(" ")
.slice(1)
.map((e) => parseInt(e));
const dictionaries = categories.slice(1).map((e) => {
const splits = e.split("\n").filter((e) => e.length > 0);
const name = splits[0].replace(" map:", "");
const maps = splits.slice(1).map((a) =>
a
.split(" ")
.filter((b) => b.length > 0)
.map((c) => parseInt(c))
);
const filter = (j) => maps.reduce((a, i) => [...a, i[j]], []);
return {
name,
ranges: {
destination: filter(0),
source: filter(1),
length: filter(2),
},
};
});
const locations = seeds.map((e) =>
dictionaries.reduce((a, i, j) => {
const current = j === 0 ? e : a;
return (
i.ranges.source.reduce((b, p, k) => {
const next = current - p;
const inRange = next >= 0 && next <= i.ranges.length[k];
return inRange ? i.ranges.destination[k] + next : b;
}, null) ?? current
);
}, 0)
);
const closest = locations.reduce((a, i) => Math.min(a, i));
console.log(closest);
const t1 = performance.now();
console.log(`Runtime: ${t1 - t0}ms`);

183
Day5/input.txt Normal file
View File

@ -0,0 +1,183 @@
seeds: 629551616 310303897 265998072 58091853 3217788227 563748665 2286940694 820803307 1966060902 108698829 190045874 3206262 4045963015 223661537 1544688274 293696584 1038807941 31756878 1224711373 133647424
seed-to-soil map:
3809825462 2725979505 339457863
3359244708 2085610478 450580754
652041572 2536191232 189788273
841829845 3346349446 343599367
1408035723 73701258 732851393
2140887116 3689948813 88205018
0 3778153831 371129494
2953980724 0 73701258
3027681982 1754047752 331562726
2229092134 1029159162 724888590
1185429212 806552651 222606511
371129494 3065437368 280912078
soil-to-fertilizer map:
201390752 0 263005475
772560454 263005475 186665885
3597849741 3228095269 216867970
959226339 951560560 85171934
2882237029 3813801625 34286208
0 586356609 16090261
1460387186 1189054013 136970257
2511361703 2581174071 147006778
201110502 1477157137 280250
3582774663 3444963239 15075078
2073881675 2245158204 30510333
3127914126 3163440286 64654983
1724767985 602446870 349113690
1597357443 1036732494 127410542
1044398273 1164143036 24910977
635875205 449671360 136685249
2916523237 2728180849 211390889
1069309250 1854080268 391077936
167223128 1820192894 33887374
4168481019 2454687794 126486277
3496254979 4048626015 86519684
2454687794 4238293387 56673909
2104392008 1648916365 171276529
3814717711 3460038317 353763308
464396227 1477437387 171478978
2658368481 2939571738 223868548
16090261 1326024270 151132867
3393107291 4135145699 103147688
3192569109 3848087833 200538182
fertilizer-to-water map:
357701033 441924316 54941059
2047098412 1574732688 106451110
2414997091 2961420861 217583761
3647103220 3202843177 147888878
1781607871 3397471081 265490541
433955285 629676938 29320532
3280739425 2494455782 366363795
2818710889 1426835569 147897119
1120892574 3179004622 23838555
1539573533 3662961622 195295312
3794992098 1820059317 63264836
0 84223283 357701033
1144731129 1702496991 117562326
2153549522 2046878176 261447569
593734757 726830618 239035306
987137385 83279657 943626
2966608008 0 83279657
1734868845 3350732055 46739026
1438972249 2860819577 100601284
2632580852 2308325745 186130037
1262293455 965865924 108845646
412642092 1681183798 21313193
472462518 1305563330 121272239
988081011 496865375 132811563
463275817 2037691475 9186701
3049887665 1074711570 230851760
832770063 1883324153 154367322
1371139101 658997470 67833148
water-to-light map:
4062286509 3839153068 91029970
1610728246 3827168971 11474903
2753947407 2725849236 1101319735
2525484879 1829977386 228462528
657837215 1095779595 241604827
1895347620 1337384422 492592964
1425623249 4009599599 185104997
2446068318 3930183038 79416561
1894838426 3838643874 509194
2389619503 896001044 56448815
3855267142 2058439914 207019367
1187459420 657837215 238163829
1622203149 2467395620 172372577
2387940584 952449859 1678919
985523081 2265459281 201936339
4153316479 954128778 141650817
1794575726 4194704596 100262700
899442042 2688664470 37184766
936626808 2639768197 48896273
light-to-temperature map:
0 2682471120 43545350
2829609407 2423668531 227914183
3685065657 3821208881 65673550
1319277847 0 33132672
818263707 3091863377 5216721
3144636417 670795080 1340457
1352410519 895535914 570572224
2709351136 1662268878 120258271
115643652 2726016470 93054822
455333494 1538206440 124062438
3839611769 4030334543 30664857
3750739207 4258515305 36451991
2070721515 33132672 155555065
3132740473 2067641423 5192544
4147162986 3685065657 58311172
4278703737 3743376829 16263559
1070098598 2174489282 249179249
716608392 2072833967 101655315
43545350 1466108138 72098302
3057523590 3016646494 75216883
2700979566 887164344 8371570
4205474158 4060999400 73229579
2226276580 188687737 474702986
1971879519 1968799427 98841996
3931845119 4134228979 124286326
579395932 2819071292 137212460
3137933017 672135537 6703400
1062694241 663390723 7404357
3787191198 3886882431 52420571
269061216 1782527149 186272278
1031805835 2651582714 30888406
823480428 678838937 208325407
3870276626 3759640388 61568493
4056131445 3939303002 91031541
1922982743 3097080098 48896776
208698474 2956283752 60362742
temperature-to-humidity map:
219529182 731674447 232727899
2748076784 2771987989 46463882
2514344851 4061235363 233731933
0 1369964423 219529182
452257081 362359049 21789881
4243457964 2720478657 51509332
3085663754 3109574959 64704581
1639319644 384148930 347525517
3150368335 3626166922 251414834
1986845161 0 139120377
1382707786 1339581093 30383330
1413091116 1113352565 226228528
2794540666 2818451871 291123088
2125965538 338187591 24171458
474046962 139120377 157229612
2361125570 1100881680 12470885
631276574 296349989 41837602
3401783169 3428035243 198131679
3989702261 3174279540 253755703
2224646236 964402346 136479334
2150136996 2299087215 74509240
3806048654 3877581756 183653607
3599914848 2514344851 206133806
673114176 1589493605 709593610
humidity-to-location map:
4029426902 1202474782 191291587
2764446301 708692227 493782555
2188304413 3350514524 33021460
3318755823 4213528230 67155117
2000392671 620732246 87959981
3754724301 3075811923 274702601
3258228856 1393766369 60526967
2088352652 4113576469 99951761
363515622 1849258760 614077493
1213242541 342257124 11129119
1733046668 353386243 267346003
1224371660 4280683347 14283949
2577070088 2888435710 187376213
4220718489 2832149614 56286096
324294413 1810037551 39221209
3385910940 2463336253 368813361
977593115 3383535984 235649426
1238655609 3619185410 494391059
4277004585 324294413 17962711
2221325873 1454293336 355744215