├── day1
├── .gitignore
├── input
│ ├── part1.sample.txt
│ ├── part2.sample.txt
│ └── part1.txt
├── Cargo.toml
├── Cargo.lock
└── src
│ └── bin
│ ├── part1.rs
│ └── part2.rs
├── day2
├── go.mod
├── part1.example.txt
├── part2.example.txt
├── main.go
├── part1.txt
└── part2.txt
├── day7
├── gradle.properties
├── .idea
│ ├── .gitignore
│ ├── codeStyles
│ │ ├── codeStyleConfig.xml
│ │ └── Project.xml
│ ├── kotlinc.xml
│ ├── vcs.xml
│ ├── misc.xml
│ └── gradle.xml
├── src
│ ├── input
│ │ ├── example.txt
│ │ └── input.txt
│ └── main
│ │ └── kotlin
│ │ ├── Main.kt
│ │ ├── Utils.kt
│ │ ├── part1
│ │ └── Part1.kt
│ │ └── part2
│ │ └── Part2.kt
├── gradle
│ └── wrapper
│ │ ├── gradle-wrapper.jar
│ │ └── gradle-wrapper.properties
├── settings.gradle.kts
├── build.gradle.kts
├── .gitignore
├── gradlew.bat
└── gradlew
├── day8
├── settings.gradle
├── .idea
│ ├── .gitignore
│ ├── vcs.xml
│ ├── misc.xml
│ └── gradle.xml
├── src
│ ├── input
│ │ ├── example2.txt
│ │ ├── example.txt
│ │ ├── example.part2.txt
│ │ └── input.txt
│ └── main
│ │ └── java
│ │ └── com
│ │ └── kriticalflare
│ │ ├── Main.java
│ │ ├── Part1.java
│ │ └── Part2.java
├── gradle
│ └── wrapper
│ │ ├── gradle-wrapper.jar
│ │ └── gradle-wrapper.properties
├── build.gradle
├── .gitignore
├── gradlew.bat
└── gradlew
├── day6
├── example.txt
├── input.txt
├── part2.bruteforce.py
├── part1.bruteforce.py
├── part2.py
└── part1.py
├── day3
├── example.txt
├── package.json
├── part1.js
├── part2.js
└── input.txt
├── day4
├── example.txt
├── part1.lua
├── part2.lua
└── input.txt
├── README.md
└── day5
├── example.txt
├── part1.dart
└── input.txt
/day1/.gitignore:
--------------------------------------------------------------------------------
1 | /target
--------------------------------------------------------------------------------
/day2/go.mod:
--------------------------------------------------------------------------------
1 | module aoc23.day2
2 |
3 | go 1.21.2
4 |
--------------------------------------------------------------------------------
/day7/gradle.properties:
--------------------------------------------------------------------------------
1 | kotlin.code.style=official
2 |
--------------------------------------------------------------------------------
/day8/settings.gradle:
--------------------------------------------------------------------------------
1 | rootProject.name = 'day8'
2 |
3 |
--------------------------------------------------------------------------------
/day6/example.txt:
--------------------------------------------------------------------------------
1 | Time: 7 15 30
2 | Distance: 9 40 200
--------------------------------------------------------------------------------
/day1/input/part1.sample.txt:
--------------------------------------------------------------------------------
1 | 1abc2
2 | pqr3stu8vwx
3 | a1b2c3d4e5f
4 | treb7uchet
--------------------------------------------------------------------------------
/day7/.idea/.gitignore:
--------------------------------------------------------------------------------
1 | # Default ignored files
2 | /shelf/
3 | /workspace.xml
4 |
--------------------------------------------------------------------------------
/day8/.idea/.gitignore:
--------------------------------------------------------------------------------
1 | # Default ignored files
2 | /shelf/
3 | /workspace.xml
4 |
--------------------------------------------------------------------------------
/day7/src/input/example.txt:
--------------------------------------------------------------------------------
1 | 32T3K 765
2 | T55J5 684
3 | KK677 28
4 | KTJJT 220
5 | QQQJA 483
--------------------------------------------------------------------------------
/day6/input.txt:
--------------------------------------------------------------------------------
1 | Time: 60 94 78 82
2 | Distance: 475 2138 1015 1650
3 |
--------------------------------------------------------------------------------
/day8/src/input/example2.txt:
--------------------------------------------------------------------------------
1 | LLR
2 |
3 | AAA = (BBB, BBB)
4 | BBB = (AAA, ZZZ)
5 | ZZZ = (ZZZ, ZZZ)
--------------------------------------------------------------------------------
/day7/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kriticalflare/aoc-23/master/day7/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/day8/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kriticalflare/aoc-23/master/day8/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/day1/input/part2.sample.txt:
--------------------------------------------------------------------------------
1 | two1nine
2 | eightwothree
3 | abcone2threexyz
4 | xtwone3four
5 | 4nineeightseven2
6 | zoneight234
7 | 7pqrstsixteen
8 | twone
--------------------------------------------------------------------------------
/day7/settings.gradle.kts:
--------------------------------------------------------------------------------
1 | plugins {
2 | id("org.gradle.toolchains.foojay-resolver-convention") version "0.5.0"
3 | }
4 | rootProject.name = "day7"
5 |
6 |
--------------------------------------------------------------------------------
/day3/example.txt:
--------------------------------------------------------------------------------
1 | 467..114..
2 | ...*......
3 | ..35..633.
4 | ......#...
5 | 617*......
6 | .....+.58.
7 | ..592.....
8 | ......755.
9 | ...$.*....
10 | .664.598..
--------------------------------------------------------------------------------
/day8/src/input/example.txt:
--------------------------------------------------------------------------------
1 | RL
2 |
3 | AAA = (BBB, CCC)
4 | BBB = (DDD, EEE)
5 | CCC = (ZZZ, GGG)
6 | DDD = (DDD, DDD)
7 | EEE = (EEE, EEE)
8 | GGG = (GGG, GGG)
9 | ZZZ = (ZZZ, ZZZ)
--------------------------------------------------------------------------------
/day7/.idea/codeStyles/codeStyleConfig.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/day7/.idea/kotlinc.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/day8/src/input/example.part2.txt:
--------------------------------------------------------------------------------
1 | LR
2 |
3 | 11A = (11B, XXX)
4 | 11B = (XXX, 11Z)
5 | 11Z = (11B, XXX)
6 | 22A = (22B, XXX)
7 | 22B = (22C, 22C)
8 | 22C = (22Z, 22Z)
9 | 22Z = (22B, 22B)
10 | XXX = (XXX, XXX)
--------------------------------------------------------------------------------
/day7/.idea/vcs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/day8/.idea/vcs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/day3/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "day3",
3 | "version": "1.0.0",
4 | "description": "",
5 | "main": "index.js",
6 | "scripts": {
7 | "test": "echo \"Error: no test specified\" && exit 1"
8 | },
9 | "keywords": [],
10 | "author": "",
11 | "license": "ISC"
12 | }
13 |
--------------------------------------------------------------------------------
/day7/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | #Sat Dec 09 15:59:04 IST 2023
2 | distributionBase=GRADLE_USER_HOME
3 | distributionPath=wrapper/dists
4 | distributionUrl=https\://services.gradle.org/distributions/gradle-8.5-bin.zip
5 | zipStoreBase=GRADLE_USER_HOME
6 | zipStorePath=wrapper/dists
7 |
--------------------------------------------------------------------------------
/day8/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | #Sat Dec 09 20:55:33 IST 2023
2 | distributionBase=GRADLE_USER_HOME
3 | distributionPath=wrapper/dists
4 | distributionUrl=https\://services.gradle.org/distributions/gradle-8.5-bin.zip
5 | zipStoreBase=GRADLE_USER_HOME
6 | zipStorePath=wrapper/dists
7 |
--------------------------------------------------------------------------------
/day4/example.txt:
--------------------------------------------------------------------------------
1 | Card 1: 41 48 83 86 17 | 83 86 6 31 17 9 48 53
2 | Card 2: 13 32 20 16 61 | 61 30 68 82 17 32 24 19
3 | Card 3: 1 21 53 59 44 | 69 82 63 72 16 21 14 1
4 | Card 4: 41 92 73 84 69 | 59 84 76 51 58 5 54 83
5 | Card 5: 87 83 26 28 32 | 88 30 70 12 93 22 82 36
6 | Card 6: 31 18 13 56 72 | 74 77 10 23 35 67 36 11
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Advent of Code Solutions 2023
2 |
3 | ## Table of Contents
4 |
5 | - [Day 1 - Rust](./day1)
6 | - [Day 2 - Golang](./day2)
7 | - [Day 3 - JavaScript](./day3)
8 | - [Day 4 - Lua](./day4)
9 | - [Day 5 - Dart](./day5)
10 | - [Day 6 - Python](./day6)
11 | - [Day 7 - Kotlin](./day7)
12 | - [Day 8 - Java](./day8)
13 |
--------------------------------------------------------------------------------
/day1/Cargo.toml:
--------------------------------------------------------------------------------
1 | [package]
2 | name = "day1"
3 | version = "0.1.0"
4 | edition = "2021"
5 |
6 | [[bin]]
7 | name = "part1"
8 | path = "src/bin/part1.rs"
9 |
10 | # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
11 |
12 | [dependencies]
13 | anyhow = "1.0"
14 | peekmore = "1.3.0"
15 |
--------------------------------------------------------------------------------
/day2/part1.example.txt:
--------------------------------------------------------------------------------
1 | Game 1: 3 blue, 4 red; 1 red, 2 green, 6 blue; 2 green
2 | Game 2: 1 blue, 2 green; 3 green, 4 blue, 1 red; 1 green, 1 blue
3 | Game 3: 8 green, 6 blue, 20 red; 5 blue, 4 red, 13 green; 5 green, 1 red
4 | Game 4: 1 green, 3 red, 6 blue; 3 green, 6 red; 3 green, 15 blue, 14 red
5 | Game 5: 6 red, 1 blue, 3 green; 2 blue, 1 red, 2 green
--------------------------------------------------------------------------------
/day2/part2.example.txt:
--------------------------------------------------------------------------------
1 | Game 1: 3 blue, 4 red; 1 red, 2 green, 6 blue; 2 green
2 | Game 2: 1 blue, 2 green; 3 green, 4 blue, 1 red; 1 green, 1 blue
3 | Game 3: 8 green, 6 blue, 20 red; 5 blue, 4 red, 13 green; 5 green, 1 red
4 | Game 4: 1 green, 3 red, 6 blue; 3 green, 6 red; 3 green, 15 blue, 14 red
5 | Game 5: 6 red, 1 blue, 3 green; 2 blue, 1 red, 2 green
--------------------------------------------------------------------------------
/day8/build.gradle:
--------------------------------------------------------------------------------
1 | plugins {
2 | id 'java'
3 | }
4 |
5 | group = 'com.kriticalflare'
6 | version = '1.0-SNAPSHOT'
7 |
8 | repositories {
9 | mavenCentral()
10 | }
11 |
12 | dependencies {
13 | testImplementation platform('org.junit:junit-bom:5.9.1')
14 | testImplementation 'org.junit.jupiter:junit-jupiter'
15 | }
16 |
17 | test {
18 | useJUnitPlatform()
19 | }
--------------------------------------------------------------------------------
/day7/.idea/misc.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/day8/.idea/misc.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/day7/build.gradle.kts:
--------------------------------------------------------------------------------
1 | plugins {
2 | kotlin("jvm") version "1.9.21"
3 | }
4 |
5 | group = "com.kriticalflare"
6 | version = "1.0-SNAPSHOT"
7 |
8 | repositories {
9 | mavenCentral()
10 | }
11 |
12 | dependencies {
13 | testImplementation("org.jetbrains.kotlin:kotlin-test")
14 | }
15 |
16 | tasks.test {
17 | useJUnitPlatform()
18 | }
19 | kotlin {
20 | jvmToolchain(21)
21 | }
--------------------------------------------------------------------------------
/day7/.idea/codeStyles/Project.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/day5/example.txt:
--------------------------------------------------------------------------------
1 | seeds: 79 14 55 13
2 |
3 | seed-to-soil map:
4 | 50 98 2
5 | 52 50 48
6 |
7 | soil-to-fertilizer map:
8 | 0 15 37
9 | 37 52 2
10 | 39 0 15
11 |
12 | fertilizer-to-water map:
13 | 49 53 8
14 | 0 11 42
15 | 42 0 7
16 | 57 7 4
17 |
18 | water-to-light map:
19 | 88 18 7
20 | 18 25 70
21 |
22 | light-to-temperature map:
23 | 45 77 23
24 | 81 45 19
25 | 68 64 13
26 |
27 | temperature-to-humidity map:
28 | 0 69 1
29 | 1 0 69
30 |
31 | humidity-to-location map:
32 | 60 56 37
33 | 56 93 4
--------------------------------------------------------------------------------
/day7/src/main/kotlin/Main.kt:
--------------------------------------------------------------------------------
1 | package com.kriticalflare
2 |
3 | import com.kriticalflare.part1.SolvePart1
4 | import com.kriticalflare.part2.SolvePart2
5 |
6 | //TIP Press twice to open the Search Everywhere dialog and type show whitespaces,
7 | // then press . You can now see whitespace characters in your code.
8 | fun main() {
9 | println("Part1 example ${SolvePart1("example")}")
10 | println("Part1 input ${SolvePart1("input")}")
11 |
12 | println("Part2 example ${SolvePart2("example")}")
13 | println("Part2 input ${SolvePart2("input")}")
14 | }
--------------------------------------------------------------------------------
/day7/src/main/kotlin/Utils.kt:
--------------------------------------------------------------------------------
1 | package com.kriticalflare
2 |
3 | import java.io.File
4 | import java.math.BigInteger
5 | import java.security.MessageDigest
6 |
7 | /**
8 | * Reads lines from the given input txt file.
9 | */
10 | fun readInput(name: String) = File("src/input", "$name.txt").readLines()
11 |
12 | /**
13 | * Read Integers
14 | */
15 | fun readInt(name: String) = File("src/input", "$name.txt").readLines().map { it.toInt() }
16 |
17 | /**
18 | * Converts string to md5 hash.
19 | */
20 | fun String.md5(): String = BigInteger(1, MessageDigest.getInstance("MD5").digest(toByteArray())).toString(16)
--------------------------------------------------------------------------------
/day7/.idea/gradle.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
16 |
17 |
--------------------------------------------------------------------------------
/day8/.idea/gradle.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/day1/Cargo.lock:
--------------------------------------------------------------------------------
1 | # This file is automatically @generated by Cargo.
2 | # It is not intended for manual editing.
3 | version = 3
4 |
5 | [[package]]
6 | name = "anyhow"
7 | version = "1.0.75"
8 | source = "registry+https://github.com/rust-lang/crates.io-index"
9 | checksum = "a4668cab20f66d8d020e1fbc0ebe47217433c1b6c8f2040faf858554e394ace6"
10 |
11 | [[package]]
12 | name = "day1"
13 | version = "0.1.0"
14 | dependencies = [
15 | "anyhow",
16 | "peekmore",
17 | ]
18 |
19 | [[package]]
20 | name = "peekmore"
21 | version = "1.3.0"
22 | source = "registry+https://github.com/rust-lang/crates.io-index"
23 | checksum = "9163e1259760e83d528d1b3171e5100c1767f10c52e1c4d6afad26e63d47d758"
24 |
--------------------------------------------------------------------------------
/day7/.gitignore:
--------------------------------------------------------------------------------
1 | .gradle
2 | build/
3 | !gradle/wrapper/gradle-wrapper.jar
4 | !**/src/main/**/build/
5 | !**/src/test/**/build/
6 |
7 | ### IntelliJ IDEA ###
8 | .idea/modules.xml
9 | .idea/jarRepositories.xml
10 | .idea/compiler.xml
11 | .idea/libraries/
12 | *.iws
13 | *.iml
14 | *.ipr
15 | out/
16 | !**/src/main/**/out/
17 | !**/src/test/**/out/
18 |
19 | ### Eclipse ###
20 | .apt_generated
21 | .classpath
22 | .factorypath
23 | .project
24 | .settings
25 | .springBeans
26 | .sts4-cache
27 | bin/
28 | !**/src/main/**/bin/
29 | !**/src/test/**/bin/
30 |
31 | ### NetBeans ###
32 | /nbproject/private/
33 | /nbbuild/
34 | /dist/
35 | /nbdist/
36 | /.nb-gradle/
37 |
38 | ### VS Code ###
39 | .vscode/
40 |
41 | ### Mac OS ###
42 | .DS_Store
--------------------------------------------------------------------------------
/day8/.gitignore:
--------------------------------------------------------------------------------
1 | .gradle
2 | build/
3 | !gradle/wrapper/gradle-wrapper.jar
4 | !**/src/main/**/build/
5 | !**/src/test/**/build/
6 |
7 | ### IntelliJ IDEA ###
8 | .idea/modules.xml
9 | .idea/jarRepositories.xml
10 | .idea/compiler.xml
11 | .idea/libraries/
12 | *.iws
13 | *.iml
14 | *.ipr
15 | out/
16 | !**/src/main/**/out/
17 | !**/src/test/**/out/
18 |
19 | ### Eclipse ###
20 | .apt_generated
21 | .classpath
22 | .factorypath
23 | .project
24 | .settings
25 | .springBeans
26 | .sts4-cache
27 | bin/
28 | !**/src/main/**/bin/
29 | !**/src/test/**/bin/
30 |
31 | ### NetBeans ###
32 | /nbproject/private/
33 | /nbbuild/
34 | /dist/
35 | /nbdist/
36 | /.nb-gradle/
37 |
38 | ### VS Code ###
39 | .vscode/
40 |
41 | ### Mac OS ###
42 | .DS_Store
--------------------------------------------------------------------------------
/day6/part2.bruteforce.py:
--------------------------------------------------------------------------------
1 | def solve(input_path: str):
2 | with open(input_path, "r") as file:
3 | time_input = file.readline()
4 | time_input = time_input.split(":")[1]
5 | time = int("".join(time_input.split()))
6 |
7 | dist_input = file.readline()
8 | dist_input = dist_input.split(":")[1]
9 | target = int("".join(dist_input.split()))
10 |
11 | total_ways = 0
12 | for time_pressed in range(1, time):
13 | distance = time_pressed * (time - time_pressed)
14 | if distance > target:
15 | total_ways = total_ways + 1
16 | return total_ways
17 |
18 |
19 | print(f"Part2 example {solve('example.txt')}")
20 |
21 | print(f"Part2 {solve('input.txt')}")
22 |
--------------------------------------------------------------------------------
/day8/src/main/java/com/kriticalflare/Main.java:
--------------------------------------------------------------------------------
1 | package com.kriticalflare;
2 |
3 |
4 | //TIP To Run code, press or
5 | // click the icon in the gutter.
6 | public class Main {
7 | public static void main(String[] args) {
8 | System.out.printf("Part1 example1 %d\n",Part1.solve("./src/input/example.txt"));
9 | System.out.printf("Part1 example2 %d\n",Part1.solve("./src/input/example2.txt"));
10 | System.out.printf("Part1 input %d\n",Part1.solve("./src/input/input.txt"));
11 | System.out.printf("Part2 example1 %d\n",Part2.solve("./src/input/example.part2.txt"));
12 | System.out.printf("Part2 input %d\n",Part2.solve("./src/input/input.txt"));
13 | }
14 | }
--------------------------------------------------------------------------------
/day6/part1.bruteforce.py:
--------------------------------------------------------------------------------
1 | def solve(input_path: str):
2 | with open(input_path, "r") as file:
3 | time_input = file.readline()
4 | time_input = time_input.split(":")[1]
5 | time_input = time_input.split()
6 | times = list(map(lambda time: int(time), time_input))
7 |
8 | dist_input = file.readline()
9 | dist_input = dist_input.split(":")[1]
10 | dist_input = dist_input.split()
11 | distances = list(map(lambda dist: int(dist), dist_input))
12 |
13 | total_ways = -1
14 | for idx, target in enumerate(distances):
15 | ways = 0
16 | for time_pressed in range(1, times[idx]):
17 | distance = time_pressed * (times[idx] - time_pressed)
18 | if distance > target:
19 | ways = ways + 1
20 | total_ways = total_ways * ways
21 | return total_ways * -1
22 |
23 |
24 | print(f"Part1 example {solve('example.txt')}")
25 |
26 | print(f"Part1 {solve('input.txt')}")
27 |
--------------------------------------------------------------------------------
/day6/part2.py:
--------------------------------------------------------------------------------
1 | import math
2 |
3 |
4 | def discriminant(a, b, c):
5 | return math.sqrt(math.pow(b, 2) - (4 * a * c))
6 |
7 |
8 | def find_roots(a, b, c):
9 | discriminant = b**2 - 4 * a * c
10 |
11 | if discriminant > 0:
12 | root1 = (-b + math.sqrt(discriminant)) / (2 * a)
13 | root2 = (-b - math.sqrt(discriminant)) / (2 * a)
14 | return root1, root2
15 | elif discriminant == 0:
16 | root = -b / (2 * a)
17 | return (root,)
18 | else:
19 | real_part = -b / (2 * a)
20 | imag_part = math.sqrt(abs(discriminant)) / (2 * a)
21 | root1 = complex(real_part, imag_part)
22 | root2 = complex(real_part, -imag_part)
23 | return root1, root2
24 |
25 |
26 | def solve(input_path: str):
27 | with open(input_path, "r") as file:
28 | time_input = file.readline()
29 | time_input = time_input.split(":")[1]
30 | time = int("".join(time_input.split()))
31 |
32 | dist_input = file.readline()
33 | dist_input = dist_input.split(":")[1]
34 | target = int("".join(dist_input.split()))
35 |
36 | (lo, hi) = find_roots(1, -1 * time, target)
37 | ways = abs(math.floor(hi) - math.ceil(lo) + 1)
38 | return ways
39 |
40 |
41 | print(f"Part2 example {solve('example.txt')}")
42 |
43 | print(f"Part2 {solve('input.txt')}")
44 |
--------------------------------------------------------------------------------
/day1/src/bin/part1.rs:
--------------------------------------------------------------------------------
1 | use anyhow::Result;
2 | use std::{
3 | fs::File,
4 | io::{BufRead, BufReader},
5 | path::Path,
6 | };
7 |
8 | fn main() -> Result<()> {
9 | let input_path = Path::new("./input/part1.txt");
10 | let file = File::open(input_path)?;
11 |
12 | let mut reader = BufReader::new(file);
13 | let mut buffer = String::new();
14 |
15 | let mut calibration_sum: u32 = 0;
16 |
17 | while let Ok(len) = reader.read_line(&mut buffer) {
18 | if len == 0 {
19 | break;
20 | }
21 |
22 | let mut first = 0;
23 |
24 | for c in buffer.chars() {
25 | match c.to_digit(10) {
26 | Some(digit) => {
27 | first = digit;
28 | break;
29 | }
30 | None => {}
31 | }
32 | }
33 |
34 | let mut second = 0;
35 |
36 | for c in buffer.chars().rev() {
37 | match c.to_digit(10) {
38 | Some(digit) => {
39 | second = digit;
40 | break;
41 | }
42 | None => {}
43 | }
44 | }
45 |
46 | calibration_sum += first * 10;
47 |
48 | calibration_sum += second;
49 |
50 | buffer.clear();
51 | }
52 |
53 | println!("sum => {calibration_sum}");
54 |
55 | Ok(())
56 | }
57 |
--------------------------------------------------------------------------------
/day6/part1.py:
--------------------------------------------------------------------------------
1 | import math
2 |
3 |
4 | def discriminant(a, b, c):
5 | return math.sqrt(math.pow(b, 2) - (4 * a * c))
6 |
7 |
8 | def find_roots(a, b, c):
9 | discriminant = b**2 - 4 * a * c
10 |
11 | if discriminant > 0:
12 | root1 = (-b + math.sqrt(discriminant)) / (2 * a)
13 | root2 = (-b - math.sqrt(discriminant)) / (2 * a)
14 | return root1, root2
15 | elif discriminant == 0:
16 | root = -b / (2 * a)
17 | return (root,)
18 | else:
19 | real_part = -b / (2 * a)
20 | imag_part = math.sqrt(abs(discriminant)) / (2 * a)
21 | root1 = complex(real_part, imag_part)
22 | root2 = complex(real_part, -imag_part)
23 | return root1, root2
24 |
25 |
26 | def solve(input_path: str):
27 | with open(input_path, "r") as file:
28 | time_input = file.readline()
29 | time_input = time_input.split(":")[1]
30 | time_input = time_input.split()
31 | times = list(map(lambda time: int(time), time_input))
32 |
33 | dist_input = file.readline()
34 | dist_input = dist_input.split(":")[1]
35 | dist_input = dist_input.split()
36 | distances = list(map(lambda dist: int(dist), dist_input))
37 |
38 | total_ways = -1
39 | for idx, target in enumerate(distances):
40 | ways = 0
41 | (lo, hi) = find_roots(1, -1 * times[idx], target)
42 |
43 | ways = abs(math.floor(hi) - math.ceil(lo) + 1)
44 | total_ways = total_ways * ways
45 | return total_ways * -1
46 |
47 |
48 | print(f"Part1 example {solve('example.txt')}")
49 |
50 | print(f"Part1 {solve('input.txt')}")
51 |
--------------------------------------------------------------------------------
/day4/part1.lua:
--------------------------------------------------------------------------------
1 | local function string_split(inputstr, sep)
2 | if sep == nil then
3 | sep = "%s"
4 | end
5 | local t = {}
6 | for str in string.gmatch(inputstr, "([^" .. sep .. "]+)") do
7 | table.insert(t, str)
8 | end
9 | return t
10 | end
11 |
12 |
13 |
14 | local function solve(input_path)
15 | local file, err = io.open(input_path, "r")
16 | if file == nil then
17 | print("error opening file ", err)
18 | return;
19 | end
20 | local total_points = 0
21 | for line in file:lines() do
22 | local points = 0
23 | line = string.gsub(line, "Card%s*([0-9]*)%s*:", "")
24 | local split = string_split(line, "|")
25 | local tickets = split[1]
26 | local winning_tickets = split[2]
27 |
28 | local w_ticks = {}
29 | for w_tick in string.gmatch(winning_tickets, "([^%s*]+)") do
30 | local count = w_ticks[w_tick]
31 | if count ~= nil then
32 | count = count + 1
33 | else
34 | count = 1
35 | end
36 | w_ticks[w_tick] = count
37 | end
38 |
39 | tickets = string_split(tickets, "%s*")
40 |
41 | for _, value in pairs(tickets) do
42 | if w_ticks[value] ~= nil then
43 | if points == 0 then
44 | points = 1
45 | else
46 | points = points * 2
47 | end
48 | end
49 | end
50 | total_points = total_points + points
51 | end
52 | print("answer is ", total_points)
53 | end
54 |
55 |
56 | solve("example.txt")
57 | solve("input.txt")
58 |
--------------------------------------------------------------------------------
/day4/part2.lua:
--------------------------------------------------------------------------------
1 | local function string_split(inputstr, sep)
2 | if sep == nil then
3 | sep = "%s"
4 | end
5 | local t = {}
6 | for str in string.gmatch(inputstr, "([^" .. sep .. "]+)") do
7 | table.insert(t, str)
8 | end
9 | return t
10 | end
11 |
12 |
13 |
14 | local function solve(input_path)
15 | local file, err = io.open(input_path, "r")
16 | if file == nil then
17 | print("error opening file ", err)
18 | return;
19 | end
20 | local scratch_cards = {}
21 | for i = 1, 208, 1 do
22 | scratch_cards[i] = 1
23 | end
24 |
25 | local card_number = 1
26 | for line in file:lines() do
27 | local matches = 0
28 | line = string.gsub(line, "Card%s*([0-9]*)%s*:", "")
29 | local split = string_split(line, "|")
30 | local tickets = split[1]
31 | local winning_tickets = split[2]
32 |
33 | local w_ticks = {}
34 | for w_tick in string.gmatch(winning_tickets, "([^%s*]+)") do
35 | local count = w_ticks[w_tick]
36 | if count ~= nil then
37 | count = count + 1
38 | else
39 | count = 1
40 | end
41 | w_ticks[w_tick] = count
42 | end
43 |
44 | tickets = string_split(tickets, "%s*")
45 |
46 | for _, value in pairs(tickets) do
47 | if w_ticks[value] ~= nil then
48 | matches = matches + 1
49 | end
50 | end
51 |
52 | for mul = 1, scratch_cards[card_number], 1 do
53 | for inc = 1, matches, 1 do
54 | scratch_cards[card_number + inc] = scratch_cards[card_number + inc] + 1
55 | end
56 | end
57 |
58 |
59 | card_number = card_number + 1
60 | end
61 | local won_cards = 0
62 | for card_idx = 1, card_number - 1, 1 do
63 | local cards = scratch_cards[card_idx]
64 | won_cards = won_cards + cards
65 | end
66 | print("answer is ", won_cards)
67 | end
68 |
69 |
70 | solve("example.txt")
71 | solve("input.txt")
72 |
--------------------------------------------------------------------------------
/day3/part1.js:
--------------------------------------------------------------------------------
1 | const fsp = require("fs").promises;
2 |
3 | const solve = async (inputPath) => {
4 | const input = await fsp.readFile(inputPath, "utf-8");
5 | const partNumbers = [];
6 | let grid = input.split("\n");
7 | let gridCols = grid[0].length;
8 | let gridRows = grid.length;
9 | for (const [row, line] of grid.entries()) {
10 | const num = [];
11 | let start = -1;
12 | for (let col = 0; col < line.length; col++) {
13 | const char = line[col];
14 | if (Number.isInteger(parseInt(char))) {
15 | if (num.length == 0) {
16 | start = col;
17 | }
18 | num.push(char);
19 | } else {
20 | if (num.length > 0) {
21 | partNumbers.push({
22 | number: parseInt(num.join("")),
23 | row,
24 | start,
25 | end: col - 1,
26 | });
27 | num.length = 0;
28 | start = -1;
29 | }
30 | }
31 | }
32 |
33 | if (num.length > 0) {
34 | partNumbers.push({
35 | number: parseInt(num.join("")),
36 | row,
37 | start,
38 | end: line.length - 1,
39 | });
40 | num.length = 0;
41 | start = -1;
42 | }
43 | }
44 |
45 | const enginePartNumbers = [];
46 |
47 | const directions = [
48 | [-1, -1], // tl
49 | [0, -1], // tt
50 | [1, -1], // tr
51 | [-1, 0], // ml
52 | [1, 0], // mr
53 | [1, 1], // br
54 | [0, 1], // bm
55 | [-1, 1], // bl
56 | ];
57 |
58 | for (const part of partNumbers) {
59 | let enginePart = false;
60 | for (let i = part.start; i <= part.end; i++) {
61 | for (const [x, y] of directions) {
62 | const cX = i + x;
63 | const cY = part.row + y;
64 | if (cX >= 0 && cX < gridCols && cY >= 0 && cY < gridRows) {
65 | let ele = grid[cY][cX];
66 | if (Number.isNaN(parseInt(ele)) && ele != ".") {
67 | enginePart = true;
68 | }
69 | }
70 | }
71 | }
72 | if (enginePart) {
73 | enginePartNumbers.push(part.number);
74 | }
75 | }
76 |
77 | const enginePartSum = enginePartNumbers.reduce((acc, curr) => acc + curr, 0);
78 | return enginePartSum;
79 | };
80 |
81 | const main = async () => {
82 | console.log(await solve("./example.txt"));
83 | console.log(await solve("./input.txt"));
84 | };
85 |
86 | main();
87 |
--------------------------------------------------------------------------------
/day7/src/main/kotlin/part1/Part1.kt:
--------------------------------------------------------------------------------
1 | package com.kriticalflare.part1
2 |
3 | import com.kriticalflare.readInput
4 |
5 |
6 | val CardTypes: HashMap = hashMapOf(
7 | 'A' to 14, 'K' to 13, 'Q' to 12 , 'J' to 11,
8 | 'T' to 10, '9' to 9, '8' to 8, '7' to 7,
9 | '6' to 6, '5' to 5 , '4' to 4, '3' to 3, '2' to 2
10 | )
11 |
12 | enum class HandType(val strength: Int) {
13 | FiveOfaKind(strength = 6), // where all five cards have the same label: AAAAA
14 | FourOfaKind(strength = 5), // where four cards have the same label and one card has a different label: AA8AA
15 | FullHouse(strength = 4), // where three cards have the same label, and the remaining two cards share a different label: 23332
16 | ThreeOfaKind(strength = 3), // where three cards have the same label, and the remaining two cards are each different from any other card in the hand: TTT98
17 | TwoPair(strength = 2), //where two cards share one label, two other cards share a second label, and the remaining card has a third label: 23432
18 | OnePair(strength = 1), // where two cards share one label, and the other three cards have a different label from the pair and each other: A23A4
19 | HighCard(strength = 0), // where all cards' labels are distinct: 23456
20 | }
21 |
22 | fun getCard(input: String): Hand {
23 | val bid = input.split(" ").last().toInt()
24 | val cards = input.split(" ").first().groupingBy { it }.eachCount()
25 | when (cards.keys.count()) {
26 | 1 -> {
27 | return Hand(hand = input, kind = HandType.FiveOfaKind, bid)
28 | }
29 |
30 | 2 -> {
31 | return if(cards.values.any{ it == 4}) {
32 | Hand(hand = input, kind = HandType.FourOfaKind, bid)
33 | } else {
34 | Hand(hand = input, kind = HandType.FullHouse, bid)
35 | }
36 | }
37 |
38 | 3 -> {
39 | return if(cards.values.any{ it == 3}) {
40 | Hand(hand = input, kind = HandType.ThreeOfaKind, bid)
41 | } else {
42 | Hand(hand = input, kind = HandType.TwoPair, bid)
43 | }
44 | }
45 |
46 | 4 -> {
47 | return Hand(hand = input, kind = HandType.OnePair, bid)
48 | }
49 |
50 | 5 -> {
51 | return Hand(hand = input, kind = HandType.HighCard, bid)
52 | }
53 |
54 | else -> { throw Exception("illegal hand ${input.split(" ").first()}")}
55 | }
56 | }
57 |
58 | data class Hand(val hand: String, val kind: HandType, val bid: Int)
59 |
60 |
61 | fun SolvePart1(input: String): Int{
62 | return readInput(input).map {
63 | getCard(it)
64 | }.sortedWith(comparator = Comparator { hand1, hand2 ->
65 | if (hand1.kind.strength != hand2.kind.strength) {
66 | return@Comparator hand1.kind.strength - hand2.kind.strength
67 | }
68 | val diff = hand1.hand.zip(hand2.hand).first { it.first != it.second }
69 | return@Comparator CardTypes[diff.first]!! - CardTypes[diff.second]!!
70 | }).foldIndexed(0) { idx, acc, curr ->
71 | acc + (idx + 1) * curr.bid
72 | }
73 | }
--------------------------------------------------------------------------------
/day7/gradlew.bat:
--------------------------------------------------------------------------------
1 | @rem
2 | @rem Copyright 2015 the original author or authors.
3 | @rem
4 | @rem Licensed under the Apache License, Version 2.0 (the "License");
5 | @rem you may not use this file except in compliance with the License.
6 | @rem You may obtain a copy of the License at
7 | @rem
8 | @rem https://www.apache.org/licenses/LICENSE-2.0
9 | @rem
10 | @rem Unless required by applicable law or agreed to in writing, software
11 | @rem distributed under the License is distributed on an "AS IS" BASIS,
12 | @rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | @rem See the License for the specific language governing permissions and
14 | @rem limitations under the License.
15 | @rem
16 |
17 | @if "%DEBUG%" == "" @echo off
18 | @rem ##########################################################################
19 | @rem
20 | @rem Gradle startup script for Windows
21 | @rem
22 | @rem ##########################################################################
23 |
24 | @rem Set local scope for the variables with windows NT shell
25 | if "%OS%"=="Windows_NT" setlocal
26 |
27 | set DIRNAME=%~dp0
28 | if "%DIRNAME%" == "" set DIRNAME=.
29 | set APP_BASE_NAME=%~n0
30 | set APP_HOME=%DIRNAME%
31 |
32 | @rem Resolve any "." and ".." in APP_HOME to make it shorter.
33 | for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
34 |
35 | @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
36 | set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
37 |
38 | @rem Find java.exe
39 | if defined JAVA_HOME goto findJavaFromJavaHome
40 |
41 | set JAVA_EXE=java.exe
42 | %JAVA_EXE% -version >NUL 2>&1
43 | if "%ERRORLEVEL%" == "0" goto execute
44 |
45 | echo.
46 | echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
47 | echo.
48 | echo Please set the JAVA_HOME variable in your environment to match the
49 | echo location of your Java installation.
50 |
51 | goto fail
52 |
53 | :findJavaFromJavaHome
54 | set JAVA_HOME=%JAVA_HOME:"=%
55 | set JAVA_EXE=%JAVA_HOME%/bin/java.exe
56 |
57 | if exist "%JAVA_EXE%" goto execute
58 |
59 | echo.
60 | echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
61 | echo.
62 | echo Please set the JAVA_HOME variable in your environment to match the
63 | echo location of your Java installation.
64 |
65 | goto fail
66 |
67 | :execute
68 | @rem Setup the command line
69 |
70 | set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
71 |
72 |
73 | @rem Execute Gradle
74 | "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %*
75 |
76 | :end
77 | @rem End local scope for the variables with windows NT shell
78 | if "%ERRORLEVEL%"=="0" goto mainEnd
79 |
80 | :fail
81 | rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
82 | rem the _cmd.exe /c_ return code!
83 | if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
84 | exit /b 1
85 |
86 | :mainEnd
87 | if "%OS%"=="Windows_NT" endlocal
88 |
89 | :omega
90 |
--------------------------------------------------------------------------------
/day8/gradlew.bat:
--------------------------------------------------------------------------------
1 | @rem
2 | @rem Copyright 2015 the original author or authors.
3 | @rem
4 | @rem Licensed under the Apache License, Version 2.0 (the "License");
5 | @rem you may not use this file except in compliance with the License.
6 | @rem You may obtain a copy of the License at
7 | @rem
8 | @rem https://www.apache.org/licenses/LICENSE-2.0
9 | @rem
10 | @rem Unless required by applicable law or agreed to in writing, software
11 | @rem distributed under the License is distributed on an "AS IS" BASIS,
12 | @rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | @rem See the License for the specific language governing permissions and
14 | @rem limitations under the License.
15 | @rem
16 |
17 | @if "%DEBUG%" == "" @echo off
18 | @rem ##########################################################################
19 | @rem
20 | @rem Gradle startup script for Windows
21 | @rem
22 | @rem ##########################################################################
23 |
24 | @rem Set local scope for the variables with windows NT shell
25 | if "%OS%"=="Windows_NT" setlocal
26 |
27 | set DIRNAME=%~dp0
28 | if "%DIRNAME%" == "" set DIRNAME=.
29 | set APP_BASE_NAME=%~n0
30 | set APP_HOME=%DIRNAME%
31 |
32 | @rem Resolve any "." and ".." in APP_HOME to make it shorter.
33 | for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
34 |
35 | @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
36 | set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
37 |
38 | @rem Find java.exe
39 | if defined JAVA_HOME goto findJavaFromJavaHome
40 |
41 | set JAVA_EXE=java.exe
42 | %JAVA_EXE% -version >NUL 2>&1
43 | if "%ERRORLEVEL%" == "0" goto execute
44 |
45 | echo.
46 | echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
47 | echo.
48 | echo Please set the JAVA_HOME variable in your environment to match the
49 | echo location of your Java installation.
50 |
51 | goto fail
52 |
53 | :findJavaFromJavaHome
54 | set JAVA_HOME=%JAVA_HOME:"=%
55 | set JAVA_EXE=%JAVA_HOME%/bin/java.exe
56 |
57 | if exist "%JAVA_EXE%" goto execute
58 |
59 | echo.
60 | echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
61 | echo.
62 | echo Please set the JAVA_HOME variable in your environment to match the
63 | echo location of your Java installation.
64 |
65 | goto fail
66 |
67 | :execute
68 | @rem Setup the command line
69 |
70 | set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
71 |
72 |
73 | @rem Execute Gradle
74 | "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %*
75 |
76 | :end
77 | @rem End local scope for the variables with windows NT shell
78 | if "%ERRORLEVEL%"=="0" goto mainEnd
79 |
80 | :fail
81 | rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
82 | rem the _cmd.exe /c_ return code!
83 | if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
84 | exit /b 1
85 |
86 | :mainEnd
87 | if "%OS%"=="Windows_NT" endlocal
88 |
89 | :omega
90 |
--------------------------------------------------------------------------------
/day2/main.go:
--------------------------------------------------------------------------------
1 | package main
2 |
3 | import (
4 | "bufio"
5 | "fmt"
6 | "log"
7 | "os"
8 | "strconv"
9 | "strings"
10 | )
11 |
12 | var rgbMap = map[string]int64{
13 | "red": 12,
14 | "green": 13,
15 | "blue": 14,
16 | }
17 |
18 | func part1(path string) (int, error) {
19 | file, err := os.Open(path)
20 | if err != nil {
21 | return 0, err
22 | }
23 | defer file.Close()
24 |
25 | scanner := bufio.NewScanner(file)
26 |
27 | possibleGameSum := 0
28 |
29 | for scanner.Scan() {
30 | gameStr := scanner.Text()
31 | game := strings.Split(gameStr, ":")
32 | gameInfo := game[0]
33 | gameId, err := strconv.ParseInt(strings.Split(gameInfo, " ")[1], 10, 0)
34 | if err != nil {
35 | return 0, err
36 | }
37 | gameState := game[1]
38 | games := strings.Split(gameState, "; ")
39 |
40 | possible := true
41 |
42 | for _, g := range games {
43 | balls := strings.Split(g, ",")
44 | for _, ball := range balls {
45 | ballState := strings.Split(strings.Trim(ball, " "), " ")
46 | count, err := strconv.ParseInt(ballState[0], 10, 0)
47 | if err != nil {
48 | return 0, err
49 | }
50 | color := ballState[1]
51 | if rgbMap[color] < count {
52 | possible = false
53 | }
54 | }
55 | }
56 | if possible {
57 | possibleGameSum += int(gameId)
58 | }
59 | }
60 |
61 | if err := scanner.Err(); err != nil {
62 | log.Fatal(err)
63 | }
64 |
65 | return possibleGameSum, nil
66 | }
67 |
68 | func part2(path string) (int, error) {
69 | file, err := os.Open(path)
70 | if err != nil {
71 | return 0, err
72 | }
73 | defer file.Close()
74 |
75 | scanner := bufio.NewScanner(file)
76 |
77 | possibleGameSum := 0
78 |
79 | for scanner.Scan() {
80 | gameStr := scanner.Text()
81 | game := strings.Split(gameStr, ":")
82 | gameState := game[1]
83 | games := strings.Split(gameState, "; ")
84 | rgbCountMap := make(map[string]int)
85 |
86 | power := 1
87 | for _, g := range games {
88 | balls := strings.Split(g, ",")
89 | for _, ball := range balls {
90 | ballState := strings.Split(strings.Trim(ball, " "), " ")
91 | count, err := strconv.ParseInt(ballState[0], 10, 0)
92 | if err != nil {
93 | return 0, err
94 | }
95 | color := ballState[1]
96 | if rgbCountMap[color] < int(count) {
97 | rgbCountMap[color] = int(count)
98 | }
99 | }
100 | }
101 | for _, v := range rgbCountMap {
102 | power = power * v
103 | }
104 | possibleGameSum += int(power)
105 | }
106 |
107 | if err := scanner.Err(); err != nil {
108 | log.Fatal(err)
109 | }
110 |
111 | return possibleGameSum, nil
112 | }
113 |
114 | func main() {
115 | output1, err := part1("part1.example.txt")
116 | if err != nil {
117 | fmt.Println(err.Error())
118 | }
119 | fmt.Printf("Part1 example: %v \n", output1)
120 |
121 | output2, err := part1("part1.txt")
122 | if err != nil {
123 | fmt.Println(err.Error())
124 | }
125 | fmt.Printf("Part1: %v \n", output2)
126 |
127 | output3, err := part2("part2.example.txt")
128 | if err != nil {
129 | fmt.Println(err.Error())
130 | }
131 | fmt.Printf("Part2 example: %v \n", output3)
132 |
133 | output4, err := part2("part2.txt")
134 | if err != nil {
135 | fmt.Println(err.Error())
136 | }
137 | fmt.Printf("Part2: %v \n", output4)
138 | }
139 |
--------------------------------------------------------------------------------
/day3/part2.js:
--------------------------------------------------------------------------------
1 | const fsp = require("fs").promises;
2 |
3 | const createGrid = (rows, cols) => {
4 | const grid = Array(rows);
5 | for (let i = 0; i < rows; i++) {
6 | grid[i] = Array(cols);
7 | for (let j = 0; j < cols; j++) {
8 | grid[i][j] = {};
9 | }
10 | }
11 | return grid;
12 | };
13 |
14 | const solve = async (inputPath) => {
15 | const input = await fsp.readFile(inputPath, "utf-8");
16 | let grid = input.split("\n");
17 | let gridCols = grid[0].length;
18 | let gridRows = grid.length;
19 | const stars = [];
20 | let partsGrid = createGrid(gridRows, gridCols);
21 | let numCount = 0;
22 | for (const [row, line] of grid.entries()) {
23 | const num = [];
24 | let start = -1;
25 | for (let col = 0; col < line.length; col++) {
26 | const char = line[col];
27 | if (char == "*") {
28 | stars.push({ row, col });
29 | }
30 | if (Number.isInteger(parseInt(char))) {
31 | if (num.length == 0) {
32 | start = col;
33 | }
34 | num.push(char);
35 | } else {
36 | if (num.length > 0) {
37 | numCount++;
38 | for (let idx = start; idx < col; idx++) {
39 | partsGrid[row][idx] = {
40 | number: parseInt(num.join("")),
41 | numCount,
42 | };
43 | }
44 | num.length = 0;
45 | start = -1;
46 | }
47 | }
48 | }
49 |
50 | if (num.length > 0) {
51 | numCount++;
52 | for (let idx = start; idx < line.length; idx++) {
53 | partsGrid[row][idx] = {
54 | number: parseInt(num.join("")),
55 | numCount,
56 | };
57 | }
58 | num.length = 0;
59 | start = -1;
60 | num.length = 0;
61 | start = -1;
62 | }
63 | }
64 |
65 | const gearRatios = [];
66 |
67 | const directions = [
68 | [-1, -1], // tl
69 | [0, -1], // tt
70 | [1, -1], // tr
71 | [-1, 0], // ml
72 | [1, 0], // mr
73 | [1, 1], // br
74 | [0, 1], // bm
75 | [-1, 1], // bl
76 | ];
77 |
78 | for (const star of stars) {
79 | let intersections = [];
80 | for (const [x, y] of directions) {
81 | const cX = star.col + x;
82 | const cY = star.row + y;
83 | if (cX >= 0 && cX < gridCols && cY >= 0 && cY < gridRows) {
84 | let ele = grid[cY][cX];
85 | if (Number.isInteger(parseInt(ele))) {
86 | intersections.push({ row: cY, col: cX });
87 | }
88 | }
89 | }
90 | if (intersections.length < 2) {
91 | continue;
92 | }
93 |
94 | const adjacentNumbers = {};
95 | for (const intersection of intersections) {
96 | adj = partsGrid[intersection.row][intersection.col];
97 | adjacentNumbers[adj.numCount] = adj.number;
98 | }
99 | if (Object.keys(adjacentNumbers).length == 2) {
100 | // debugArr.push(part);
101 | gearRatios.push(
102 | Object.entries(adjacentNumbers)
103 | .map(([_, v]) => v)
104 | .reduce((acc, curr) => acc * curr, 1)
105 | );
106 | }
107 | }
108 |
109 | const gearRatioSum = gearRatios.reduce((acc, curr) => acc + curr, 0);
110 |
111 | return gearRatioSum;
112 | };
113 |
114 | const main = async () => {
115 | console.log(await solve("./example.txt"));
116 | console.log(await solve("./input.txt"));
117 | };
118 |
119 | main();
120 |
--------------------------------------------------------------------------------
/day5/part1.dart:
--------------------------------------------------------------------------------
1 | import 'dart:collection';
2 | import 'dart:io';
3 | import 'dart:math';
4 |
5 | class Range {
6 | int end;
7 | int offset;
8 |
9 | Range(this.end, this.offset);
10 |
11 | @override
12 | String toString() {
13 | return "[end ${end} | offset ${offset}]";
14 | }
15 | }
16 |
17 | int solve(String filePath) {
18 | var file = File(filePath);
19 | var lines = file.readAsLinesSync();
20 |
21 | var seedsInput = lines[0].replaceFirst("seeds: ", "");
22 | var seeds = seedsInput.split(" ").map((seed) => int.parse(seed)).toList();
23 |
24 | SplayTreeMap seedToSoilMap = SplayTreeMap();
25 | SplayTreeMap soilToFertilizerMap = SplayTreeMap();
26 | SplayTreeMap fertilizerToWaterMap = SplayTreeMap();
27 | SplayTreeMap waterToLightMap = SplayTreeMap();
28 | SplayTreeMap lightToTemperatureMap = SplayTreeMap();
29 | SplayTreeMap temperatureToHumidityMap = SplayTreeMap();
30 | SplayTreeMap humidityToLocationMap = SplayTreeMap();
31 |
32 | var compass = {
33 | "seed-to-soil map:": seedToSoilMap,
34 | "soil-to-fertilizer map:": soilToFertilizerMap,
35 | "fertilizer-to-water map:": fertilizerToWaterMap,
36 | "water-to-light map:": waterToLightMap,
37 | "light-to-temperature map:": lightToTemperatureMap,
38 | "temperature-to-humidity map:": temperatureToHumidityMap,
39 | "humidity-to-location map:": humidityToLocationMap
40 | };
41 |
42 | var atlas = [
43 | seedToSoilMap,
44 | soilToFertilizerMap,
45 | fertilizerToWaterMap,
46 | waterToLightMap,
47 | lightToTemperatureMap,
48 | temperatureToHumidityMap,
49 | humidityToLocationMap
50 | ];
51 |
52 | var lineIter = lines.iterator;
53 | lineIter.moveNext();
54 | SplayTreeMap? currentMap;
55 | while (lineIter.moveNext()) {
56 | if (lineIter.current.isEmpty) {
57 | if (!lineIter.moveNext()) break;
58 | if (!compass.containsKey(lineIter.current)) {
59 | throw Exception("invalid range map ${currentMap}");
60 | }
61 | currentMap = compass[lineIter.current];
62 | if (!lineIter.moveNext()) break;
63 | }
64 | currentMap = currentMap!;
65 | var input = lineIter.current.split(" ");
66 | var dest = int.parse(input[0]);
67 | var src = int.parse(input[1]);
68 | var range = int.parse(input[2]);
69 | currentMap[src] = Range(src + range - 1, dest - src);
70 | }
71 |
72 | // traverse
73 | int minLocation = -1 >>> 1;
74 | for (var seed in seeds) {
75 | int currValue = seed;
76 | for (var (_, map) in atlas.indexed) {
77 | var start = 0;
78 | var end = map.length - 1;
79 | var entries = map.entries.toList();
80 | while (start <= end) {
81 | var mid = start + (end - start) ~/ 2;
82 | if (entries[mid].key <= currValue &&
83 | currValue <= entries[mid].value.end) {
84 | currValue += entries[mid].value.offset;
85 | break;
86 | } else if (currValue >= entries[mid].key) {
87 | start = mid + 1;
88 | } else {
89 | end = mid - 1;
90 | }
91 | }
92 | }
93 | minLocation = min(minLocation, currValue);
94 | }
95 |
96 | return minLocation;
97 | }
98 |
99 | void main() {
100 | print("Part1 example -> ${solve("example.txt")}");
101 | print("Part1 example -> ${solve("input.txt")}");
102 | }
103 |
--------------------------------------------------------------------------------
/day8/src/main/java/com/kriticalflare/Part1.java:
--------------------------------------------------------------------------------
1 | package com.kriticalflare;
2 |
3 | import java.io.IOException;
4 | import java.nio.file.Files;
5 | import java.nio.file.Path;
6 | import java.util.HashMap;
7 | import java.util.List;
8 |
9 |
10 |
11 | public class Part1 {
12 |
13 | private static class Node {
14 | String value;
15 | Node left;
16 | Node right;
17 |
18 | public Node(String value, Node left, Node right) {
19 | this.value = value;
20 | this.left = left;
21 | this.right = right;
22 | }
23 |
24 | public String getValue() {
25 | return value;
26 | }
27 |
28 | public void setValue(String value) {
29 | this.value = value;
30 | }
31 |
32 | public Node getLeft() {
33 | return left;
34 | }
35 |
36 | public void setLeft(Node left) {
37 | this.left = left;
38 | }
39 |
40 | public Node getRight() {
41 | return right;
42 | }
43 |
44 | public void setRight(Node right) {
45 | this.right = right;
46 | }
47 |
48 | @Override
49 | public String toString() {
50 | return "Node{" +
51 | "value='" + value + '\'' +
52 | ", left=" + left.getValue() +
53 | ", right=" + right.getValue() +
54 | '}';
55 | }
56 | }
57 |
58 | static int solve(String path) {
59 | List lines;
60 | try {
61 | lines = Files.readAllLines(Path.of(path));
62 | } catch (IOException e) {
63 | e.printStackTrace();
64 | return -1;
65 | }
66 |
67 | String directions = lines.getFirst();
68 |
69 | HashMap map = new HashMap<>();
70 | for(int idx = 2; idx < lines.size(); idx++){
71 | String line = lines.get(idx);
72 | String key = line.split("=")[0].trim();
73 | String[] children = line.split("=")[1].split(", ");
74 | children[0] = children[0].replace("(", "").trim();
75 | children[1] = children[1].replace(")", "").trim();
76 | Node node = new Node(key, null, null);
77 | map.put(key, node);
78 | }
79 |
80 | for(int idx = 2; idx < lines.size(); idx++){
81 | String line = lines.get(idx);
82 | String key = line.split("=")[0].trim();
83 | String[] children = line.split("=")[1].split(", ");
84 | children[0] = children[0].replace("(", "").trim();
85 | children[1] = children[1].replace(")", "").trim();
86 |
87 | Node leftChild = map.get(children[0]);
88 | Node rightChild = map.get(children[1]);
89 |
90 | Node node = map.get(key);
91 | node.setLeft(leftChild);
92 | node.setRight(rightChild);
93 | }
94 | System.out.println(map);
95 |
96 | var steps = 0;
97 | Node curr = map.get("AAA");
98 | while (true) {
99 | var direction = directions.charAt(steps % directions.length());
100 | if (direction == 'L') {
101 | curr = curr.left;
102 | } else {
103 | curr = curr.right;
104 | }
105 | steps++;
106 | if (curr.getValue().equals("ZZZ")) {
107 | break;
108 | }
109 | }
110 |
111 | return steps;
112 | }
113 | }
114 |
--------------------------------------------------------------------------------
/day1/src/bin/part2.rs:
--------------------------------------------------------------------------------
1 | use std::{
2 | fs::File,
3 | io::{BufRead, BufReader},
4 | path::Path,
5 | };
6 |
7 | use anyhow::Result;
8 | use peekmore::PeekMore;
9 |
10 | struct Stack {
11 | pub inner: Vec,
12 | }
13 |
14 | impl Stack {
15 | fn new() -> Self {
16 | return Stack { inner: vec![] };
17 | }
18 |
19 | fn push(&mut self, ele: u32) {
20 | if self.inner.len() < 2 {
21 | self.inner.push(ele);
22 | } else {
23 | while self.inner.len() > 1 {
24 | self.inner.pop();
25 | }
26 | self.inner.push(ele);
27 | }
28 | }
29 | }
30 |
31 | fn find_calibration(line: &String) -> u32 {
32 | let mut c_iter = line.chars().peekmore();
33 | let mut stack = Stack::new();
34 |
35 | loop {
36 | match c_iter.next() {
37 | Some(c) => match c.to_digit(10) {
38 | Some(digit) => {
39 | stack.push(digit);
40 | }
41 | None => {
42 | match (c, c_iter.peek_amount(2)) {
43 | ('o', [Some('n'), Some('e')]) => {
44 | stack.push(1);
45 | }
46 | ('t', [Some('w'), Some('o')]) => {
47 | stack.push(2);
48 | }
49 | ('s', [Some('i'), Some('x')]) => {
50 | stack.push(6);
51 | }
52 | _ => {}
53 | }
54 | match (c, c_iter.peek_amount(4)) {
55 | ('t', [Some('h'), Some('r'), Some('e'), Some('e')]) => {
56 | stack.push(3);
57 | }
58 | ('s', [Some('e'), Some('v'), Some('e'), Some('n')]) => {
59 | stack.push(7);
60 | }
61 | ('e', [Some('i'), Some('g'), Some('h'), Some('t')]) => {
62 | stack.push(8);
63 | }
64 | _ => {}
65 | }
66 | match (c, c_iter.peek_amount(3)) {
67 | ('f', [Some('o'), Some('u'), Some('r')]) => {
68 | stack.push(4);
69 | }
70 | ('f', [Some('i'), Some('v'), Some('e')]) => {
71 | stack.push(5);
72 | }
73 | ('n', [Some('i'), Some('n'), Some('e')]) => {
74 | stack.push(9);
75 | }
76 | _ => {}
77 | }
78 | }
79 | },
80 | None => break,
81 | }
82 | }
83 | let digits = stack.inner;
84 | dbg!(&digits);
85 | match digits.len() {
86 | 0 => {
87 | return 0;
88 | }
89 | 1 => {
90 | return digits[0] * 10 + digits[0];
91 | }
92 | 2 => {
93 | return digits[0] * 10 + digits[1];
94 | }
95 | _ => {
96 | panic!("illegal state");
97 | }
98 | }
99 | }
100 |
101 | fn main() -> Result<()> {
102 | let input = Path::new("./input/part2.txt");
103 | let input_file = File::open(input)?;
104 | let mut buf_reader = BufReader::new(input_file);
105 | let mut buffer = String::new();
106 |
107 | let mut calibration_sum = 0;
108 |
109 | while let Ok(len) = buf_reader.read_line(&mut buffer) {
110 | if len == 0 {
111 | break;
112 | }
113 | let calibration = find_calibration(&buffer);
114 | println!("calibration for line {buffer} is {calibration}");
115 | calibration_sum += calibration;
116 | buffer.clear();
117 | }
118 |
119 | println!("sum => {calibration_sum}");
120 |
121 | Ok(())
122 | }
123 |
--------------------------------------------------------------------------------
/day7/src/main/kotlin/part2/Part2.kt:
--------------------------------------------------------------------------------
1 | package com.kriticalflare.part2
2 |
3 | import com.kriticalflare.readInput
4 |
5 |
6 | val CardTypes: HashMap = hashMapOf(
7 | 'A' to 14, 'K' to 13, 'Q' to 12 ,
8 | 'T' to 10, '9' to 9, '8' to 8, '7' to 7,
9 | '6' to 6, '5' to 5 , '4' to 4, '3' to 3, '2' to 2 , 'J' to 1
10 | )
11 |
12 | enum class HandType(val strength: Int) {
13 | FiveOfaKind(strength = 6), // where all five cards have the same label: AAAAA
14 | FourOfaKind(strength = 5), // where four cards have the same label and one card has a different label: AA8AA
15 | FullHouse(strength = 4), // where three cards have the same label, and the remaining two cards share a different label: 23332
16 | ThreeOfaKind(strength = 3), // where three cards have the same label, and the remaining two cards are each different from any other card in the hand: TTT98
17 | TwoPair(strength = 2), //where two cards share one label, two other cards share a second label, and the remaining card has a third label: 23432
18 | OnePair(strength = 1), // where two cards share one label, and the other three cards have a different label from the pair and each other: A23A4
19 | HighCard(strength = 0), // where all cards' labels are distinct: 23456
20 | }
21 |
22 | fun getCard(input: String): Hand {
23 | val bid = input.split(" ").last().toInt()
24 | val cards = input.split(" ").first().groupingBy { it }.eachCount()
25 | when (cards.keys.count()) {
26 | 1 -> {
27 | return Hand(hand = input, kind = HandType.FiveOfaKind, bid)
28 | }
29 | 2 -> {
30 | return if (cards.keys.any { it == 'J' }) {
31 | Hand(hand = input, kind = HandType.FiveOfaKind, bid)
32 | } else if(cards.values.any{ it == 4 }) {
33 | Hand(hand = input, kind = HandType.FourOfaKind, bid)
34 | } else {
35 | Hand(hand = input, kind = HandType.FullHouse, bid)
36 | }
37 | }
38 |
39 | 3 -> {
40 | if(cards.values.any{ it == 3}) {
41 | if (cards.any { it.key == 'J' }) {
42 | return Hand(hand = input, kind = HandType.FourOfaKind, bid)
43 | }
44 | return Hand(hand = input, kind = HandType.ThreeOfaKind, bid)
45 | } else {
46 | if (cards.any { it.key == 'J' && it.value == 2 }) {
47 | return Hand(hand = input, kind = HandType.FourOfaKind, bid)
48 | } else if (cards.any { it.key == 'J' && it.value == 1}) {
49 | return Hand(hand = input, kind = HandType.FullHouse, bid)
50 | }
51 | return Hand(hand = input, kind = HandType.TwoPair, bid)
52 | }
53 | }
54 |
55 | 4 -> {
56 | return if (cards.any { it.key == 'J' }) {
57 | Hand(hand = input, kind = HandType.ThreeOfaKind, bid)
58 | } else {
59 | Hand(hand = input, kind = HandType.OnePair, bid)
60 | }
61 | }
62 |
63 | 5 -> {
64 | return if (cards.any { it.key == 'J'}) {
65 | Hand(hand = input, kind = HandType.OnePair, bid)
66 | } else {
67 | Hand(hand = input, kind = HandType.HighCard, bid)
68 | }
69 | }
70 |
71 | else -> { throw Exception("illegal hand ${input.split(" ").first()}")}
72 | }
73 | }
74 |
75 | data class Hand(val hand: String, val kind: HandType, val bid: Int)
76 |
77 |
78 | fun SolvePart2(input: String): Int{
79 | return readInput(input).map { getCard(it)
80 | }.sortedWith(comparator = Comparator { hand1, hand2 ->
81 | if (hand1.kind.strength != hand2.kind.strength) {
82 | return@Comparator hand1.kind.strength - hand2.kind.strength
83 | }
84 | val diff = hand1.hand.zip(hand2.hand).first { it.first != it.second }
85 | return@Comparator CardTypes[diff.first]!! - CardTypes[diff.second]!!
86 | }).foldIndexed(0) { idx, acc, curr ->
87 | acc + (idx + 1) * curr.bid
88 | }
89 | }
--------------------------------------------------------------------------------
/day8/src/main/java/com/kriticalflare/Part2.java:
--------------------------------------------------------------------------------
1 | package com.kriticalflare;
2 |
3 | import java.io.IOException;
4 | import java.nio.file.Files;
5 | import java.nio.file.Path;
6 | import java.util.ArrayList;
7 | import java.util.HashMap;
8 | import java.util.List;
9 |
10 | public class Part2 {
11 |
12 | private static class Node {
13 | String value;
14 | Node left;
15 | Node right;
16 |
17 | public Node(String value, Node left, Node right) {
18 | this.value = value;
19 | this.left = left;
20 | this.right = right;
21 | }
22 |
23 | public String getValue() {
24 | return value;
25 | }
26 |
27 | public void setValue(String value) {
28 | this.value = value;
29 | }
30 |
31 | public Node getLeft() {
32 | return left;
33 | }
34 |
35 | public void setLeft(Node left) {
36 | this.left = left;
37 | }
38 |
39 | public Node getRight() {
40 | return right;
41 | }
42 |
43 | public void setRight(Node right) {
44 | this.right = right;
45 | }
46 |
47 | @Override
48 | public String toString() {
49 | return "Node{" +
50 | "value='" + value + '\'' +
51 | ", left=" + left.getValue() +
52 | ", right=" + right.getValue() +
53 | '}';
54 | }
55 | }
56 |
57 | static int solve(String path) {
58 | List lines;
59 | try {
60 | lines = Files.readAllLines(Path.of(path));
61 | } catch (IOException e) {
62 | e.printStackTrace();
63 | return -1;
64 | }
65 |
66 | String directions = lines.getFirst();
67 |
68 | ArrayList ghosts = new ArrayList<>();
69 | HashMap map = new HashMap<>();
70 |
71 | for(int idx = 2; idx < lines.size(); idx++){
72 | String line = lines.get(idx);
73 | String key = line.split("=")[0].trim();
74 | String[] children = line.split("=")[1].split(", ");
75 | children[0] = children[0].replace("(", "").trim();
76 | children[1] = children[1].replace(")", "").trim();
77 | Node node = new Node(key, null, null);
78 | map.put(key, node);
79 | if (key.endsWith("A")) {
80 | ghosts.add(key);
81 | }
82 | }
83 |
84 | for(int idx = 2; idx < lines.size(); idx++){
85 | String line = lines.get(idx);
86 | String key = line.split("=")[0].trim();
87 | String[] children = line.split("=")[1].split(", ");
88 | children[0] = children[0].replace("(", "").trim();
89 | children[1] = children[1].replace(")", "").trim();
90 |
91 | Node leftChild = map.get(children[0]);
92 | Node rightChild = map.get(children[1]);
93 |
94 | Node node = map.get(key);
95 | node.setLeft(leftChild);
96 | node.setRight(rightChild);
97 | }
98 | System.out.println(map);
99 |
100 | var steps = 0;
101 | while (true) {
102 | var direction = directions.charAt(steps % directions.length());
103 | for(int gIdx = 0; gIdx < ghosts.size(); gIdx++) {
104 | var ghostKey = ghosts.get(gIdx);
105 | var ghost = map.get(ghostKey);
106 | if (direction == 'L') {
107 | ghostKey = ghost.getLeft().value;
108 | } else {
109 | ghostKey = ghost.getRight().value;
110 | }
111 | ghosts.set(gIdx, ghostKey);
112 | }
113 | steps++;
114 |
115 | var end = true;
116 | for(var ghost: ghosts){
117 | if(!ghost.endsWith("Z")){
118 | end = false;
119 | break;
120 | }
121 | }
122 | if(end) {
123 | break;
124 | }
125 | }
126 | return steps;
127 | }
128 | }
129 |
--------------------------------------------------------------------------------
/day5/input.txt:
--------------------------------------------------------------------------------
1 | seeds: 2880930400 17599561 549922357 200746426 1378552684 43534336 155057073 56546377 824205101 378503603 1678376802 130912435 2685513694 137778160 2492361384 188575752 3139914842 1092214826 2989476473 58874625
2 |
3 | seed-to-soil map:
4 | 341680072 47360832 98093750
5 | 1677587229 1836834678 160297919
6 | 1122651749 4014790961 280176335
7 | 2279929873 2689269992 53644948
8 | 3916120104 1199400457 172302726
9 | 0 381576527 58197295
10 | 1402828084 3450816018 274759145
11 | 3909949227 2540063154 6170877
12 | 802918801 2384227172 155835982
13 | 4088422830 3244271552 206544466
14 | 958754783 1997132597 28874650
15 | 58197295 306349987 75226540
16 | 180784667 145454582 160895405
17 | 2334903647 1543332738 293501940
18 | 3699983017 2997982209 25342830
19 | 2333574821 2687941166 1328826
20 | 3111317969 1371703183 171629555
21 | 2806959198 2135774873 248452299
22 | 2766721604 717118138 40237594
23 | 3055411497 2632034694 55906472
24 | 2628405587 3023325039 138316017
25 | 1837885148 757355732 442044725
26 | 3725325847 2813358829 184623380
27 | 3353391413 2026007247 109767626
28 | 987629433 3962399141 10015813
29 | 717118138 2546234031 85800663
30 | 3282947524 2742914940 70443889
31 | 1080275742 3972414954 42376007
32 | 133423835 0 47360832
33 | 3463159039 3725575163 236823978
34 | 997645246 3161641056 82630496
35 |
36 | soil-to-fertilizer map:
37 | 303672059 1087423328 103502353
38 | 171922589 2907629744 91556518
39 | 2064217168 468859004 91214014
40 | 1129888530 1046445685 40977643
41 | 3698610046 4215442249 79525047
42 | 1045870106 1586657152 41455160
43 | 1170866173 1322928302 17679660
44 | 4160148003 3332238470 107558461
45 | 4267706464 3853049576 27260832
46 | 0 3007612896 90771201
47 | 3447204990 3880310408 249339913
48 | 1189561657 1438888401 43309463
49 | 4019710828 3219712242 104981462
50 | 2226263856 2187322171 114088350
51 | 553216166 1847338068 182148047
52 | 3217647099 3439796931 229557891
53 | 2832115692 1482197864 23307900
54 | 867366834 94995931 178503272
55 | 1969221237 0 94995931
56 | 3785679859 3704810535 148239041
57 | 1095751900 2693816297 34136630
58 | 4124692290 3669354822 35455713
59 | 454935727 1340607962 98280439
60 | 2204466075 1628112312 21797781
61 | 1947833351 2164918461 21387886
62 | 2634687717 1649910093 197427975
63 | 263479107 2850768768 40192952
64 | 3696544903 3217647099 2065143
65 | 735364213 1190925681 132002621
66 | 3050783393 2337205982 47600704
67 | 1087325266 2999186262 8426634
68 | 3778135093 3324693704 7544766
69 | 2855423592 273499203 195359801
70 | 90771201 1505505764 81151388
71 | 2340352206 560073018 290906919
72 | 1531641800 939263745 107181940
73 | 1188545833 2186306347 1015824
74 | 1355686961 850979937 88283808
75 | 1492181516 2029486115 39460284
76 | 1638823740 2384806686 309009611
77 | 2155431182 2894390312 13239432
78 | 1443970769 2068946399 48210747
79 | 1232871120 2727952927 122815841
80 | 3933918900 4129650321 85791928
81 | 2631259125 2890961720 3428592
82 | 407174412 2117157146 47761315
83 | 2168670614 2301410521 35795461
84 |
85 | fertilizer-to-water map:
86 | 4253126168 3603943470 41841128
87 | 3150812716 3873122781 161556325
88 | 4132148538 3445929121 16652907
89 | 4071215062 2557593856 10373731
90 | 3585414898 2401284809 61555959
91 | 124617758 989226185 56063423
92 | 1311995731 916233018 72993167
93 | 180681181 891200267 25032751
94 | 1577315548 1448436684 231921083
95 | 69948934 1391916079 39397864
96 | 2730663795 3577458422 26485048
97 | 2453473122 3255362867 102306532
98 | 4148801445 3801350502 12292818
99 | 3002725397 3107275548 148087319
100 | 3525935437 3813643320 59479461
101 | 3982955340 3357669399 88259722
102 | 2631712351 2567967587 98951444
103 | 628324302 2038793089 109830184
104 | 3427245435 3721480891 3936914
105 | 796140554 1045289608 36965524
106 | 939693576 1140241200 24301167
107 | 205713932 1680357767 358435322
108 | 4161094263 2666919031 92031905
109 | 1103981621 0 206162329
110 | 1809236631 761213122 129987145
111 | 1310143950 1431313943 1851781
112 | 4081588793 3056715803 50559745
113 | 738154486 1082255132 57986068
114 | 564149254 206162329 64175048
115 | 3722667150 4034679106 260288190
116 | 3431182349 2462840768 94753088
117 | 109346798 1433165724 15270960
118 | 2757148843 2811139249 245576554
119 | 1044349135 2294919620 59632486
120 | 833106078 270337377 106587498
121 | 3646970857 3645784598 75696293
122 | 0 2354552106 4006979
123 | 1974270838 376924875 384288247
124 | 3312369041 3462582028 114876394
125 | 2401284809 2758950936 52188313
126 | 1384988898 1199589429 192326650
127 | 963994743 2214565228 80354392
128 | 1939223776 1164542367 35047062
129 | 4006979 2148623273 65941955
130 | 2555779654 3725417805 75932697
131 |
132 | water-to-light map:
133 | 1553071310 2767299260 81555093
134 | 1638385137 3758734 7165416
135 | 3923895602 3742459208 355646104
136 | 2563492152 40550035 317968
137 | 357175543 151852464 53516575
138 | 756535305 2730597762 36701498
139 | 1142337672 1915537677 164067723
140 | 436470886 2848854353 61956232
141 | 1316538987 1679005354 102639946
142 | 609765571 2079605400 146769734
143 | 1306405395 2660382036 10133592
144 | 3817572860 3406157555 106322742
145 | 2023184953 353497588 62195869
146 | 3531543848 4223491605 71475691
147 | 410692118 126073696 25778768
148 | 4279541706 3727562743 14896465
149 | 2903607795 1495097536 74179449
150 | 1794747312 2279656479 95385933
151 | 2783150325 2269091374 10565105
152 | 3406157555 4098105312 125386293
153 | 2145462956 205369039 148128549
154 | 2833741244 2401175172 69866551
155 | 793236803 685594104 306384629
156 | 1645550553 2511185277 149196759
157 | 1419178933 1781645300 133892377
158 | 1634626403 0 3758734
159 | 3274934245 2471041723 36449164
160 | 0 1097896179 357175543
161 | 2563810120 991978733 105917446
162 | 4294438171 3727033618 529125
163 | 2688189328 1569276985 94960997
164 | 2669727566 2507490887 3694390
165 | 3311383409 10924150 29625885
166 | 1099621432 2226375134 42716240
167 | 1890133245 2910810585 133051708
168 | 583632811 2375042412 26132760
169 | 498427118 40868003 85205693
170 | 2293591505 415693457 269900647
171 | 2673421956 1664237982 14767372
172 | 2085380822 2670515628 60082134
173 | 3603019539 3512480297 214553321
174 | 2977787244 3043862293 297147001
175 | 2793715430 1455071722 40025814
176 |
177 | light-to-temperature map:
178 | 3752181853 3850028427 61847460
179 | 3392702182 4061054452 68370555
180 | 3610251302 4129425007 141930551
181 | 2019529001 2633762146 55812503
182 | 1423059901 2612524947 21237199
183 | 1637625157 3160312690 128493598
184 | 2109055159 2018596226 368399035
185 | 343891384 811352094 920120231
186 | 154347384 2422980947 189544000
187 | 2075341504 1978947609 33713655
188 | 1444297100 2966984633 193328057
189 | 35985686 2689574649 118361698
190 | 2477454194 0 811352094
191 | 1772053717 1854798742 124148867
192 | 1264011615 2807936347 159048286
193 | 0 2386995261 35985686
194 | 1766118755 2012661264 5934962
195 | 3814029313 3392702182 457326245
196 | 3461072737 3911875887 149178565
197 | 1896202584 1731472325 123326417
198 |
199 | temperature-to-humidity map:
200 | 3344602117 2991074372 262457649
201 | 1707309180 3911386116 383581180
202 | 3778482785 2130995124 374719434
203 | 3607059766 3253532021 171423019
204 | 584508486 478912361 161371970
205 | 1578590582 2505714558 128718598
206 | 3294145751 1806488186 50456366
207 | 1143023241 2829557603 161516769
208 | 1304540010 1856944552 274050572
209 | 2090890360 3424955040 344665999
210 | 2435556359 1143023241 663464945
211 | 496214964 1000471163 88293522
212 | 0 640284331 360186832
213 | 3099021304 2634433156 195124447
214 | 360186832 342884229 136028132
215 | 745880456 0 342884229
216 | 4153202219 3769621039 141765077
217 |
218 | humidity-to-location map:
219 | 3114211644 984440400 35385940
220 | 3530465412 479339778 128291026
221 | 0 3699707734 285474938
222 | 2898087648 3606829306 92878428
223 | 2762235329 607630804 135852319
224 | 4210792153 4197161772 84175143
225 | 3149597584 31394121 380867828
226 | 1848709689 0 31394121
227 | 1880103810 412261949 67077829
228 | 285474938 1579019790 1563234751
229 | 2990966076 3566305423 40523883
230 | 2434079297 1019826340 328156032
231 | 2371232521 3985182672 62846776
232 | 1947181639 3142254541 424050882
233 | 3899713715 1347982372 148315733
234 | 3031489959 1496298105 82721685
235 | 4197161772 4281336915 13630381
236 | 3658756438 743483123 240957277
--------------------------------------------------------------------------------
/day7/gradlew:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | #
4 | # Copyright © 2015-2021 the original authors.
5 | #
6 | # Licensed under the Apache License, Version 2.0 (the "License");
7 | # you may not use this file except in compliance with the License.
8 | # You may obtain a copy of the License at
9 | #
10 | # https://www.apache.org/licenses/LICENSE-2.0
11 | #
12 | # Unless required by applicable law or agreed to in writing, software
13 | # distributed under the License is distributed on an "AS IS" BASIS,
14 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | # See the License for the specific language governing permissions and
16 | # limitations under the License.
17 | #
18 |
19 | ##############################################################################
20 | #
21 | # Gradle start up script for POSIX generated by Gradle.
22 | #
23 | # Important for running:
24 | #
25 | # (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is
26 | # noncompliant, but you have some other compliant shell such as ksh or
27 | # bash, then to run this script, type that shell name before the whole
28 | # command line, like:
29 | #
30 | # ksh Gradle
31 | #
32 | # Busybox and similar reduced shells will NOT work, because this script
33 | # requires all of these POSIX shell features:
34 | # * functions;
35 | # * expansions «$var», «${var}», «${var:-default}», «${var+SET}»,
36 | # «${var#prefix}», «${var%suffix}», and «$( cmd )»;
37 | # * compound commands having a testable exit status, especially «case»;
38 | # * various built-in commands including «command», «set», and «ulimit».
39 | #
40 | # Important for patching:
41 | #
42 | # (2) This script targets any POSIX shell, so it avoids extensions provided
43 | # by Bash, Ksh, etc; in particular arrays are avoided.
44 | #
45 | # The "traditional" practice of packing multiple parameters into a
46 | # space-separated string is a well documented source of bugs and security
47 | # problems, so this is (mostly) avoided, by progressively accumulating
48 | # options in "$@", and eventually passing that to Java.
49 | #
50 | # Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS,
51 | # and GRADLE_OPTS) rely on word-splitting, this is performed explicitly;
52 | # see the in-line comments for details.
53 | #
54 | # There are tweaks for specific operating systems such as AIX, CygWin,
55 | # Darwin, MinGW, and NonStop.
56 | #
57 | # (3) This script is generated from the Groovy template
58 | # https://github.com/gradle/gradle/blob/master/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
59 | # within the Gradle project.
60 | #
61 | # You can find Gradle at https://github.com/gradle/gradle/.
62 | #
63 | ##############################################################################
64 |
65 | # Attempt to set APP_HOME
66 |
67 | # Resolve links: $0 may be a link
68 | app_path=$0
69 |
70 | # Need this for daisy-chained symlinks.
71 | while
72 | APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path
73 | [ -h "$app_path" ]
74 | do
75 | ls=$( ls -ld "$app_path" )
76 | link=${ls#*' -> '}
77 | case $link in #(
78 | /*) app_path=$link ;; #(
79 | *) app_path=$APP_HOME$link ;;
80 | esac
81 | done
82 |
83 | APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit
84 |
85 | APP_NAME="Gradle"
86 | APP_BASE_NAME=${0##*/}
87 |
88 | # Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
89 | DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
90 |
91 | # Use the maximum available, or set MAX_FD != -1 to use that value.
92 | MAX_FD=maximum
93 |
94 | warn () {
95 | echo "$*"
96 | } >&2
97 |
98 | die () {
99 | echo
100 | echo "$*"
101 | echo
102 | exit 1
103 | } >&2
104 |
105 | # OS specific support (must be 'true' or 'false').
106 | cygwin=false
107 | msys=false
108 | darwin=false
109 | nonstop=false
110 | case "$( uname )" in #(
111 | CYGWIN* ) cygwin=true ;; #(
112 | Darwin* ) darwin=true ;; #(
113 | MSYS* | MINGW* ) msys=true ;; #(
114 | NONSTOP* ) nonstop=true ;;
115 | esac
116 |
117 | CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
118 |
119 |
120 | # Determine the Java command to use to start the JVM.
121 | if [ -n "$JAVA_HOME" ] ; then
122 | if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
123 | # IBM's JDK on AIX uses strange locations for the executables
124 | JAVACMD=$JAVA_HOME/jre/sh/java
125 | else
126 | JAVACMD=$JAVA_HOME/bin/java
127 | fi
128 | if [ ! -x "$JAVACMD" ] ; then
129 | die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
130 |
131 | Please set the JAVA_HOME variable in your environment to match the
132 | location of your Java installation."
133 | fi
134 | else
135 | JAVACMD=java
136 | which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
137 |
138 | Please set the JAVA_HOME variable in your environment to match the
139 | location of your Java installation."
140 | fi
141 |
142 | # Increase the maximum file descriptors if we can.
143 | if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then
144 | case $MAX_FD in #(
145 | max*)
146 | MAX_FD=$( ulimit -H -n ) ||
147 | warn "Could not query maximum file descriptor limit"
148 | esac
149 | case $MAX_FD in #(
150 | '' | soft) :;; #(
151 | *)
152 | ulimit -n "$MAX_FD" ||
153 | warn "Could not set maximum file descriptor limit to $MAX_FD"
154 | esac
155 | fi
156 |
157 | # Collect all arguments for the java command, stacking in reverse order:
158 | # * args from the command line
159 | # * the main class name
160 | # * -classpath
161 | # * -D...appname settings
162 | # * --module-path (only if needed)
163 | # * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables.
164 |
165 | # For Cygwin or MSYS, switch paths to Windows format before running java
166 | if "$cygwin" || "$msys" ; then
167 | APP_HOME=$( cygpath --path --mixed "$APP_HOME" )
168 | CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" )
169 |
170 | JAVACMD=$( cygpath --unix "$JAVACMD" )
171 |
172 | # Now convert the arguments - kludge to limit ourselves to /bin/sh
173 | for arg do
174 | if
175 | case $arg in #(
176 | -*) false ;; # don't mess with options #(
177 | /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath
178 | [ -e "$t" ] ;; #(
179 | *) false ;;
180 | esac
181 | then
182 | arg=$( cygpath --path --ignore --mixed "$arg" )
183 | fi
184 | # Roll the args list around exactly as many times as the number of
185 | # args, so each arg winds up back in the position where it started, but
186 | # possibly modified.
187 | #
188 | # NB: a `for` loop captures its iteration list before it begins, so
189 | # changing the positional parameters here affects neither the number of
190 | # iterations, nor the values presented in `arg`.
191 | shift # remove old arg
192 | set -- "$@" "$arg" # push replacement arg
193 | done
194 | fi
195 |
196 | # Collect all arguments for the java command;
197 | # * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of
198 | # shell script including quotes and variable substitutions, so put them in
199 | # double quotes to make sure that they get re-expanded; and
200 | # * put everything else in single quotes, so that it's not re-expanded.
201 |
202 | set -- \
203 | "-Dorg.gradle.appname=$APP_BASE_NAME" \
204 | -classpath "$CLASSPATH" \
205 | org.gradle.wrapper.GradleWrapperMain \
206 | "$@"
207 |
208 | # Use "xargs" to parse quoted args.
209 | #
210 | # With -n1 it outputs one arg per line, with the quotes and backslashes removed.
211 | #
212 | # In Bash we could simply go:
213 | #
214 | # readarray ARGS < <( xargs -n1 <<<"$var" ) &&
215 | # set -- "${ARGS[@]}" "$@"
216 | #
217 | # but POSIX shell has neither arrays nor command substitution, so instead we
218 | # post-process each arg (as a line of input to sed) to backslash-escape any
219 | # character that might be a shell metacharacter, then use eval to reverse
220 | # that process (while maintaining the separation between arguments), and wrap
221 | # the whole thing up as a single "set" statement.
222 | #
223 | # This will of course break if any of these variables contains a newline or
224 | # an unmatched quote.
225 | #
226 |
227 | eval "set -- $(
228 | printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" |
229 | xargs -n1 |
230 | sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' |
231 | tr '\n' ' '
232 | )" '"$@"'
233 |
234 | exec "$JAVACMD" "$@"
235 |
--------------------------------------------------------------------------------
/day8/gradlew:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | #
4 | # Copyright © 2015-2021 the original authors.
5 | #
6 | # Licensed under the Apache License, Version 2.0 (the "License");
7 | # you may not use this file except in compliance with the License.
8 | # You may obtain a copy of the License at
9 | #
10 | # https://www.apache.org/licenses/LICENSE-2.0
11 | #
12 | # Unless required by applicable law or agreed to in writing, software
13 | # distributed under the License is distributed on an "AS IS" BASIS,
14 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | # See the License for the specific language governing permissions and
16 | # limitations under the License.
17 | #
18 |
19 | ##############################################################################
20 | #
21 | # Gradle start up script for POSIX generated by Gradle.
22 | #
23 | # Important for running:
24 | #
25 | # (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is
26 | # noncompliant, but you have some other compliant shell such as ksh or
27 | # bash, then to run this script, type that shell name before the whole
28 | # command line, like:
29 | #
30 | # ksh Gradle
31 | #
32 | # Busybox and similar reduced shells will NOT work, because this script
33 | # requires all of these POSIX shell features:
34 | # * functions;
35 | # * expansions «$var», «${var}», «${var:-default}», «${var+SET}»,
36 | # «${var#prefix}», «${var%suffix}», and «$( cmd )»;
37 | # * compound commands having a testable exit status, especially «case»;
38 | # * various built-in commands including «command», «set», and «ulimit».
39 | #
40 | # Important for patching:
41 | #
42 | # (2) This script targets any POSIX shell, so it avoids extensions provided
43 | # by Bash, Ksh, etc; in particular arrays are avoided.
44 | #
45 | # The "traditional" practice of packing multiple parameters into a
46 | # space-separated string is a well documented source of bugs and security
47 | # problems, so this is (mostly) avoided, by progressively accumulating
48 | # options in "$@", and eventually passing that to Java.
49 | #
50 | # Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS,
51 | # and GRADLE_OPTS) rely on word-splitting, this is performed explicitly;
52 | # see the in-line comments for details.
53 | #
54 | # There are tweaks for specific operating systems such as AIX, CygWin,
55 | # Darwin, MinGW, and NonStop.
56 | #
57 | # (3) This script is generated from the Groovy template
58 | # https://github.com/gradle/gradle/blob/master/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
59 | # within the Gradle project.
60 | #
61 | # You can find Gradle at https://github.com/gradle/gradle/.
62 | #
63 | ##############################################################################
64 |
65 | # Attempt to set APP_HOME
66 |
67 | # Resolve links: $0 may be a link
68 | app_path=$0
69 |
70 | # Need this for daisy-chained symlinks.
71 | while
72 | APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path
73 | [ -h "$app_path" ]
74 | do
75 | ls=$( ls -ld "$app_path" )
76 | link=${ls#*' -> '}
77 | case $link in #(
78 | /*) app_path=$link ;; #(
79 | *) app_path=$APP_HOME$link ;;
80 | esac
81 | done
82 |
83 | APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit
84 |
85 | APP_NAME="Gradle"
86 | APP_BASE_NAME=${0##*/}
87 |
88 | # Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
89 | DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
90 |
91 | # Use the maximum available, or set MAX_FD != -1 to use that value.
92 | MAX_FD=maximum
93 |
94 | warn () {
95 | echo "$*"
96 | } >&2
97 |
98 | die () {
99 | echo
100 | echo "$*"
101 | echo
102 | exit 1
103 | } >&2
104 |
105 | # OS specific support (must be 'true' or 'false').
106 | cygwin=false
107 | msys=false
108 | darwin=false
109 | nonstop=false
110 | case "$( uname )" in #(
111 | CYGWIN* ) cygwin=true ;; #(
112 | Darwin* ) darwin=true ;; #(
113 | MSYS* | MINGW* ) msys=true ;; #(
114 | NONSTOP* ) nonstop=true ;;
115 | esac
116 |
117 | CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
118 |
119 |
120 | # Determine the Java command to use to start the JVM.
121 | if [ -n "$JAVA_HOME" ] ; then
122 | if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
123 | # IBM's JDK on AIX uses strange locations for the executables
124 | JAVACMD=$JAVA_HOME/jre/sh/java
125 | else
126 | JAVACMD=$JAVA_HOME/bin/java
127 | fi
128 | if [ ! -x "$JAVACMD" ] ; then
129 | die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
130 |
131 | Please set the JAVA_HOME variable in your environment to match the
132 | location of your Java installation."
133 | fi
134 | else
135 | JAVACMD=java
136 | which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
137 |
138 | Please set the JAVA_HOME variable in your environment to match the
139 | location of your Java installation."
140 | fi
141 |
142 | # Increase the maximum file descriptors if we can.
143 | if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then
144 | case $MAX_FD in #(
145 | max*)
146 | MAX_FD=$( ulimit -H -n ) ||
147 | warn "Could not query maximum file descriptor limit"
148 | esac
149 | case $MAX_FD in #(
150 | '' | soft) :;; #(
151 | *)
152 | ulimit -n "$MAX_FD" ||
153 | warn "Could not set maximum file descriptor limit to $MAX_FD"
154 | esac
155 | fi
156 |
157 | # Collect all arguments for the java command, stacking in reverse order:
158 | # * args from the command line
159 | # * the main class name
160 | # * -classpath
161 | # * -D...appname settings
162 | # * --module-path (only if needed)
163 | # * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables.
164 |
165 | # For Cygwin or MSYS, switch paths to Windows format before running java
166 | if "$cygwin" || "$msys" ; then
167 | APP_HOME=$( cygpath --path --mixed "$APP_HOME" )
168 | CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" )
169 |
170 | JAVACMD=$( cygpath --unix "$JAVACMD" )
171 |
172 | # Now convert the arguments - kludge to limit ourselves to /bin/sh
173 | for arg do
174 | if
175 | case $arg in #(
176 | -*) false ;; # don't mess with options #(
177 | /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath
178 | [ -e "$t" ] ;; #(
179 | *) false ;;
180 | esac
181 | then
182 | arg=$( cygpath --path --ignore --mixed "$arg" )
183 | fi
184 | # Roll the args list around exactly as many times as the number of
185 | # args, so each arg winds up back in the position where it started, but
186 | # possibly modified.
187 | #
188 | # NB: a `for` loop captures its iteration list before it begins, so
189 | # changing the positional parameters here affects neither the number of
190 | # iterations, nor the values presented in `arg`.
191 | shift # remove old arg
192 | set -- "$@" "$arg" # push replacement arg
193 | done
194 | fi
195 |
196 | # Collect all arguments for the java command;
197 | # * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of
198 | # shell script including quotes and variable substitutions, so put them in
199 | # double quotes to make sure that they get re-expanded; and
200 | # * put everything else in single quotes, so that it's not re-expanded.
201 |
202 | set -- \
203 | "-Dorg.gradle.appname=$APP_BASE_NAME" \
204 | -classpath "$CLASSPATH" \
205 | org.gradle.wrapper.GradleWrapperMain \
206 | "$@"
207 |
208 | # Use "xargs" to parse quoted args.
209 | #
210 | # With -n1 it outputs one arg per line, with the quotes and backslashes removed.
211 | #
212 | # In Bash we could simply go:
213 | #
214 | # readarray ARGS < <( xargs -n1 <<<"$var" ) &&
215 | # set -- "${ARGS[@]}" "$@"
216 | #
217 | # but POSIX shell has neither arrays nor command substitution, so instead we
218 | # post-process each arg (as a line of input to sed) to backslash-escape any
219 | # character that might be a shell metacharacter, then use eval to reverse
220 | # that process (while maintaining the separation between arguments), and wrap
221 | # the whole thing up as a single "set" statement.
222 | #
223 | # This will of course break if any of these variables contains a newline or
224 | # an unmatched quote.
225 | #
226 |
227 | eval "set -- $(
228 | printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" |
229 | xargs -n1 |
230 | sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' |
231 | tr '\n' ' '
232 | )" '"$@"'
233 |
234 | exec "$JAVACMD" "$@"
235 |
--------------------------------------------------------------------------------
/day2/part1.txt:
--------------------------------------------------------------------------------
1 | Game 1: 1 green, 2 red, 6 blue; 4 red, 1 green, 3 blue; 7 blue, 5 green; 6 blue, 2 red, 1 green
2 | Game 2: 1 green, 17 red; 1 blue, 6 red, 7 green; 2 blue, 4 red, 7 green; 1 green, 6 red, 2 blue
3 | Game 3: 6 red, 15 blue, 15 green; 1 green, 4 red, 12 blue; 14 blue, 9 red, 1 green; 2 red, 15 blue, 12 green
4 | Game 4: 8 green, 10 blue, 6 red; 20 blue, 4 red; 17 blue, 2 green, 3 red; 4 blue, 2 green, 3 red; 10 red, 3 blue, 3 green; 5 green, 14 blue, 6 red
5 | Game 5: 3 green, 8 blue, 2 red; 11 red, 6 green, 11 blue; 8 red, 5 blue, 2 green
6 | Game 6: 2 blue, 12 red, 2 green; 3 green, 2 red; 3 green, 3 blue, 10 red; 7 red, 2 blue, 4 green; 1 red, 2 blue, 5 green
7 | Game 7: 1 red, 8 blue, 2 green; 1 red, 2 blue, 12 green; 1 blue; 3 blue, 3 green
8 | Game 8: 10 green, 4 red, 4 blue; 12 green, 1 blue; 1 red, 13 green, 2 blue; 12 green, 3 blue; 9 green, 7 red
9 | Game 9: 1 green, 1 blue, 3 red; 3 blue, 3 red, 8 green; 6 blue, 4 red, 6 green; 2 red, 7 green; 1 red, 10 green, 13 blue; 5 red, 1 blue, 1 green
10 | Game 10: 9 green, 3 red, 3 blue; 12 green, 2 blue; 18 green, 1 blue; 14 green; 2 blue, 9 green, 2 red
11 | Game 11: 14 green; 2 green, 2 red, 11 blue; 9 blue, 3 green
12 | Game 12: 9 green, 3 blue, 8 red; 1 green, 2 blue, 3 red; 4 blue, 8 red, 10 green; 3 blue, 7 red, 8 green; 3 blue, 5 red, 7 green; 2 blue, 5 green
13 | Game 13: 6 red, 1 blue, 10 green; 7 red, 1 green; 8 red, 2 green, 1 blue
14 | Game 14: 2 red, 4 blue, 2 green; 2 green, 5 red, 1 blue; 1 red, 6 blue
15 | Game 15: 7 blue, 3 red; 13 blue, 8 red, 1 green; 1 green, 5 red, 13 blue; 8 red, 5 blue; 4 red, 3 blue, 1 green; 12 blue, 8 red, 1 green
16 | Game 16: 5 blue, 1 green, 2 red; 2 blue, 20 green; 4 blue, 1 red, 17 green; 10 green, 5 blue, 2 red
17 | Game 17: 6 red, 13 blue, 8 green; 12 blue, 7 green, 9 red; 19 blue, 5 red; 2 green, 8 red, 14 blue
18 | Game 18: 5 red, 2 green, 1 blue; 8 blue, 17 red, 9 green; 2 blue, 1 green; 4 blue, 10 red; 5 blue, 4 red, 6 green
19 | Game 19: 5 red, 12 green; 8 red, 13 green, 1 blue; 1 red, 1 green, 3 blue; 5 green, 5 red
20 | Game 20: 11 red, 8 blue; 9 red, 2 green, 13 blue; 2 red, 1 green, 2 blue; 1 green, 9 blue, 13 red; 3 blue, 5 red, 1 green
21 | Game 21: 1 red, 4 green, 11 blue; 3 green, 15 blue; 6 green, 7 red, 14 blue; 15 blue, 6 green, 10 red; 6 red, 16 blue, 2 green
22 | Game 22: 2 blue, 15 green, 2 red; 3 blue, 6 green, 1 red; 2 blue, 5 green, 1 red; 6 green, 2 red, 2 blue; 4 green, 2 blue; 4 blue, 1 red, 15 green
23 | Game 23: 2 blue, 1 green, 12 red; 5 blue, 11 red, 4 green; 12 red, 4 blue; 12 red, 2 green, 5 blue
24 | Game 24: 4 blue, 7 red; 3 red, 3 blue; 1 red, 4 blue; 2 green, 6 red, 6 blue; 7 red, 1 green, 2 blue; 6 red, 1 blue, 1 green
25 | Game 25: 5 green, 9 blue; 6 green, 7 red, 2 blue; 1 red, 3 blue, 7 green; 9 blue, 3 red; 5 green, 9 blue, 2 red
26 | Game 26: 6 red, 4 blue; 2 blue, 4 green; 3 green, 5 red, 5 blue; 4 green, 6 red, 3 blue; 4 green, 7 red, 4 blue
27 | Game 27: 15 green, 1 blue, 12 red; 12 red, 1 green; 1 red, 1 blue, 5 green; 13 green, 6 red, 1 blue; 5 red, 1 blue, 1 green; 11 red, 14 green
28 | Game 28: 3 blue, 2 green, 10 red; 5 blue, 2 green; 4 green, 3 blue, 11 red
29 | Game 29: 10 blue, 2 red; 17 green, 7 blue, 2 red; 1 blue, 8 green, 1 red; 10 green, 2 red, 3 blue
30 | Game 30: 10 green, 8 red, 1 blue; 4 blue, 7 green, 14 red; 2 blue, 14 red, 11 green; 1 blue, 13 green, 12 red; 5 blue, 2 red, 4 green; 4 green, 5 red
31 | Game 31: 4 green, 11 red, 11 blue; 3 blue, 11 red; 5 blue, 7 red, 3 green; 10 blue, 5 green, 1 red
32 | Game 32: 4 red, 8 blue, 1 green; 14 red, 7 blue, 4 green; 13 red, 3 blue, 9 green; 3 red, 1 green, 8 blue; 8 green, 8 red, 5 blue
33 | Game 33: 6 red, 10 blue, 7 green; 19 blue, 1 red; 6 green, 11 red, 11 blue; 2 green, 2 blue, 12 red; 3 red, 13 blue, 7 green; 6 green, 4 red, 2 blue
34 | Game 34: 3 red, 3 green, 15 blue; 7 green, 15 blue; 3 red, 2 green, 8 blue; 19 green, 18 blue
35 | Game 35: 2 green, 1 blue; 2 green, 2 blue, 1 red; 3 blue, 1 red, 1 green; 4 blue, 1 red
36 | Game 36: 1 red, 11 green; 1 green, 1 blue; 8 blue; 2 green, 3 red; 1 red
37 | Game 37: 4 blue, 3 red; 12 blue, 13 red; 2 red, 2 green, 8 blue
38 | Game 38: 8 red, 2 blue; 1 green, 2 red; 8 red, 2 green, 1 blue; 16 red, 2 green; 7 red, 2 blue, 2 green
39 | Game 39: 6 green, 1 blue, 5 red; 14 green, 8 blue, 6 red; 8 red, 10 blue, 1 green; 14 green, 9 red; 17 blue, 5 red; 1 blue, 7 green, 1 red
40 | Game 40: 4 red, 8 blue, 3 green; 13 blue, 1 red; 3 blue, 7 red, 3 green; 3 green, 8 blue, 10 red; 3 green, 20 blue, 5 red
41 | Game 41: 1 blue, 2 green; 11 green, 2 blue; 5 blue; 15 red, 8 green, 5 blue
42 | Game 42: 1 green, 12 blue, 1 red; 6 blue, 1 green, 5 red; 1 red, 11 blue, 4 green; 3 red, 17 blue, 1 green; 1 red, 11 blue; 9 blue, 6 green, 3 red
43 | Game 43: 16 blue, 13 green, 1 red; 17 blue, 7 red, 10 green; 13 green, 5 red, 7 blue
44 | Game 44: 2 blue, 4 red; 15 green, 7 red; 2 green, 1 blue; 6 red, 13 green
45 | Game 45: 5 green, 1 blue, 8 red; 4 red, 1 blue, 5 green; 1 green, 3 red; 1 green, 2 blue, 6 red; 4 red, 3 green, 2 blue; 2 red, 2 blue, 5 green
46 | Game 46: 1 green, 1 red, 6 blue; 11 blue; 1 red, 1 green, 7 blue; 8 blue; 1 green, 7 blue, 2 red
47 | Game 47: 7 green, 9 blue, 7 red; 11 red, 13 blue, 5 green; 12 green, 12 blue, 5 red; 4 blue, 8 green, 7 red
48 | Game 48: 11 green, 7 red, 2 blue; 2 blue, 10 green, 3 red; 1 blue, 2 red, 1 green; 4 green, 2 red, 7 blue; 7 red, 4 green, 2 blue
49 | Game 49: 1 red, 2 blue, 5 green; 2 green, 4 blue; 5 blue, 2 green, 1 red; 9 blue, 1 green; 7 blue
50 | Game 50: 8 green, 9 blue, 2 red; 2 green, 5 blue; 14 green, 1 red, 8 blue
51 | Game 51: 1 green, 2 blue; 12 blue, 1 red; 2 blue
52 | Game 52: 3 red, 2 blue, 2 green; 4 red, 4 green, 7 blue; 2 blue, 4 red, 1 green; 3 green; 1 red, 9 green, 7 blue
53 | Game 53: 9 blue, 12 red, 7 green; 8 blue, 6 green; 1 green, 8 blue, 9 red; 12 red, 6 green; 9 blue, 14 red, 10 green; 7 red, 3 green, 5 blue
54 | Game 54: 8 green, 5 blue, 5 red; 4 green, 13 blue, 2 red; 2 blue, 5 red, 1 green; 3 red, 3 green, 10 blue
55 | Game 55: 17 red, 15 green, 17 blue; 6 red, 5 green, 7 blue; 17 green, 6 blue, 5 red
56 | Game 56: 7 blue, 6 red, 7 green; 10 green, 3 red; 9 red, 3 blue, 5 green
57 | Game 57: 5 blue, 11 red, 1 green; 13 red, 1 green, 2 blue; 2 blue, 4 red; 1 green, 10 red, 1 blue; 1 green, 8 red
58 | Game 58: 1 red, 2 green, 9 blue; 1 green, 1 blue, 1 red; 2 red, 6 blue, 2 green; 14 blue, 1 green, 1 red; 5 blue, 1 red, 2 green; 14 blue, 2 green
59 | Game 59: 9 green, 2 blue, 5 red; 9 red, 5 green; 10 red, 1 blue, 8 green
60 | Game 60: 8 blue, 6 red, 4 green; 3 red, 12 green, 9 blue; 4 blue, 5 red, 5 green; 4 red, 8 blue; 7 green, 12 blue, 6 red
61 | Game 61: 5 blue, 13 red, 1 green; 5 red, 5 blue; 1 red, 3 blue; 1 green, 9 red; 10 red, 3 blue, 1 green
62 | Game 62: 1 blue, 13 red; 4 blue, 5 red; 11 blue, 8 red, 1 green
63 | Game 63: 14 blue, 5 red; 9 blue, 14 green, 5 red; 3 red, 8 green, 15 blue; 4 blue, 15 green, 6 red
64 | Game 64: 13 red, 6 blue, 11 green; 12 red, 1 blue, 8 green; 1 red, 17 green; 13 red, 12 green, 7 blue
65 | Game 65: 4 red, 17 blue, 3 green; 2 green, 12 blue, 9 red; 2 green, 17 blue, 5 red; 1 red, 1 green, 4 blue; 9 red, 16 blue; 7 blue, 9 red
66 | Game 66: 10 blue, 10 green, 5 red; 10 green, 3 blue, 5 red; 1 red, 1 green, 10 blue; 2 green, 5 red, 20 blue; 8 blue, 11 green, 13 red; 2 green, 18 blue, 2 red
67 | Game 67: 6 red, 1 green; 5 red, 10 blue; 6 blue, 6 red
68 | Game 68: 4 green, 1 red, 5 blue; 5 red, 5 blue; 7 red, 6 green; 8 red, 1 blue
69 | Game 69: 2 blue, 11 red; 4 red, 6 green, 1 blue; 4 red, 1 blue, 14 green
70 | Game 70: 15 red, 8 blue, 5 green; 5 green, 2 red, 8 blue; 8 red, 3 green, 10 blue
71 | Game 71: 4 blue, 2 red; 12 green, 4 blue; 10 green
72 | Game 72: 3 blue, 4 green, 6 red; 6 red, 5 green, 8 blue; 10 red, 6 green, 5 blue; 1 green, 2 blue; 10 red, 5 blue, 4 green
73 | Game 73: 5 blue, 1 red; 1 green, 11 blue; 10 blue; 12 blue, 1 red; 1 red, 9 blue; 7 blue, 1 green, 1 red
74 | Game 74: 7 green, 6 blue, 7 red; 7 blue, 6 green, 15 red; 7 red, 5 blue, 1 green; 1 blue, 6 red, 8 green; 8 green, 14 red, 3 blue
75 | Game 75: 8 green, 3 red, 3 blue; 1 blue, 6 red, 7 green; 9 green, 3 blue; 3 blue, 9 green, 6 red; 4 blue, 1 red, 3 green; 4 green, 1 blue, 16 red
76 | Game 76: 4 blue, 3 green; 2 blue, 1 red, 6 green; 12 blue; 1 green, 14 blue
77 | Game 77: 5 green, 10 red, 11 blue; 3 red; 8 green, 6 red, 9 blue
78 | Game 78: 7 red, 7 green; 8 blue; 6 green, 7 red, 5 blue
79 | Game 79: 11 blue, 2 red, 4 green; 2 green, 3 red, 15 blue; 1 green, 15 blue, 1 red
80 | Game 80: 3 red, 17 green, 8 blue; 8 green, 10 blue; 4 green, 1 red, 14 blue
81 | Game 81: 17 green, 10 red, 10 blue; 9 green, 9 blue, 7 red; 11 red, 11 green, 4 blue; 15 blue, 5 red; 11 blue, 8 green, 15 red; 3 green, 16 red
82 | Game 82: 8 green, 9 blue, 1 red; 1 red, 8 green, 9 blue; 2 green, 12 blue
83 | Game 83: 2 green, 11 red, 20 blue; 20 blue, 1 green, 4 red; 2 green, 6 red, 20 blue; 17 blue, 10 red
84 | Game 84: 1 green, 9 red; 4 blue, 4 green; 1 green, 6 red, 14 blue
85 | Game 85: 5 red, 10 green, 9 blue; 8 blue, 3 green, 2 red; 4 blue, 14 green, 3 red; 5 red, 4 blue
86 | Game 86: 8 blue, 9 green, 5 red; 5 red, 10 green, 1 blue; 15 blue, 1 red, 2 green; 8 red, 8 blue, 10 green
87 | Game 87: 13 green, 2 red, 4 blue; 3 red, 11 green, 9 blue; 6 blue, 3 red, 12 green
88 | Game 88: 2 red, 7 blue, 3 green; 2 blue, 9 red; 9 red, 6 blue, 7 green; 6 green, 13 blue, 9 red; 6 green, 2 red, 15 blue; 1 red, 8 green, 7 blue
89 | Game 89: 11 red, 1 blue, 2 green; 6 blue, 5 green, 4 red; 15 red, 4 green, 5 blue; 11 red, 3 blue, 10 green; 6 blue, 13 green, 12 red
90 | Game 90: 2 red, 2 blue, 4 green; 2 red, 2 blue; 9 green, 1 red, 1 blue; 5 green, 1 red; 7 green, 2 red; 2 green, 1 blue
91 | Game 91: 5 blue, 3 red, 1 green; 1 red, 4 blue, 6 green; 6 blue, 6 green, 5 red
92 | Game 92: 16 green, 1 blue, 12 red; 18 green, 14 red, 1 blue; 16 red, 1 green; 4 blue, 16 red, 18 green
93 | Game 93: 9 red, 8 blue, 14 green; 1 blue, 1 green, 6 red; 4 blue, 4 red, 14 green
94 | Game 94: 11 green, 4 blue, 2 red; 1 red, 1 green, 1 blue; 4 red, 1 blue, 2 green
95 | Game 95: 5 blue, 2 red, 9 green; 5 blue, 8 green; 1 green, 15 blue; 5 red, 9 green, 5 blue; 3 green, 17 blue, 5 red
96 | Game 96: 2 green, 14 blue, 1 red; 3 green, 3 red, 14 blue; 2 red, 2 green, 13 blue
97 | Game 97: 2 green, 2 red; 2 blue, 1 green; 7 blue, 3 red
98 | Game 98: 2 red, 1 blue, 12 green; 2 blue, 10 green, 5 red; 11 green, 9 blue; 6 blue, 17 green; 7 blue, 9 green, 9 red; 1 red, 11 green, 9 blue
99 | Game 99: 2 green, 9 red, 1 blue; 3 green, 1 blue, 14 red; 5 green, 6 blue; 1 blue, 2 green, 3 red; 4 blue, 10 red, 1 green
100 | Game 100: 4 green, 4 blue, 15 red; 3 green, 1 red, 13 blue; 5 green, 5 blue, 10 red
--------------------------------------------------------------------------------
/day2/part2.txt:
--------------------------------------------------------------------------------
1 | Game 1: 1 green, 2 red, 6 blue; 4 red, 1 green, 3 blue; 7 blue, 5 green; 6 blue, 2 red, 1 green
2 | Game 2: 1 green, 17 red; 1 blue, 6 red, 7 green; 2 blue, 4 red, 7 green; 1 green, 6 red, 2 blue
3 | Game 3: 6 red, 15 blue, 15 green; 1 green, 4 red, 12 blue; 14 blue, 9 red, 1 green; 2 red, 15 blue, 12 green
4 | Game 4: 8 green, 10 blue, 6 red; 20 blue, 4 red; 17 blue, 2 green, 3 red; 4 blue, 2 green, 3 red; 10 red, 3 blue, 3 green; 5 green, 14 blue, 6 red
5 | Game 5: 3 green, 8 blue, 2 red; 11 red, 6 green, 11 blue; 8 red, 5 blue, 2 green
6 | Game 6: 2 blue, 12 red, 2 green; 3 green, 2 red; 3 green, 3 blue, 10 red; 7 red, 2 blue, 4 green; 1 red, 2 blue, 5 green
7 | Game 7: 1 red, 8 blue, 2 green; 1 red, 2 blue, 12 green; 1 blue; 3 blue, 3 green
8 | Game 8: 10 green, 4 red, 4 blue; 12 green, 1 blue; 1 red, 13 green, 2 blue; 12 green, 3 blue; 9 green, 7 red
9 | Game 9: 1 green, 1 blue, 3 red; 3 blue, 3 red, 8 green; 6 blue, 4 red, 6 green; 2 red, 7 green; 1 red, 10 green, 13 blue; 5 red, 1 blue, 1 green
10 | Game 10: 9 green, 3 red, 3 blue; 12 green, 2 blue; 18 green, 1 blue; 14 green; 2 blue, 9 green, 2 red
11 | Game 11: 14 green; 2 green, 2 red, 11 blue; 9 blue, 3 green
12 | Game 12: 9 green, 3 blue, 8 red; 1 green, 2 blue, 3 red; 4 blue, 8 red, 10 green; 3 blue, 7 red, 8 green; 3 blue, 5 red, 7 green; 2 blue, 5 green
13 | Game 13: 6 red, 1 blue, 10 green; 7 red, 1 green; 8 red, 2 green, 1 blue
14 | Game 14: 2 red, 4 blue, 2 green; 2 green, 5 red, 1 blue; 1 red, 6 blue
15 | Game 15: 7 blue, 3 red; 13 blue, 8 red, 1 green; 1 green, 5 red, 13 blue; 8 red, 5 blue; 4 red, 3 blue, 1 green; 12 blue, 8 red, 1 green
16 | Game 16: 5 blue, 1 green, 2 red; 2 blue, 20 green; 4 blue, 1 red, 17 green; 10 green, 5 blue, 2 red
17 | Game 17: 6 red, 13 blue, 8 green; 12 blue, 7 green, 9 red; 19 blue, 5 red; 2 green, 8 red, 14 blue
18 | Game 18: 5 red, 2 green, 1 blue; 8 blue, 17 red, 9 green; 2 blue, 1 green; 4 blue, 10 red; 5 blue, 4 red, 6 green
19 | Game 19: 5 red, 12 green; 8 red, 13 green, 1 blue; 1 red, 1 green, 3 blue; 5 green, 5 red
20 | Game 20: 11 red, 8 blue; 9 red, 2 green, 13 blue; 2 red, 1 green, 2 blue; 1 green, 9 blue, 13 red; 3 blue, 5 red, 1 green
21 | Game 21: 1 red, 4 green, 11 blue; 3 green, 15 blue; 6 green, 7 red, 14 blue; 15 blue, 6 green, 10 red; 6 red, 16 blue, 2 green
22 | Game 22: 2 blue, 15 green, 2 red; 3 blue, 6 green, 1 red; 2 blue, 5 green, 1 red; 6 green, 2 red, 2 blue; 4 green, 2 blue; 4 blue, 1 red, 15 green
23 | Game 23: 2 blue, 1 green, 12 red; 5 blue, 11 red, 4 green; 12 red, 4 blue; 12 red, 2 green, 5 blue
24 | Game 24: 4 blue, 7 red; 3 red, 3 blue; 1 red, 4 blue; 2 green, 6 red, 6 blue; 7 red, 1 green, 2 blue; 6 red, 1 blue, 1 green
25 | Game 25: 5 green, 9 blue; 6 green, 7 red, 2 blue; 1 red, 3 blue, 7 green; 9 blue, 3 red; 5 green, 9 blue, 2 red
26 | Game 26: 6 red, 4 blue; 2 blue, 4 green; 3 green, 5 red, 5 blue; 4 green, 6 red, 3 blue; 4 green, 7 red, 4 blue
27 | Game 27: 15 green, 1 blue, 12 red; 12 red, 1 green; 1 red, 1 blue, 5 green; 13 green, 6 red, 1 blue; 5 red, 1 blue, 1 green; 11 red, 14 green
28 | Game 28: 3 blue, 2 green, 10 red; 5 blue, 2 green; 4 green, 3 blue, 11 red
29 | Game 29: 10 blue, 2 red; 17 green, 7 blue, 2 red; 1 blue, 8 green, 1 red; 10 green, 2 red, 3 blue
30 | Game 30: 10 green, 8 red, 1 blue; 4 blue, 7 green, 14 red; 2 blue, 14 red, 11 green; 1 blue, 13 green, 12 red; 5 blue, 2 red, 4 green; 4 green, 5 red
31 | Game 31: 4 green, 11 red, 11 blue; 3 blue, 11 red; 5 blue, 7 red, 3 green; 10 blue, 5 green, 1 red
32 | Game 32: 4 red, 8 blue, 1 green; 14 red, 7 blue, 4 green; 13 red, 3 blue, 9 green; 3 red, 1 green, 8 blue; 8 green, 8 red, 5 blue
33 | Game 33: 6 red, 10 blue, 7 green; 19 blue, 1 red; 6 green, 11 red, 11 blue; 2 green, 2 blue, 12 red; 3 red, 13 blue, 7 green; 6 green, 4 red, 2 blue
34 | Game 34: 3 red, 3 green, 15 blue; 7 green, 15 blue; 3 red, 2 green, 8 blue; 19 green, 18 blue
35 | Game 35: 2 green, 1 blue; 2 green, 2 blue, 1 red; 3 blue, 1 red, 1 green; 4 blue, 1 red
36 | Game 36: 1 red, 11 green; 1 green, 1 blue; 8 blue; 2 green, 3 red; 1 red
37 | Game 37: 4 blue, 3 red; 12 blue, 13 red; 2 red, 2 green, 8 blue
38 | Game 38: 8 red, 2 blue; 1 green, 2 red; 8 red, 2 green, 1 blue; 16 red, 2 green; 7 red, 2 blue, 2 green
39 | Game 39: 6 green, 1 blue, 5 red; 14 green, 8 blue, 6 red; 8 red, 10 blue, 1 green; 14 green, 9 red; 17 blue, 5 red; 1 blue, 7 green, 1 red
40 | Game 40: 4 red, 8 blue, 3 green; 13 blue, 1 red; 3 blue, 7 red, 3 green; 3 green, 8 blue, 10 red; 3 green, 20 blue, 5 red
41 | Game 41: 1 blue, 2 green; 11 green, 2 blue; 5 blue; 15 red, 8 green, 5 blue
42 | Game 42: 1 green, 12 blue, 1 red; 6 blue, 1 green, 5 red; 1 red, 11 blue, 4 green; 3 red, 17 blue, 1 green; 1 red, 11 blue; 9 blue, 6 green, 3 red
43 | Game 43: 16 blue, 13 green, 1 red; 17 blue, 7 red, 10 green; 13 green, 5 red, 7 blue
44 | Game 44: 2 blue, 4 red; 15 green, 7 red; 2 green, 1 blue; 6 red, 13 green
45 | Game 45: 5 green, 1 blue, 8 red; 4 red, 1 blue, 5 green; 1 green, 3 red; 1 green, 2 blue, 6 red; 4 red, 3 green, 2 blue; 2 red, 2 blue, 5 green
46 | Game 46: 1 green, 1 red, 6 blue; 11 blue; 1 red, 1 green, 7 blue; 8 blue; 1 green, 7 blue, 2 red
47 | Game 47: 7 green, 9 blue, 7 red; 11 red, 13 blue, 5 green; 12 green, 12 blue, 5 red; 4 blue, 8 green, 7 red
48 | Game 48: 11 green, 7 red, 2 blue; 2 blue, 10 green, 3 red; 1 blue, 2 red, 1 green; 4 green, 2 red, 7 blue; 7 red, 4 green, 2 blue
49 | Game 49: 1 red, 2 blue, 5 green; 2 green, 4 blue; 5 blue, 2 green, 1 red; 9 blue, 1 green; 7 blue
50 | Game 50: 8 green, 9 blue, 2 red; 2 green, 5 blue; 14 green, 1 red, 8 blue
51 | Game 51: 1 green, 2 blue; 12 blue, 1 red; 2 blue
52 | Game 52: 3 red, 2 blue, 2 green; 4 red, 4 green, 7 blue; 2 blue, 4 red, 1 green; 3 green; 1 red, 9 green, 7 blue
53 | Game 53: 9 blue, 12 red, 7 green; 8 blue, 6 green; 1 green, 8 blue, 9 red; 12 red, 6 green; 9 blue, 14 red, 10 green; 7 red, 3 green, 5 blue
54 | Game 54: 8 green, 5 blue, 5 red; 4 green, 13 blue, 2 red; 2 blue, 5 red, 1 green; 3 red, 3 green, 10 blue
55 | Game 55: 17 red, 15 green, 17 blue; 6 red, 5 green, 7 blue; 17 green, 6 blue, 5 red
56 | Game 56: 7 blue, 6 red, 7 green; 10 green, 3 red; 9 red, 3 blue, 5 green
57 | Game 57: 5 blue, 11 red, 1 green; 13 red, 1 green, 2 blue; 2 blue, 4 red; 1 green, 10 red, 1 blue; 1 green, 8 red
58 | Game 58: 1 red, 2 green, 9 blue; 1 green, 1 blue, 1 red; 2 red, 6 blue, 2 green; 14 blue, 1 green, 1 red; 5 blue, 1 red, 2 green; 14 blue, 2 green
59 | Game 59: 9 green, 2 blue, 5 red; 9 red, 5 green; 10 red, 1 blue, 8 green
60 | Game 60: 8 blue, 6 red, 4 green; 3 red, 12 green, 9 blue; 4 blue, 5 red, 5 green; 4 red, 8 blue; 7 green, 12 blue, 6 red
61 | Game 61: 5 blue, 13 red, 1 green; 5 red, 5 blue; 1 red, 3 blue; 1 green, 9 red; 10 red, 3 blue, 1 green
62 | Game 62: 1 blue, 13 red; 4 blue, 5 red; 11 blue, 8 red, 1 green
63 | Game 63: 14 blue, 5 red; 9 blue, 14 green, 5 red; 3 red, 8 green, 15 blue; 4 blue, 15 green, 6 red
64 | Game 64: 13 red, 6 blue, 11 green; 12 red, 1 blue, 8 green; 1 red, 17 green; 13 red, 12 green, 7 blue
65 | Game 65: 4 red, 17 blue, 3 green; 2 green, 12 blue, 9 red; 2 green, 17 blue, 5 red; 1 red, 1 green, 4 blue; 9 red, 16 blue; 7 blue, 9 red
66 | Game 66: 10 blue, 10 green, 5 red; 10 green, 3 blue, 5 red; 1 red, 1 green, 10 blue; 2 green, 5 red, 20 blue; 8 blue, 11 green, 13 red; 2 green, 18 blue, 2 red
67 | Game 67: 6 red, 1 green; 5 red, 10 blue; 6 blue, 6 red
68 | Game 68: 4 green, 1 red, 5 blue; 5 red, 5 blue; 7 red, 6 green; 8 red, 1 blue
69 | Game 69: 2 blue, 11 red; 4 red, 6 green, 1 blue; 4 red, 1 blue, 14 green
70 | Game 70: 15 red, 8 blue, 5 green; 5 green, 2 red, 8 blue; 8 red, 3 green, 10 blue
71 | Game 71: 4 blue, 2 red; 12 green, 4 blue; 10 green
72 | Game 72: 3 blue, 4 green, 6 red; 6 red, 5 green, 8 blue; 10 red, 6 green, 5 blue; 1 green, 2 blue; 10 red, 5 blue, 4 green
73 | Game 73: 5 blue, 1 red; 1 green, 11 blue; 10 blue; 12 blue, 1 red; 1 red, 9 blue; 7 blue, 1 green, 1 red
74 | Game 74: 7 green, 6 blue, 7 red; 7 blue, 6 green, 15 red; 7 red, 5 blue, 1 green; 1 blue, 6 red, 8 green; 8 green, 14 red, 3 blue
75 | Game 75: 8 green, 3 red, 3 blue; 1 blue, 6 red, 7 green; 9 green, 3 blue; 3 blue, 9 green, 6 red; 4 blue, 1 red, 3 green; 4 green, 1 blue, 16 red
76 | Game 76: 4 blue, 3 green; 2 blue, 1 red, 6 green; 12 blue; 1 green, 14 blue
77 | Game 77: 5 green, 10 red, 11 blue; 3 red; 8 green, 6 red, 9 blue
78 | Game 78: 7 red, 7 green; 8 blue; 6 green, 7 red, 5 blue
79 | Game 79: 11 blue, 2 red, 4 green; 2 green, 3 red, 15 blue; 1 green, 15 blue, 1 red
80 | Game 80: 3 red, 17 green, 8 blue; 8 green, 10 blue; 4 green, 1 red, 14 blue
81 | Game 81: 17 green, 10 red, 10 blue; 9 green, 9 blue, 7 red; 11 red, 11 green, 4 blue; 15 blue, 5 red; 11 blue, 8 green, 15 red; 3 green, 16 red
82 | Game 82: 8 green, 9 blue, 1 red; 1 red, 8 green, 9 blue; 2 green, 12 blue
83 | Game 83: 2 green, 11 red, 20 blue; 20 blue, 1 green, 4 red; 2 green, 6 red, 20 blue; 17 blue, 10 red
84 | Game 84: 1 green, 9 red; 4 blue, 4 green; 1 green, 6 red, 14 blue
85 | Game 85: 5 red, 10 green, 9 blue; 8 blue, 3 green, 2 red; 4 blue, 14 green, 3 red; 5 red, 4 blue
86 | Game 86: 8 blue, 9 green, 5 red; 5 red, 10 green, 1 blue; 15 blue, 1 red, 2 green; 8 red, 8 blue, 10 green
87 | Game 87: 13 green, 2 red, 4 blue; 3 red, 11 green, 9 blue; 6 blue, 3 red, 12 green
88 | Game 88: 2 red, 7 blue, 3 green; 2 blue, 9 red; 9 red, 6 blue, 7 green; 6 green, 13 blue, 9 red; 6 green, 2 red, 15 blue; 1 red, 8 green, 7 blue
89 | Game 89: 11 red, 1 blue, 2 green; 6 blue, 5 green, 4 red; 15 red, 4 green, 5 blue; 11 red, 3 blue, 10 green; 6 blue, 13 green, 12 red
90 | Game 90: 2 red, 2 blue, 4 green; 2 red, 2 blue; 9 green, 1 red, 1 blue; 5 green, 1 red; 7 green, 2 red; 2 green, 1 blue
91 | Game 91: 5 blue, 3 red, 1 green; 1 red, 4 blue, 6 green; 6 blue, 6 green, 5 red
92 | Game 92: 16 green, 1 blue, 12 red; 18 green, 14 red, 1 blue; 16 red, 1 green; 4 blue, 16 red, 18 green
93 | Game 93: 9 red, 8 blue, 14 green; 1 blue, 1 green, 6 red; 4 blue, 4 red, 14 green
94 | Game 94: 11 green, 4 blue, 2 red; 1 red, 1 green, 1 blue; 4 red, 1 blue, 2 green
95 | Game 95: 5 blue, 2 red, 9 green; 5 blue, 8 green; 1 green, 15 blue; 5 red, 9 green, 5 blue; 3 green, 17 blue, 5 red
96 | Game 96: 2 green, 14 blue, 1 red; 3 green, 3 red, 14 blue; 2 red, 2 green, 13 blue
97 | Game 97: 2 green, 2 red; 2 blue, 1 green; 7 blue, 3 red
98 | Game 98: 2 red, 1 blue, 12 green; 2 blue, 10 green, 5 red; 11 green, 9 blue; 6 blue, 17 green; 7 blue, 9 green, 9 red; 1 red, 11 green, 9 blue
99 | Game 99: 2 green, 9 red, 1 blue; 3 green, 1 blue, 14 red; 5 green, 6 blue; 1 blue, 2 green, 3 red; 4 blue, 10 red, 1 green
100 | Game 100: 4 green, 4 blue, 15 red; 3 green, 1 red, 13 blue; 5 green, 5 blue, 10 red
--------------------------------------------------------------------------------
/day7/src/input/input.txt:
--------------------------------------------------------------------------------
1 | Q4QKK 465
2 | 28555 580
3 | JJQK2 602
4 | 84448 722
5 | 7QQ7Q 734
6 | KKKAK 278
7 | JQ274 574
8 | 9J242 805
9 | A33AK 619
10 | TAK9T 659
11 | 34QK8 514
12 | 23273 199
13 | T8TT8 318
14 | 333TT 101
15 | 5A955 482
16 | TT5KJ 784
17 | 59K37 126
18 | T59TQ 890
19 | 3K549 806
20 | 37QQ3 655
21 | TJ5T4 958
22 | 8Q7KQ 148
23 | 888AT 868
24 | 4KKKA 67
25 | QQQ8Q 520
26 | 555Q5 325
27 | 8T4K2 132
28 | K32Q5 399
29 | QQ455 937
30 | 55QQQ 592
31 | 63T89 220
32 | 434Q4 254
33 | 88KK8 944
34 | 79799 793
35 | KJKKK 725
36 | 99J59 70
37 | 73777 788
38 | 5892A 641
39 | J8JJJ 26
40 | 76676 336
41 | 55T5T 354
42 | 5755T 431
43 | 22299 746
44 | 82462 803
45 | 3J63J 408
46 | 95999 711
47 | Q59K6 511
48 | QKJK4 977
49 | QQKK9 606
50 | QQ9Q9 47
51 | A2TQ5 214
52 | 68A88 281
53 | TQA64 453
54 | T4633 648
55 | 95959 53
56 | 23377 293
57 | 39993 844
58 | 8QTT8 974
59 | 95655 10
60 | AAQ4Q 773
61 | 69243 213
62 | 44244 953
63 | 6297T 850
64 | KAAK4 443
65 | Q77J2 865
66 | J4A3A 651
67 | 3Q7Q7 163
68 | 9A28T 129
69 | J2277 68
70 | AAAAT 568
71 | T33TT 907
72 | KA3Q9 942
73 | 67787 21
74 | 9TAJA 751
75 | K6KKK 485
76 | 5T4J5 900
77 | 3TKTK 207
78 | 4KQQ4 961
79 | TTQ4T 613
80 | K6TQ4 906
81 | A8K8Q 965
82 | 63QJ5 807
83 | 597Q7 634
84 | 64664 723
85 | 63479 505
86 | JQQ7Q 870
87 | JT888 185
88 | 7JTQ8 650
89 | 9888J 7
90 | 6646T 405
91 | 9J66J 140
92 | 2JT22 194
93 | K5KKK 361
94 | T7T79 274
95 | 33535 758
96 | 27638 314
97 | 99699 49
98 | K2QQQ 351
99 | 2K72K 92
100 | J63KK 702
101 | J7KT5 795
102 | J6KJ5 770
103 | 97K99 928
104 | K376Q 139
105 | 882AT 34
106 | KK8K8 995
107 | 98AQA 894
108 | 5928Q 364
109 | AA6A5 633
110 | T96Q4 249
111 | 96696 567
112 | AQ9A5 855
113 | Q6Q44 335
114 | 6K2A8 763
115 | 7665Q 295
116 | J7364 89
117 | 88848 875
118 | 285K3 623
119 | 6932T 735
120 | 999T6 484
121 | 77888 903
122 | J8888 261
123 | 324A2 610
124 | Q6Q53 662
125 | 83QTQ 499
126 | J6666 256
127 | 5Q5Q2 507
128 | T6A4K 787
129 | J5AT5 210
130 | AQ39Q 400
131 | 8K6K2 331
132 | J3Q44 280
133 | KK8KK 926
134 | 66784 923
135 | 87K88 142
136 | 7J235 445
137 | 4QQ44 676
138 | 84KKK 30
139 | 65J56 169
140 | 3AA3A 631
141 | QTQ4Q 760
142 | A5A5J 342
143 | 5QT5T 674
144 | 9K549 776
145 | T2232 343
146 | 96Q66 616
147 | 8J899 597
148 | J76A6 116
149 | 77388 321
150 | 53333 433
151 | KK797 394
152 | 9J53Q 545
153 | 5K9KK 985
154 | 66868 874
155 | J6T63 654
156 | 9A333 696
157 | 678JJ 738
158 | AATAT 812
159 | AAT6J 801
160 | JTTQK 441
161 | 75757 993
162 | JQ4QQ 523
163 | 222JJ 671
164 | Q5552 459
165 | 944J9 133
166 | 69A8A 588
167 | A75K6 872
168 | KKK44 661
169 | 2K43Q 83
170 | 3KKKK 350
171 | 47773 887
172 | 35858 710
173 | K65T9 731
174 | ATQ8J 496
175 | 8K484 397
176 | TT9QT 157
177 | 2J332 630
178 | 5K3K4 743
179 | 68J26 135
180 | 555J5 975
181 | K4KQT 452
182 | QAAAA 884
183 | 8J4J9 398
184 | 4TJ77 679
185 | 55585 93
186 | J9A4T 182
187 | 42942 503
188 | 5JK2A 151
189 | 2T2K7 672
190 | 4Q2T5 563
191 | 22422 291
192 | 28868 947
193 | KT7KK 759
194 | JQQ88 31
195 | 8273K 54
196 | 55588 418
197 | 5K28K 849
198 | 2Q279 896
199 | 65995 590
200 | 723A4 598
201 | 6KA74 127
202 | KK333 284
203 | 44696 714
204 | 777Q7 277
205 | K469A 673
206 | 433QJ 862
207 | A4442 512
208 | 66624 665
209 | 8AA88 536
210 | 7777J 268
211 | A7575 586
212 | 7K42Q 789
213 | 6A32A 159
214 | T97Q6 218
215 | KJA5J 108
216 | 363AJ 510
217 | 4JAT7 960
218 | 88898 534
219 | 2Q2J7 383
220 | 57A9T 852
221 | TJ9TQ 750
222 | 9T748 775
223 | QTA83 13
224 | 4KK5K 701
225 | Q8482 72
226 | 66655 109
227 | 6TTTT 381
228 | A33JA 779
229 | 62AAA 968
230 | 3KA2Q 924
231 | 2J54A 444
232 | 6A285 886
233 | 63697 595
234 | 459QA 134
235 | JK5KQ 41
236 | 34628 231
237 | 94544 446
238 | K6JK6 824
239 | KKTT6 815
240 | 22229 327
241 | 88TT8 916
242 | K6J56 2
243 | T7A73 945
244 | 2J222 555
245 | 727T2 106
246 | K5664 390
247 | KJ77Q 326
248 | 555A5 272
249 | 55757 943
250 | 33447 128
251 | 4A37Q 462
252 | 7JJ2T 609
253 | 5T2T5 920
254 | 49932 219
255 | 9J297 221
256 | QK2J2 332
257 | J23KK 745
258 | 8A5K4 854
259 | 374K5 371
260 | 35Q7T 663
261 | 666T6 721
262 | 9K9Q3 842
263 | J55J2 73
264 | AT6AA 969
265 | 2TAQK 689
266 | KQ9QQ 486
267 | 99KJ9 996
268 | 4894Q 774
269 | T9J8Q 61
270 | TK6T6 488
271 | 7777K 226
272 | 77767 922
273 | K5QK8 12
274 | 45444 740
275 | 4A448 752
276 | A8793 426
277 | 3393J 771
278 | 7JTTT 830
279 | 434J9 938
280 | 66656 470
281 | 6JJ66 333
282 | 444J4 170
283 | 33JJJ 800
284 | Q2K79 467
285 | 254JK 757
286 | 9994Q 186
287 | 94499 804
288 | J86K6 908
289 | J8K8K 946
290 | 4276T 164
291 | K9QAA 695
292 | 779AT 519
293 | 7K463 660
294 | 55454 208
295 | KK8K9 339
296 | QJJK9 146
297 | 6K3J6 538
298 | 38T79 732
299 | 6QQ6Q 474
300 | Q8J4K 299
301 | 99T99 475
302 | 3JK42 87
303 | T8Q8J 107
304 | Q4QQK 682
305 | 3J333 811
306 | 54662 744
307 | JJ4J2 972
308 | 2QA87 473
309 | 249TK 51
310 | 65JA9 251
311 | AAA6A 871
312 | QTT73 222
313 | 44J45 670
314 | 47747 3
315 | 2T299 604
316 | 9A922 122
317 | 4T428 359
318 | 4744T 814
319 | 944QQ 532
320 | 28JA8 522
321 | JJJJJ 230
322 | 88432 910
323 | K6TAJ 315
324 | K7AA3 544
325 | 6729J 600
326 | 95QQQ 300
327 | T7J77 976
328 | J448T 587
329 | 72J58 412
330 | T8888 168
331 | 83333 450
332 | 98Q9T 298
333 | 5249Q 352
334 | 58656 558
335 | 347JA 579
336 | 27222 893
337 | 4QK82 131
338 | 5TTT8 994
339 | 43494 454
340 | 474TT 458
341 | 22338 728
342 | 77AJ8 562
343 | 86633 410
344 | Q7J5A 501
345 | 955J2 242
346 | QQQ79 835
347 | ATAQT 525
348 | A5AAA 178
349 | 39287 289
350 | KTKQK 845
351 | 364K2 449
352 | AK3A2 259
353 | 627J2 138
354 | K8K82 285
355 | 66669 794
356 | 6Q2TA 911
357 | TTJTJ 24
358 | KKK33 997
359 | QKKQK 372
360 | 3K7QQ 264
361 | 62994 175
362 | 3T244 227
363 | Q77K7 14
364 | 88568 44
365 | 8JT98 404
366 | 7277Q 250
367 | 66555 529
368 | 2KJK2 709
369 | 94T85 263
370 | T6652 313
371 | 53555 113
372 | J5T88 432
373 | Q6949 624
374 | TKTA8 202
375 | 96667 748
376 | 4AAAA 491
377 | 4A4K4 329
378 | 6252K 998
379 | 4Q269 347
380 | Q3QQ3 95
381 | 488J6 262
382 | 99J9Q 100
383 | 82T77 591
384 | 35T22 362
385 | Q7KQQ 691
386 | A56A5 22
387 | 649Q4 898
388 | 53J22 301
389 | J4Q5Q 569
390 | 585QJ 81
391 | 82528 495
392 | K6TTT 32
393 | Q2222 737
394 | 2Q5T5 990
395 | Q888Q 341
396 | 8Q866 416
397 | 4449A 508
398 | 88KQQ 819
399 | AA274 879
400 | K8Q88 160
401 | 26TK5 237
402 | JJQQQ 492
403 | K52QA 490
404 | JJ974 223
405 | 7T846 136
406 | 32236 820
407 | 9AJ9A 239
408 | J6QQQ 380
409 | 97Q94 970
410 | 56552 856
411 | 6QQTQ 905
412 | JJ5AA 837
413 | K9TT9 103
414 | 8A9TA 267
415 | J8AA4 196
416 | 2ATAQ 897
417 | JQTJQ 279
418 | TTT2T 699
419 | T2TJ2 966
420 | JJ5J5 294
421 | J4K4K 60
422 | 63KKK 768
423 | AAAA7 38
424 | K4J44 502
425 | 23493 888
426 | 666KK 831
427 | TAQ58 434
428 | AK75T 319
429 | 565A8 769
430 | 58K88 705
431 | 97579 506
432 | TTQTT 120
433 | 5QQJ8 77
434 | 55KJ5 328
435 | Q6T3T 375
436 | KQ9T6 476
437 | 9K777 305
438 | TT5TT 581
439 | 5557K 955
440 | 69869 91
441 | Q6925 367
442 | 9624J 530
443 | 9A9A2 550
444 | 5854J 71
445 | T588T 857
446 | 74QA4 1
447 | 5TJ83 956
448 | T797J 413
449 | T6534 935
450 | T93T3 162
451 | 7A488 859
452 | 737A3 19
453 | 72877 195
454 | 3QAAA 78
455 | 44449 927
456 | 77792 420
457 | 43227 537
458 | K986T 84
459 | 3J444 754
460 | 83AA5 436
461 | 89T55 553
462 | 86JT6 603
463 | J22JT 461
464 | KQ8QQ 309
465 | 82292 43
466 | J6QQA 211
467 | T986J 62
468 | 38383 382
469 | 4AQ6Q 614
470 | 2223J 42
471 | 8T36A 435
472 | JTTAT 66
473 | 44QJQ 829
474 | 9TTTT 236
475 | JAJ4A 959
476 | 4QJ4J 621
477 | 34333 235
478 | Q2Q79 245
479 | Q2A22 388
480 | QQ44Q 635
481 | 58A54 539
482 | 26A87 440
483 | 727A9 149
484 | J33Q6 406
485 | 6479T 627
486 | KK66K 419
487 | 3333T 664
488 | KK9KK 317
489 | J2Q2Q 306
490 | K5K5K 201
491 | 44224 63
492 | 6644J 322
493 | QQQ3J 96
494 | A4AK4 212
495 | K46JQ 557
496 | J656J 608
497 | JAJAA 584
498 | K5KK8 615
499 | AAAA2 889
500 | T6T66 478
501 | QQTJ3 494
502 | 5QQ75 16
503 | 492QJ 909
504 | JKK9K 411
505 | 346KQ 144
506 | J27A7 403
507 | 88QQ4 707
508 | T6579 866
509 | TT669 358
510 | TKT84 847
511 | QAJQ4 848
512 | 9J9JA 229
513 | 3443A 479
514 | 455J3 154
515 | 43QQ3 762
516 | A9449 246
517 | JK666 417
518 | 5588J 448
519 | 5KAQ3 427
520 | 62A47 58
521 | K4Q74 632
522 | 9999Q 468
523 | 37537 785
524 | 8KT74 166
525 | K93Q2 428
526 | 2QQ5Q 688
527 | A6A22 873
528 | 5986A 424
529 | 74T36 677
530 | J3958 46
531 | 4J4Q4 451
532 | 64654 863
533 | 58TK3 409
534 | JK6KJ 348
535 | Q8QQJ 666
536 | QQQ53 35
537 | JAK28 839
538 | 6KKJK 713
539 | 23567 792
540 | QQ5QQ 147
541 | J9447 582
542 | 77QQ7 963
543 | 4T84K 204
544 | 44747 583
545 | K858Q 307
546 | 76J5A 542
547 | A57Q8 180
548 | 22262 252
549 | 7J689 105
550 | 44844 836
551 | 76674 23
552 | 7A22A 29
553 | 7JT56 570
554 | 7857J 456
555 | 9Q685 215
556 | 83878 190
557 | 277A7 172
558 | T5T5T 500
559 | 64464 477
560 | 4T445 65
561 | A43Q9 152
562 | JT5J7 310
563 | TTK55 715
564 | 7K85J 365
565 | 4A4AA 98
566 | Q68QJ 952
567 | 6T266 929
568 | 2442T 629
569 | 6A776 119
570 | Q57K2 369
571 | 555JJ 187
572 | 525TJ 438
573 | Q99K7 980
574 | Q9888 657
575 | 85854 967
576 | QK85T 930
577 | 332A3 667
578 | QJQQQ 243
579 | AAAA3 121
580 | 44TQT 270
581 | K35T6 637
582 | TJ7Q7 559
583 | TJT85 797
584 | J6J25 853
585 | J6348 593
586 | 7T6T7 498
587 | J222Q 877
588 | Q4QQQ 112
589 | Q93KQ 117
590 | 48934 258
591 | 44465 817
592 | AA66A 253
593 | TJTT2 167
594 | K67QK 384
595 | T2292 430
596 | 77337 344
597 | T99J8 192
598 | 334J4 982
599 | 2J939 833
600 | 23229 353
601 | TJ6Q5 912
602 | 36T8K 755
603 | 2822J 535
604 | 48446 5
605 | A8QA5 988
606 | 4J464 130
607 | K9K88 694
608 | A4777 266
609 | 888T9 17
610 | 33QQ3 639
611 | 67868 643
612 | T78T7 248
613 | 6382Q 577
614 | 444Q7 596
615 | 2222K 981
616 | 99KK4 288
617 | TJ4T4 575
618 | QTJTT 99
619 | 33QAA 97
620 | 525J5 189
621 | 24QQ3 864
622 | 8465J 936
623 | T48KA 571
624 | JT9TT 255
625 | 6Q6J8 517
626 | 24999 387
627 | TKAQJ 687
628 | 93944 914
629 | JT4Q3 158
630 | T76QT 481
631 | 48T9Q 225
632 | JJA6J 141
633 | 95555 549
634 | 4JK37 686
635 | 62662 197
636 | 68QA7 566
637 | J3742 747
638 | J8K9K 287
639 | QJ4J3 638
640 | AAKKK 607
641 | 72A6T 948
642 | JK2KK 878
643 | 67337 978
644 | TT8TT 895
645 | A8A8A 181
646 | 4K977 939
647 | K44AQ 102
648 | 5T264 33
649 | 54TQK 183
650 | 6K666 340
651 | KT9KK 366
652 | 3QQ9Q 742
653 | 5K829 311
654 | 2KK77 576
655 | 67A9Q 589
656 | J4A5Q 712
657 | 8ATTJ 345
658 | KK339 9
659 | 774J9 698
660 | 69996 652
661 | KQQKQ 548
662 | 43339 188
663 | J6585 681
664 | 62253 979
665 | 99J47 8
666 | 32522 425
667 | K43KQ 115
668 | 33Q33 483
669 | 55AA5 636
670 | 48Q54 973
671 | Q55QJ 184
672 | 9TTQ9 203
673 | 3J733 546
674 | 339JJ 556
675 | J62J2 48
676 | JT4Q5 780
677 | 99AA9 25
678 | KKJQJ 275
679 | 75A42 273
680 | QKTJ5 232
681 | 4JJ4T 808
682 | 7647K 786
683 | 22522 876
684 | 76737 599
685 | J8858 217
686 | 9Q45T 153
687 | 8JT2K 493
688 | 26634 913
689 | 7QJTA 302
690 | KK998 645
691 | 49TT8 840
692 | T22T6 904
693 | 9AK2A 899
694 | 3TQ7J 304
695 | 3A48Q 376
696 | 33TTJ 720
697 | 246A6 983
698 | 9TJ32 224
699 | 35343 605
700 | J4AQA 269
701 | 332T8 692
702 | KK9K9 949
703 | 87KJ8 917
704 | 56KK8 303
705 | 76K52 933
706 | AAJA2 82
707 | 38339 915
708 | J2299 391
709 | 677J7 826
710 | A22TA 316
711 | 69J6T 123
712 | 9JJ99 437
713 | J5624 730
714 | Q7QT7 292
715 | 5Q9QJ 547
716 | K876J 541
717 | 7JJ44 377
718 | K2435 901
719 | TK64T 228
720 | 8878J 902
721 | 99989 193
722 | 222TT 708
723 | QQ88Q 813
724 | 59294 668
725 | TKTKJ 50
726 | KQ893 932
727 | 3557T 265
728 | 7A396 110
729 | Q8888 85
730 | 36663 447
731 | 87A99 818
732 | 7442J 37
733 | TQ4T5 622
734 | 45J7J 20
735 | Q6697 414
736 | 2226Q 892
737 | Q7QQQ 233
738 | 5J395 429
739 | 22KJ6 986
740 | 662K6 94
741 | J7398 783
742 | AQJA8 843
743 | 78K8K 716
744 | Q4QTK 810
745 | J54J5 885
746 | 32223 238
747 | 97776 594
748 | 33693 69
749 | 47T2Q 286
750 | 2QA52 781
751 | Q4J22 761
752 | 99A6A 685
753 | 9A999 11
754 | 444Q4 200
755 | TAK95 56
756 | 7Q363 528
757 | KA99J 809
758 | QQTQQ 991
759 | 2KAK2 4
760 | 599K8 28
761 | TT27T 717
762 | 22525 165
763 | 78222 349
764 | A6667 838
765 | 3Q39T 393
766 | 87868 741
767 | 8AAJK 513
768 | TQ555 543
769 | 79777 925
770 | 866J6 560
771 | 72788 931
772 | 23TTT 374
773 | AA66T 772
774 | K75K4 356
775 | J6JKJ 509
776 | K3K4J 891
777 | 44443 276
778 | K8A88 611
779 | 8483A 753
780 | KKKJJ 312
781 | AA6JA 463
782 | K9TKT 704
783 | JTT66 296
784 | 6A987 869
785 | 22232 951
786 | 7K9A7 385
787 | K2223 987
788 | Q24AJ 554
789 | 766J8 240
790 | 8Q9JA 114
791 | 7AKJ9 736
792 | QQ9QQ 851
793 | 28AA2 124
794 | 3939K 179
795 | 3K284 324
796 | 94K3J 964
797 | 63333 883
798 | 89J45 143
799 | 8J2T2 471
800 | TT5QK 719
801 | JKQKQ 823
802 | A2898 407
803 | 4AK94 565
804 | K889J 260
805 | 8KQQT 950
806 | 59K59 104
807 | AA7TA 487
808 | 36666 308
809 | T64TJ 573
810 | 6864J 626
811 | 6Q4QQ 703
812 | AAQA4 75
813 | 9KJ9Q 649
814 | 26J22 257
815 | 99889 989
816 | KJTTT 881
817 | 83TK9 79
818 | 82828 765
819 | KKQK6 552
820 | J5JQQ 683
821 | A9A98 457
822 | KKK2K 290
823 | 49999 464
824 | 64QTJ 706
825 | 88Q7Q 55
826 | 23233 118
827 | 37333 739
828 | QTQTT 378
829 | AT8T7 767
830 | A687A 421
831 | 9A63T 15
832 | 325J9 749
833 | K7966 921
834 | AAAKK 489
835 | 29829 675
836 | 7377A 455
837 | KJ3KK 57
838 | 4QT2K 36
839 | J7384 718
840 | K3K77 656
841 | Q4J85 442
842 | 53AK9 39
843 | 53782 766
844 | Q4545 572
845 | 522TJ 330
846 | J4J42 472
847 | JA56A 497
848 | 64534 137
849 | 4J322 27
850 | 57777 111
851 | TT338 828
852 | 44J4J 984
853 | 8AAAA 612
854 | J7Q25 821
855 | Q7J57 368
856 | 88289 415
857 | 888JJ 646
858 | 36833 727
859 | T9TT2 271
860 | 44A88 802
861 | K33J2 155
862 | Q3TQT 59
863 | AK755 524
864 | 3J3J2 346
865 | AJ3TA 941
866 | 9635K 357
867 | 499JJ 234
868 | Q8884 337
869 | J8QJ8 678
870 | 3333A 860
871 | TT775 480
872 | AATAQ 882
873 | 5QQAA 247
874 | 95833 80
875 | 3TTQ8 690
876 | T32TJ 934
877 | QAQQ6 370
878 | A9998 684
879 | KTJ37 585
880 | 52JKJ 320
881 | 879A8 640
882 | 7KJ77 161
883 | 9QQAA 216
884 | 32J6T 373
885 | 389A5 76
886 | T988T 282
887 | 86865 518
888 | 45K45 578
889 | 8288T 796
890 | 96524 297
891 | 78J55 625
892 | QJQKT 954
893 | J4353 334
894 | 37KAJ 86
895 | 4J9TQ 401
896 | Q674K 940
897 | QQKQQ 617
898 | A2356 460
899 | 2A38K 825
900 | Q3TQ2 45
901 | 57AJ3 790
902 | 3A7J7 841
903 | A43A4 669
904 | 24AJ3 653
905 | 68666 466
906 | 33793 88
907 | 9J999 439
908 | 5J577 389
909 | 9Q7J6 173
910 | Q5T8T 540
911 | A7AT7 531
912 | T99TT 206
913 | 565A5 858
914 | 7935J 561
915 | A593Q 861
916 | 898A9 18
917 | A8887 392
918 | 424J2 40
919 | 36336 867
920 | 7J577 205
921 | 5JJ43 386
922 | TTTTJ 693
923 | QT624 628
924 | A7TT7 832
925 | K44K5 150
926 | 3J35Q 198
927 | 9T29A 726
928 | KK5J7 423
929 | AAJAT 396
930 | 37J7K 764
931 | 7TTT7 971
932 | 7K63A 647
933 | TT66T 515
934 | 4644A 798
935 | TJ944 177
936 | 2J6K9 323
937 | 47674 880
938 | AAJAA 379
939 | 86884 74
940 | 6J366 64
941 | ATQ2T 469
942 | 7J9QK 680
943 | TATT7 782
944 | Q7QQ4 52
945 | 52555 816
946 | AA9A5 156
947 | K2K8T 283
948 | 278J8 724
949 | 95Q55 360
950 | 3K332 516
951 | 7Q5A3 125
952 | TAATT 733
953 | 2K44K 363
954 | 58K74 601
955 | 7J77J 919
956 | 4474J 191
957 | 7T4JJ 521
958 | 22A6K 620
959 | 33T3J 244
960 | JTAJT 551
961 | 879Q5 338
962 | 67324 1000
963 | JJ333 918
964 | 887AA 957
965 | QTAKK 504
966 | 22A22 999
967 | A336A 700
968 | 4J93T 729
969 | K5555 992
970 | QTTAJ 846
971 | QT59A 791
972 | 42J4A 145
973 | JKK9T 526
974 | JA887 658
975 | J2255 618
976 | JQJ3Q 6
977 | 6A4JT 176
978 | 683J8 171
979 | A66Q6 533
980 | Q268J 527
981 | 8Q2K9 241
982 | 792T2 778
983 | QJJQA 402
984 | AAT24 827
985 | A75AA 697
986 | 99444 209
987 | AKA99 799
988 | 77667 777
989 | 52275 962
990 | 7688K 422
991 | 72689 174
992 | 99929 395
993 | TJ444 642
994 | 22Q2Q 90
995 | AJ447 834
996 | 58545 564
997 | JT5J4 756
998 | 86888 822
999 | 9A563 644
1000 | 666QQ 355
--------------------------------------------------------------------------------
/day8/src/input/input.txt:
--------------------------------------------------------------------------------
1 | LLRRLRRRLLRLRRLLLLRLRRLRRRLRLRRRLLRRLRRRLLRRLRRLRRLLRRRLRRLRRLRRRLRRLRLRLRRLRRLRRRLLRRLLLRRLRRRLRRRLRRRLRRLRRRLRLLRLRRRLRLRRLLRLRRRLRRRLRLRRRLRRRLRLRLRRLRRLRLRRLLRRRLRRRLRRRLLRRRLRLRLRLRLLRRRLRRRLRRLRRRLLRLRRLRRLRRRLRRRLRRLRLRLRRRLRRLRRLRRRLLRRLRLRLRRRLRLRLRRLRRLLRRLRRRLLRLLRLRLRRRR
2 |
3 | FGF = (HTC, DTX)
4 | PTP = (MCL, BDN)
5 | LHL = (LJF, BDX)
6 | XMM = (KCX, JHL)
7 | GLD = (RNN, MXG)
8 | HSR = (JPX, CXF)
9 | CRF = (BMJ, FHT)
10 | QSS = (KPH, FVD)
11 | RHV = (LRD, XDS)
12 | KTT = (XPS, VCX)
13 | LQK = (TLF, VJX)
14 | MMK = (VJV, HQV)
15 | RKX = (RKG, XJB)
16 | HDM = (NFK, JNB)
17 | PFJ = (QDJ, NDH)
18 | JKB = (MDK, MRJ)
19 | BSP = (QBQ, JPM)
20 | FQH = (HJD, VHF)
21 | QQL = (VDB, KGM)
22 | TRB = (KTC, RGN)
23 | VXC = (NDK, MVK)
24 | BCS = (PSX, PLK)
25 | FHK = (MLK, RDP)
26 | TVB = (JXV, SSR)
27 | GXD = (KSF, BRK)
28 | MNJ = (MHG, CRF)
29 | RLC = (TGD, CHV)
30 | LBQ = (NQK, MHP)
31 | JLH = (FGB, KNM)
32 | PCN = (CQF, NDF)
33 | FVP = (NKS, RCB)
34 | GHL = (TTB, KLQ)
35 | MTB = (VDM, FKT)
36 | LLB = (VXL, TRT)
37 | RSS = (GDP, TKD)
38 | SFH = (FCM, GKF)
39 | KSF = (VQB, JXJ)
40 | LJH = (PNS, DGC)
41 | TJC = (KQM, BVL)
42 | PRL = (TCG, GCQ)
43 | NBG = (GNR, SRM)
44 | CST = (FXL, BDF)
45 | XXH = (KVH, KSM)
46 | FJP = (PKX, DSF)
47 | DTS = (FFF, DQM)
48 | CMG = (VBJ, DBF)
49 | NHD = (TCJ, DHF)
50 | KKF = (RVP, FVR)
51 | LDS = (VPJ, MPN)
52 | GHC = (DBK, SCS)
53 | KVK = (NFV, MXJ)
54 | NTN = (TDC, VNC)
55 | FCR = (DCR, FQH)
56 | PLK = (GHT, PBT)
57 | VJF = (VJN, PVB)
58 | TKR = (GHS, TTP)
59 | PQJ = (VGB, SGP)
60 | TGM = (JQM, PPK)
61 | LFQ = (QGB, QXB)
62 | RDP = (HSF, MQV)
63 | SGP = (HVK, XMV)
64 | FTB = (RFV, MLT)
65 | LCX = (RSB, RSB)
66 | VGD = (XJB, RKG)
67 | PFD = (RGK, JGB)
68 | DBK = (RMP, RSH)
69 | TTC = (NDH, QDJ)
70 | PVF = (QRG, QCV)
71 | BGV = (TDS, DRK)
72 | VHF = (XTB, TGM)
73 | DBF = (GGT, BRQ)
74 | TFG = (SVV, FCV)
75 | MDK = (THF, PLQ)
76 | NDF = (BSP, STC)
77 | SMZ = (KHB, TST)
78 | SLC = (BKM, BCS)
79 | NSV = (VVM, VQG)
80 | GCA = (XQT, RCD)
81 | FVD = (NXJ, MBJ)
82 | HCH = (MRF, RQJ)
83 | PLN = (BNK, CLF)
84 | TTP = (BCP, SLC)
85 | BRF = (SHR, CTK)
86 | KCX = (PDR, HHQ)
87 | GMG = (NFV, MXJ)
88 | SNN = (XDS, LRD)
89 | SBB = (JXL, BFK)
90 | NCV = (KVH, KSM)
91 | DQQ = (FFF, DQM)
92 | THT = (MFP, VSD)
93 | GVH = (KHF, TKB)
94 | HPC = (MKX, SVS)
95 | KSS = (QQQ, HSR)
96 | NCP = (FCV, SVV)
97 | FGB = (LGN, LKJ)
98 | TST = (DFV, GND)
99 | PJR = (VMQ, HPB)
100 | BHB = (VMQ, HPB)
101 | LMG = (SHS, XJC)
102 | GGT = (TQQ, XQK)
103 | PKR = (QQR, JGG)
104 | FLR = (LJP, VQT)
105 | NFK = (HKG, BPJ)
106 | MGG = (SST, MCT)
107 | BVD = (SNV, TTH)
108 | GHX = (GMK, JXG)
109 | PDR = (HCD, HNG)
110 | XJN = (NHR, CBN)
111 | XRG = (LBQ, MTV)
112 | VFM = (MMS, VXT)
113 | PPP = (LHR, HJH)
114 | FJG = (NLS, CCF)
115 | NDK = (RHD, BVD)
116 | VSB = (LKB, CCX)
117 | NJG = (PTK, MCD)
118 | MLS = (XCQ, FCR)
119 | QSM = (CBJ, GRG)
120 | PTC = (NJG, FLT)
121 | MRJ = (PLQ, THF)
122 | HJD = (XTB, TGM)
123 | XCQ = (DCR, FQH)
124 | HPN = (CQD, CTP)
125 | BDJ = (JND, JRB)
126 | PXL = (VXT, MMS)
127 | NFV = (SFX, BDQ)
128 | SNQ = (PQJ, TNG)
129 | LSL = (KFN, JFL)
130 | SMK = (FQS, FJJ)
131 | QDV = (BDX, LJF)
132 | GMK = (TSJ, SVF)
133 | GDP = (MML, MML)
134 | GRG = (PVF, CKG)
135 | CXF = (MNJ, TBZ)
136 | LKM = (HJH, LHR)
137 | GHS = (BCP, SLC)
138 | XBH = (BDS, NDQ)
139 | NLL = (NJT, QCJ)
140 | MXJ = (BDQ, SFX)
141 | FCF = (QQQ, QQQ)
142 | SXG = (LFQ, TTZ)
143 | PLP = (MJL, FPL)
144 | FSV = (SBB, JFC)
145 | NLH = (TDS, DRK)
146 | QDM = (GHX, GGM)
147 | JJB = (MSQ, MMK)
148 | TRS = (BXN, RLM)
149 | DMP = (RTP, CHG)
150 | XGG = (PCC, XKH)
151 | MCT = (NLK, DTM)
152 | DLC = (JTQ, BLF)
153 | VBJ = (GGT, BRQ)
154 | XQD = (NTN, XRC)
155 | FKM = (QKK, JBQ)
156 | PNN = (RGN, KTC)
157 | LCM = (DTG, GHC)
158 | LKJ = (LFV, RNG)
159 | HRR = (JND, JRB)
160 | BDN = (SNQ, NVC)
161 | RSH = (PJS, LHG)
162 | CTP = (DJM, NHF)
163 | XMV = (CFJ, MDV)
164 | HXM = (PTP, XVQ)
165 | CKG = (QCV, QRG)
166 | GKK = (CRG, MPJ)
167 | LNS = (VSB, GNQ)
168 | RVP = (JJB, LCN)
169 | DVH = (QLD, QGV)
170 | CPH = (PMN, QSC)
171 | BXQ = (CPH, DSQ)
172 | SDM = (DSB, CNV)
173 | RNN = (SHM, LSL)
174 | VQC = (GKH, DMP)
175 | KXV = (GKN, PTC)
176 | TNK = (NMK, PKR)
177 | TSL = (MTV, LBQ)
178 | VSD = (LGH, HNM)
179 | QRQ = (QXH, GRQ)
180 | NKS = (NSL, HPN)
181 | TQC = (JQK, TXF)
182 | THF = (TVM, KKF)
183 | VSL = (PLN, GDS)
184 | SSN = (FTB, NXF)
185 | NHF = (BFG, XTZ)
186 | HSP = (QRQ, DFC)
187 | JQM = (BNP, PMD)
188 | GDV = (RVK, MQF)
189 | MTK = (TGD, CHV)
190 | FFX = (DSN, XXJ)
191 | HKG = (THT, KNJ)
192 | RCN = (DCB, XFN)
193 | HCD = (TDF, BQM)
194 | TKJ = (JPV, GRR)
195 | RVK = (HXX, PRL)
196 | HDN = (TRT, VXL)
197 | KHQ = (DQQ, DTS)
198 | MPJ = (PLP, KBG)
199 | SFX = (KTT, NTG)
200 | NMJ = (BGV, NLH)
201 | LXK = (CRB, GXD)
202 | KBG = (FPL, MJL)
203 | GNQ = (LKB, CCX)
204 | MRV = (RVK, MQF)
205 | PKH = (NPN, MHQ)
206 | NLK = (LTJ, RXP)
207 | LBH = (VTP, SGG)
208 | NTG = (VCX, XPS)
209 | CCD = (GVF, SSJ)
210 | BBB = (SSR, JXV)
211 | NSL = (CQD, CQD)
212 | BNK = (SGS, JQD)
213 | TTB = (KVK, GMG)
214 | FDR = (RBS, TXD)
215 | PJG = (RTV, JQS)
216 | LGV = (LSB, NPF)
217 | XVQ = (MCL, BDN)
218 | BMJ = (KRT, XXN)
219 | XCM = (LXK, VKJ)
220 | CCF = (SDR, PTQ)
221 | GSS = (PJR, BHB)
222 | CJL = (QKK, JBQ)
223 | FBT = (VJF, SGL)
224 | DSB = (QKQ, RBK)
225 | SGS = (MLQ, PXT)
226 | PKX = (KPF, CNQ)
227 | JND = (SDG, SND)
228 | DJM = (BFG, BFG)
229 | LHK = (SBB, JFC)
230 | QLD = (SGX, KDP)
231 | NPF = (VDC, KHQ)
232 | BRQ = (XQK, TQQ)
233 | NGQ = (JNB, NFK)
234 | NFH = (MPN, VPJ)
235 | KHF = (LKG, GLD)
236 | XKC = (XTX, XTX)
237 | DJG = (XGL, BTF)
238 | LGN = (RNG, LFV)
239 | HQV = (CJL, FKM)
240 | JPV = (SVD, XJN)
241 | TSJ = (NMD, MGG)
242 | QRG = (HBD, CST)
243 | FXL = (PFX, HVV)
244 | TNG = (VGB, SGP)
245 | HXX = (GCQ, TCG)
246 | RTP = (CDD, QJR)
247 | RXN = (LFQ, LFQ)
248 | MVK = (BVD, RHD)
249 | PLR = (FVP, DHP)
250 | GRR = (XJN, SVD)
251 | DHJ = (VRN, DTR)
252 | HSF = (TSS, JSQ)
253 | TXN = (FGF, NMV)
254 | CBJ = (CKG, PVF)
255 | GHT = (RCN, NTR)
256 | SMH = (FJG, LQD)
257 | CVN = (PLR, DDF)
258 | SJK = (TTF, SLQ)
259 | LMN = (XHT, CFF)
260 | KLQ = (GMG, KVK)
261 | KXC = (CHP, NLL)
262 | KNM = (LKJ, LGN)
263 | QHK = (LNV, GKK)
264 | BTH = (KVR, FNQ)
265 | QFV = (PRK, LTV)
266 | DBH = (HND, HFC)
267 | CRG = (KBG, PLP)
268 | TCG = (DVF, BXQ)
269 | SJQ = (KPR, QKP)
270 | JMJ = (TTB, KLQ)
271 | RFV = (XBH, CGX)
272 | AAA = (QDM, GMV)
273 | JTQ = (HRR, BDJ)
274 | MHQ = (HPQ, KXC)
275 | SDG = (HGR, RJN)
276 | PNS = (FMC, JKB)
277 | KHB = (DFV, GND)
278 | NXJ = (MLS, HLT)
279 | HND = (LVF, BBJ)
280 | FCZ = (RCD, XQT)
281 | NFP = (FVD, KPH)
282 | NTH = (FVH, DJG)
283 | GMV = (GHX, GGM)
284 | FKT = (CLC, BTH)
285 | LTV = (BKP, HVT)
286 | VLF = (DLX, FMB)
287 | NNP = (NFH, LDS)
288 | GQV = (RTR, NMJ)
289 | MCD = (PFK, HPC)
290 | XML = (RNR, GJF)
291 | TXD = (LGT, QSM)
292 | DKG = (RTV, JQS)
293 | MQF = (PRL, HXX)
294 | XJB = (HKV, FLR)
295 | SHS = (VVH, CHN)
296 | PMD = (NSV, BMQ)
297 | TLJ = (DMP, GKH)
298 | CMA = (TST, KHB)
299 | CRB = (KSF, BRK)
300 | XQT = (TXN, LNN)
301 | QHF = (XKH, PCC)
302 | FQM = (PKR, NMK)
303 | DHP = (NKS, RCB)
304 | KSM = (DKP, SDM)
305 | LKB = (RQV, BRF)
306 | BVL = (TRB, PNN)
307 | GJF = (NTH, JRX)
308 | HTC = (HRL, HXM)
309 | JGB = (QVX, GMR)
310 | VJV = (CJL, FKM)
311 | RGK = (QVX, GMR)
312 | KPF = (JCK, XDV)
313 | LNV = (CRG, MPJ)
314 | QNP = (LXK, VKJ)
315 | MFT = (NJK, VVL)
316 | PBT = (RCN, NTR)
317 | CKV = (XHT, CFF)
318 | RCD = (TXN, LNN)
319 | MBJ = (HLT, MLS)
320 | QDC = (NMJ, RTR)
321 | SVV = (FJC, MJR)
322 | STN = (LQC, HFR)
323 | QXB = (RPJ, MHL)
324 | VJN = (TVB, BBB)
325 | GKH = (RTP, CHG)
326 | XGL = (PMX, FFX)
327 | KNH = (FGB, KNM)
328 | TVN = (QKP, KPR)
329 | JFC = (BFK, JXL)
330 | LHG = (TFG, NCP)
331 | HFT = (HND, HFC)
332 | DKP = (DSB, CNV)
333 | LGH = (DCG, QPN)
334 | LGC = (VVL, NJK)
335 | HSC = (NTJ, QQL)
336 | CFF = (JMJ, GHL)
337 | PFH = (SGL, VJF)
338 | LGT = (GRG, CBJ)
339 | JSQ = (SFH, RVQ)
340 | VDM = (CLC, BTH)
341 | NTR = (DCB, XFN)
342 | KVH = (DKP, SDM)
343 | BVQ = (LSH, SDX)
344 | NRC = (QCH, TRS)
345 | DCB = (KBT, TSR)
346 | DGC = (FMC, JKB)
347 | VMQ = (LJR, LJR)
348 | MXG = (LSL, SHM)
349 | CPM = (TRS, QCH)
350 | DLX = (LQN, TJC)
351 | GDS = (BNK, CLF)
352 | JRK = (PGJ, NHD)
353 | JXV = (DRH, CVN)
354 | SVD = (CBN, NHR)
355 | LCN = (MSQ, MMK)
356 | MJL = (RQL, RGF)
357 | JLT = (QRQ, DFC)
358 | BGP = (DPV, VXC)
359 | PSQ = (PJR, BHB)
360 | NTJ = (KGM, VDB)
361 | SGX = (VFM, PXL)
362 | QBQ = (MCM, VNV)
363 | CHV = (QJN, CMG)
364 | DRK = (BKT, LBH)
365 | SVS = (NPV, HCH)
366 | BCP = (BKM, BCS)
367 | BXN = (PSQ, GSS)
368 | GQJ = (SMH, XHX)
369 | NPV = (RQJ, MRF)
370 | NMV = (HTC, DTX)
371 | LKR = (SPG, SJK)
372 | HLT = (XCQ, FCR)
373 | SKX = (HSC, CFR)
374 | SDR = (BLQ, FKV)
375 | FCN = (FKT, VDM)
376 | VPB = (CJR, FHK)
377 | MHL = (PFJ, TTC)
378 | XQK = (BBK, PBQ)
379 | MDV = (SCJ, BKF)
380 | VDC = (DQQ, DTS)
381 | RTV = (LDP, PCN)
382 | GRQ = (FDR, DHG)
383 | NDH = (JGX, SSN)
384 | NCG = (GNR, SRM)
385 | LQN = (BVL, KQM)
386 | NHR = (FQM, TNK)
387 | LJR = (GDP, GDP)
388 | JXL = (VKV, MJQ)
389 | QCH = (BXN, RLM)
390 | QGB = (MHL, RPJ)
391 | DDN = (GLT, DHJ)
392 | SHR = (BGP, FCX)
393 | DPV = (MVK, NDK)
394 | XHT = (GHL, JMJ)
395 | QKK = (LCX, LCX)
396 | TRT = (QFV, NHT)
397 | PBQ = (DPX, LNS)
398 | JHL = (HHQ, PDR)
399 | DCG = (JLX, VSL)
400 | SST = (NLK, DTM)
401 | QPN = (JLX, VSL)
402 | GXS = (FJP, DCM)
403 | VJX = (DKB, FCZ)
404 | XXJ = (HDN, LLB)
405 | JPM = (VNV, MCM)
406 | QGV = (SGX, KDP)
407 | QNA = (QGB, QXB)
408 | CQD = (DJM, DJM)
409 | TTF = (TVN, SJQ)
410 | CHP = (QCJ, NJT)
411 | BBJ = (LVT, TKJ)
412 | VKJ = (CRB, GXD)
413 | LJF = (FFL, KXV)
414 | TKD = (MML, ZZZ)
415 | QKP = (CKV, LMN)
416 | CQF = (STC, BSP)
417 | PHM = (FHK, CJR)
418 | BTF = (PMX, FFX)
419 | JRX = (FVH, DJG)
420 | PMN = (NBG, NCG)
421 | LKG = (RNN, MXG)
422 | NXB = (JLH, KNH)
423 | MLQ = (FBT, PFH)
424 | JML = (XKC, GLX)
425 | NHT = (PRK, LTV)
426 | BLQ = (SKX, HGL)
427 | BDX = (FFL, KXV)
428 | DVN = (SCR, JML)
429 | FPL = (RQL, RGF)
430 | MMS = (SVR, KSV)
431 | FLT = (PTK, MCD)
432 | PTQ = (BLQ, FKV)
433 | DHG = (RBS, TXD)
434 | QSC = (NCG, NBG)
435 | LFV = (NXP, GMF)
436 | XDS = (KQP, STN)
437 | PVB = (BBB, TVB)
438 | JGX = (NXF, FTB)
439 | CNB = (PRR, JRK)
440 | TQQ = (PBQ, BBK)
441 | GMF = (MKH, CRH)
442 | SDP = (KCQ, PKV)
443 | MHP = (HMR, LCM)
444 | RRS = (QGV, QLD)
445 | PKV = (XKG, HTH)
446 | JLX = (GDS, PLN)
447 | RJN = (VGD, RKX)
448 | NMK = (QQR, JGG)
449 | PFK = (SVS, MKX)
450 | NXF = (MLT, RFV)
451 | VVM = (HDM, NGQ)
452 | VSJ = (QDG, VKM)
453 | RBS = (QSM, LGT)
454 | KFN = (RRS, DVH)
455 | XXN = (XMM, SKM)
456 | TXF = (LKM, PPP)
457 | DFV = (VLF, GPC)
458 | RMP = (PJS, LHG)
459 | LVP = (QDG, VKM)
460 | DFC = (QXH, GRQ)
461 | GPC = (DLX, FMB)
462 | LJP = (CCD, FSM)
463 | MPN = (PFD, RSN)
464 | SGG = (RHV, SNN)
465 | BDF = (HVV, PFX)
466 | QQR = (GVH, QSB)
467 | RPJ = (TTC, PFJ)
468 | NDQ = (NXV, XQD)
469 | RGF = (BVQ, GMB)
470 | TXM = (DCM, FJP)
471 | VRN = (XFV, MFG)
472 | FCX = (VXC, DPV)
473 | RQJ = (HFT, DBH)
474 | MLT = (CGX, XBH)
475 | TSR = (QSS, NFP)
476 | BCD = (VQC, TLJ)
477 | JQK = (PPP, LKM)
478 | DSF = (CNQ, KPF)
479 | CVS = (LDS, NFH)
480 | VTP = (SNN, RHV)
481 | FTA = (MHG, CRF)
482 | RNR = (NTH, JRX)
483 | DRH = (PLR, DDF)
484 | KSV = (SMK, NHC)
485 | VKM = (HFV, LMG)
486 | DTR = (XFV, MFG)
487 | MML = (QDM, GMV)
488 | HPQ = (CHP, NLL)
489 | GKF = (QHK, TDM)
490 | TDF = (DHX, LPT)
491 | PXT = (FBT, PFH)
492 | BRK = (VQB, JXJ)
493 | VXT = (KSV, SVR)
494 | HNM = (QPN, DCG)
495 | HHQ = (HNG, HCD)
496 | MPG = (JJS, SMZ)
497 | CGS = (QDC, GQV)
498 | GMR = (GQJ, RMH)
499 | BKF = (CNB, NKP)
500 | VDB = (VPB, PHM)
501 | DSQ = (PMN, QSC)
502 | DTX = (HRL, HXM)
503 | QXH = (FDR, DHG)
504 | LPT = (QDV, LHL)
505 | DKB = (XQT, RCD)
506 | QJN = (VBJ, DBF)
507 | FVR = (JJB, LCN)
508 | MFG = (CPM, NRC)
509 | FMC = (MDK, MRJ)
510 | JLL = (RXN, SXG)
511 | NQK = (LCM, HMR)
512 | KBT = (QSS, NFP)
513 | DHX = (QDV, LHL)
514 | SKM = (JHL, KCX)
515 | FSM = (SSJ, GVF)
516 | NVC = (TNG, PQJ)
517 | SRM = (HSP, JLT)
518 | FCM = (TDM, QHK)
519 | NPN = (HPQ, KXC)
520 | JGG = (QSB, GVH)
521 | DCM = (DSF, PKX)
522 | BLF = (BDJ, HRR)
523 | JXJ = (JCC, LGV)
524 | PSX = (PBT, GHT)
525 | CRH = (NXX, BCD)
526 | SCS = (RSH, RMP)
527 | LTJ = (FSV, LHK)
528 | PSV = (PKV, KCQ)
529 | TVM = (FVR, RVP)
530 | LSH = (DDN, HNX)
531 | XTX = (RXN, RXN)
532 | RKG = (FLR, HKV)
533 | JNB = (BPJ, HKG)
534 | GKN = (NJG, FLT)
535 | RLM = (PSQ, GSS)
536 | CNQ = (XDV, JCK)
537 | HFR = (TQC, KLB)
538 | RQV = (SHR, CTK)
539 | DSN = (HDN, LLB)
540 | FFF = (KSR, KSR)
541 | FJJ = (FCF, KSS)
542 | KPH = (NXJ, MBJ)
543 | KCQ = (XKG, HTH)
544 | PPK = (BNP, PMD)
545 | TKB = (LKG, GLD)
546 | JQD = (MLQ, PXT)
547 | BPJ = (THT, KNJ)
548 | RBK = (FCN, MTB)
549 | PDK = (GHS, TTP)
550 | SDX = (DDN, HNX)
551 | BQM = (DHX, LPT)
552 | KNJ = (MFP, VSD)
553 | CLC = (FNQ, KVR)
554 | XPS = (NXB, SXK)
555 | CLF = (JQD, SGS)
556 | DQM = (KSR, LQK)
557 | XKG = (MRV, GDV)
558 | RHD = (TTH, SNV)
559 | RTR = (BGV, NLH)
560 | QSB = (TKB, KHF)
561 | BKP = (PJG, DKG)
562 | RMH = (XHX, SMH)
563 | PGR = (PNS, DGC)
564 | GND = (VLF, GPC)
565 | PCC = (QNP, XCM)
566 | KDP = (PXL, VFM)
567 | SPG = (TTF, SLQ)
568 | SXK = (KNH, JLH)
569 | PFX = (MFT, LGC)
570 | BKM = (PLK, PSX)
571 | TGD = (CMG, QJN)
572 | NXV = (NTN, XRC)
573 | MFP = (HNM, LGH)
574 | MQQ = (RSB, MPG)
575 | TBZ = (CRF, MHG)
576 | XDV = (TKR, PDK)
577 | DVF = (CPH, DSQ)
578 | SNV = (GXS, TXM)
579 | DCR = (HJD, VHF)
580 | QDG = (LMG, HFV)
581 | MHG = (FHT, BMJ)
582 | NKP = (PRR, JRK)
583 | XRC = (VNC, TDC)
584 | JFL = (RRS, DVH)
585 | KRT = (SKM, XMM)
586 | CDD = (DVN, PDM)
587 | NXP = (MKH, CRH)
588 | LVT = (GRR, JPV)
589 | NJT = (RLC, MTK)
590 | HVV = (MFT, LGC)
591 | RNG = (GMF, NXP)
592 | SVR = (SMK, NHC)
593 | QDJ = (SSN, JGX)
594 | RQL = (BVQ, GMB)
595 | HMR = (GHC, DTG)
596 | CGX = (BDS, NDQ)
597 | MJQ = (LVP, VSJ)
598 | XJC = (CHN, VVH)
599 | FFL = (GKN, PTC)
600 | XJS = (SJK, SPG)
601 | JQS = (PCN, LDP)
602 | SHM = (JFL, KFN)
603 | HPB = (LJR, RSS)
604 | JXG = (SVF, TSJ)
605 | STC = (QBQ, JPM)
606 | FHT = (XXN, KRT)
607 | LRD = (KQP, STN)
608 | VCX = (SXK, NXB)
609 | KSR = (TLF, TLF)
610 | KQM = (PNN, TRB)
611 | KTC = (TSL, XRG)
612 | VKV = (VSJ, LVP)
613 | XTB = (PPK, JQM)
614 | BFK = (MJQ, VKV)
615 | GLT = (VRN, DTR)
616 | VPJ = (PFD, RSN)
617 | BKT = (SGG, VTP)
618 | BMQ = (VVM, VQG)
619 | KVR = (QHF, XGG)
620 | LNH = (QDC, GQV)
621 | SLQ = (SJQ, TVN)
622 | CJR = (RDP, MLK)
623 | JCK = (TKR, PDK)
624 | GVF = (XXH, NCV)
625 | LQC = (TQC, KLB)
626 | TSS = (SFH, RVQ)
627 | HRL = (XVQ, PTP)
628 | TDM = (GKK, LNV)
629 | BNP = (BMQ, NSV)
630 | BFG = (RNQ, PKH)
631 | CFJ = (BKF, SCJ)
632 | QQQ = (JPX, JPX)
633 | MQV = (JSQ, TSS)
634 | XHX = (LQD, FJG)
635 | PMX = (XXJ, DSN)
636 | KGM = (VPB, PHM)
637 | GNR = (JLT, HSP)
638 | NLS = (PTQ, SDR)
639 | MSQ = (VJV, HQV)
640 | FMB = (TJC, LQN)
641 | XFV = (NRC, CPM)
642 | RSN = (JGB, RGK)
643 | PRK = (HVT, BKP)
644 | HFV = (XJC, SHS)
645 | SVF = (NMD, MGG)
646 | QVX = (GQJ, RMH)
647 | TCF = (BLF, JTQ)
648 | MLK = (HSF, MQV)
649 | RVQ = (FCM, GKF)
650 | GLX = (XTX, JLL)
651 | PDM = (SCR, JML)
652 | HGR = (RKX, VGD)
653 | JRB = (SND, SDG)
654 | FKV = (SKX, HGL)
655 | TDC = (LNH, CGS)
656 | FVH = (XGL, BTF)
657 | NHC = (FQS, FJJ)
658 | BBK = (LNS, DPX)
659 | VVH = (NNP, CVS)
660 | NJK = (DLC, TCF)
661 | SGL = (VJN, PVB)
662 | MTV = (NQK, MHP)
663 | PJS = (TFG, NCP)
664 | DTG = (SCS, DBK)
665 | TCJ = (SDP, PSV)
666 | VGB = (HVK, XMV)
667 | MCL = (SNQ, NVC)
668 | NXX = (TLJ, VQC)
669 | HVK = (MDV, CFJ)
670 | NMD = (MCT, SST)
671 | TTZ = (QXB, QGB)
672 | VNC = (LNH, CGS)
673 | GMB = (LSH, SDX)
674 | CHN = (NNP, CVS)
675 | FCV = (MJR, FJC)
676 | HNG = (TDF, BQM)
677 | SCR = (XKC, GLX)
678 | DDF = (DHP, FVP)
679 | CTK = (BGP, FCX)
680 | CHG = (QJR, CDD)
681 | VXL = (QFV, NHT)
682 | SSJ = (XXH, NCV)
683 | RNQ = (NPN, MHQ)
684 | FJC = (XJF, XML)
685 | XTZ = (PKH, RNQ)
686 | CBN = (TNK, FQM)
687 | RSB = (JJS, JJS)
688 | TTH = (GXS, TXM)
689 | HJH = (LKR, XJS)
690 | VQB = (JCC, LGV)
691 | HKV = (LJP, VQT)
692 | RGN = (XRG, TSL)
693 | MKX = (NPV, HCH)
694 | JJS = (TST, KHB)
695 | JPX = (MNJ, MNJ)
696 | HTH = (MRV, GDV)
697 | VQT = (CCD, FSM)
698 | PGJ = (DHF, TCJ)
699 | DHF = (SDP, PSV)
700 | XJF = (GJF, RNR)
701 | LQD = (CCF, NLS)
702 | MRF = (DBH, HFT)
703 | FNQ = (XGG, QHF)
704 | GGM = (JXG, GMK)
705 | BDS = (NXV, XQD)
706 | MCM = (PGR, LJH)
707 | LDP = (NDF, CQF)
708 | QCJ = (RLC, MTK)
709 | CCX = (RQV, BRF)
710 | HBD = (BDF, FXL)
711 | CBA = (RNQ, PKH)
712 | MJR = (XJF, XML)
713 | JCC = (LSB, NPF)
714 | VQG = (NGQ, HDM)
715 | RCB = (NSL, HPN)
716 | QCV = (HBD, CST)
717 | TDS = (LBH, BKT)
718 | CNV = (QKQ, RBK)
719 | KLB = (JQK, TXF)
720 | XKH = (QNP, XCM)
721 | SCJ = (CNB, NKP)
722 | HGL = (CFR, HSC)
723 | BDQ = (NTG, KTT)
724 | PRR = (PGJ, NHD)
725 | KPR = (CKV, LMN)
726 | HFC = (LVF, BBJ)
727 | TLF = (DKB, DKB)
728 | SND = (HGR, RJN)
729 | VNV = (PGR, LJH)
730 | PLQ = (KKF, TVM)
731 | LVF = (LVT, TKJ)
732 | QJR = (PDM, DVN)
733 | HVT = (DKG, PJG)
734 | CFR = (QQL, NTJ)
735 | DTM = (LTJ, RXP)
736 | HNX = (GLT, DHJ)
737 | QKQ = (FCN, MTB)
738 | PTK = (HPC, PFK)
739 | FQS = (FCF, KSS)
740 | JBQ = (LCX, MQQ)
741 | RXP = (LHK, FSV)
742 | SSR = (DRH, CVN)
743 | LSB = (VDC, KHQ)
744 | DPX = (GNQ, VSB)
745 | ZZZ = (GMV, QDM)
746 | XFN = (TSR, KBT)
747 | LNN = (NMV, FGF)
748 | KQP = (LQC, HFR)
749 | LHR = (XJS, LKR)
750 | GCQ = (DVF, BXQ)
751 | VVL = (TCF, DLC)
752 | MKH = (NXX, BCD)
--------------------------------------------------------------------------------
/day3/input.txt:
--------------------------------------------------------------------------------
1 | ........954......104.......52......70..............206.806........708..........................217...............................440........
2 | .......@...................*.............................*.664..............677................@....459.........687.........................
3 | ..................378.....398........548..495..........983....*................*..282.................*...........$.248.....409.......165...
4 | ......261........................704.&.......*................943...615.504.....6....*773..........687..../973.2*.....=.311*....*..../......
5 | 187..-....&...............828....*......*268..488....534.........................................................244.........722.286........
6 | ........663.254.723.@.......*.842....696............../...163.512&.............797.......................749................................
7 | 230.........*.....*.442...563...............................*.....................*716...................*...395............352..594&.......
8 | ...........468.522............................+33........660....&......................................891......-...#.......................
9 | ......929...........*261..680............-...........@.........29.312.............972.......................704.....545.56*274......537.....
10 | ........*.......................+.#158..311.........987............*................&....923................*...837.............561...%.....
11 | ......35....75.....715........382...........855............/440..890.224.....613............*......622./....810....*632.........%...........
12 | ............*.....%.......286........534.................$............*...........277.....851..14...*...645.............916../.......682....
13 | .....189..641.%.........%....*..........$...694.214*......137.......16........26.....+..%........&.675.........511........*..848.184*.....55
14 | ..............760......323....167..674.......*.......604@..............-......*.........24.................$......*.....666.................
15 | ....99.....................................*.360.......................805..509../.........284.....&981..827....714.................410.....
16 | ...*.................+.601&..10&........202.......753...........................208..925...*..........................652...752.....#.......
17 | ...411......656...448..............................&......888.749..677...............=...970.................128....-....*..*....@..........
18 | .............*.......................236.60...181..........*.....*....-.713.170................@.......839.....*....116.....79.431.=........
19 | .689...542..46................483.....*....*...*.....#..289..348.483........*........=...731....376...@.....656.....................924.&...
20 | .........*.............340......&..@..92..314.3...572.........$.......408.177........728....*....................325...929..............852.
21 | ........824....323....*...........157....................126............*.....640...........404...................*......@........430.......
22 | .649..............*.723.......32............375......480*....537..637.467.....*....=598.............959.......263..136......718...*....#....
23 | ..........931..316...........*...........78*................../..*.........611..........979.@...198....*751...*.........123./......579..733.
24 | .81&.....*..............772.884......809..................435.....940............162*........96...*............145....../......414..........
25 | .......#.511......204....................706*.....442........*........213.............116......................................./...........
26 | 625...60............*..............@.........870.#...........17.......*.......725.....*...........-..696.......114......../.......=.........
27 | ............734..................482.................35*974.....%....227........@.....60........382...*.......-..........664....584...472...
28 | 288.....697*............................*614....975.............999.........599..........332..........978..60......./...................*...
29 | ...*............701..961..180........998..................211..............$...............*...310..................953.....$..153...861....
30 | 356........%344..@....*....*........................267....+...421%........................697....*...........531.........776.....*......193
31 | ........#...........757.925................360.........................261......71.....950.........490....-../........+..........989........
32 | 634...385....*70............................*.......%........311...457*.......%........*...640..........687.......=...946...................
33 | ...*......514....973....100...46..570..21....155.....692.575..../..............977.233........$.................931...........*..240+.......
34 | 332.............*........*........#....-................./.........944..............*............230.....+...........889.....462.......615..
35 | .....&..531....77.435.427..437......*....=417.......................%..194.......385.........88-..#...174...................................
36 | ....951.............-............716.261.......................234....*..................&........................................439.......
37 | ................*.........563+............*.............805.....%....681..............393...909..247.$415.............=..+..................
38 | ..954.644...-...35...%425........890....857.......%.521..+..438...............437..............@...@.........563.....133..696...............
39 | ...$........887.............&466.*..............547.%.........*...804....118...=..15.......302...............*......................80..%549
40 | ........610......877...990.......368.......................553....*.....*........-............*.....232...282..-...............264....*.....
41 | 410.....@.......%....*....*793.......946.....67*863.895.........511.....628..............945..764....*.........455...............$.....880..
42 | ...*.......331....540.540.............*................*192.............................*.........103.......................................
43 | .311......*..................954......602.766.403...............#.....307..239..417......617..........959...416.........&521................
44 | .....-..51.....732.......-...=.....$.........*......695........131....*...*.....................494@..*......*...............+...983........
45 | ...284.....337....+......541.......345..........306.........%........111..677........679.............738..#...537............523...%..338...
46 | .......770...............................415.......*.........32...............@..................420.....32............................-....
47 | ........+...........781.....................&.......459.............649*213....36..493.621..........*.......7..458*103.......921...491......
48 | ............921.....*.........373$..............*..................................*...*.......114.473.......*.......................*......
49 | .....*........=.473....+..38.........120.......294................+519.............899........*...........263...606/.545..............828...
50 | ..993.............$..76....*.........%.....302.........886+.513............................193...*....................@...........592.......
51 | .......783..............872....533......%..+....................../.............................425...387........%.......958........*..6....
52 | ........*..440*155..588...........*...894.....*56...339............78.@493.............261.101..........*......340...*.....*....+.....*.....
53 | .......423.........*........771..902.......167.........*...665.988.........606.....30.....*..........469..=.........745.610..542.......679..
54 | ...................611.....*........................553....*......*252........=....*...$.....665...........102..............................
55 | ....333...103.409.......583.............................688..92.........-........415....615.....*519............805.493.......297...........
56 | 751*.........*...............926............899.............*........963..420................&...............*.....*.....286.......=495.....
57 | ..................244.......*.........784.....%..737.......942.962.........-...3..........909.............160.358...........*............832
58 | ........600.830....*..779....988......%.....*......*....................%..........$...............262..................335.433..81.....*...
59 | .151.......*......................$......271.302.34.....150............575.43..425.109...169........@.....@......63..25..+.............849..
60 | ........*........................923..............................$560.....*............*.....167.......639............&....................
61 | 573..551.855............201................*482.586.........677.........802..619........83....*.....22........#......................560*...
62 | ...*..............747..*.......699.....+........*.........*....&..256.........................998..*.....823...993.........&.............662
63 | .164.634#..........*..556.........*...286....437.......483.815.....*.....*................654.....67..................#.....633.8*..........
64 | ...........998..855..........67..398.............107...............610.620...........721.-.............946.900.439.283............959.199...
65 | .211*916..*..........&...524*.............436...*.............518...............893.*................*.....*...*...........=..........-.....
66 | ..........235..%...473......................*....54..............*.....-......../....551............833..994.81......*640...70....74....*770
67 | ...$..........950........190..704.380....442.............@264.821...-.918......................427................275.............*..248....
68 | ....443..................*...........*........738.................484......................691.+.........%949..........749.....658..........
69 | .............678.....180.350........232...........................................934......#........315.........$....../..............+.....
70 | ...833...920....#....*........131..................717...............222.....858..*...........%........*.530....996...........*....109......
71 | ......*.....$.......389.331..@.......................*.................*.*......*..612......168.....672...$..........%.....788.15.......625.
72 | ...815..........................40.589...98......./...574........451.403..327..140..............................945...136............64.....
73 | ..............124..*........49......*..........200.........162....+.....................914..........461......./....%.................=.....
74 | ..808.......=......363........*......27....397.........107...*.......739+....232....+........68*395.................322..166+...=.......471.
75 | ...........465..............893..355..........*....70......963................*..133..........................................419.499.......
76 | ..................336..62.......*...........798.......*885....../..431.851..176.............=.............583$.....................*........
77 | ........429....../....%...........@.................18..........54...=.*.............245.171.......29.................=936.........657......
78 | ........*................405.......405.......*689........*994...........328...980......*.....159..*.............256....................-703.
79 | .....444..................*......=........275.........421........479............*....54.........*..324....47.....#....332*855.946...........
80 | ..........233....735*325.162....900.............................*................725....@.....453............499...............*............
81 | ...820....*..............................848..974..82............178...54..............688.....................*...340.810..749.............
82 | ....*...234.....187....*967....348......-......*.....*...&148............=..626...*.........589.....501.........82....*.....................
83 | .712........$....*..858.......*.................706...49......................+...653.......*.......*.......588..............168.313........
84 | ..........776...740...........107........612..........................644.................242..................*695......236.#....*....761..
85 | .....767..............995..................*.447*...........130......*...........513..................................#........384....*.....
86 | .......................*..........306............275..............372.....................779.......&....&.....457.....731.............650..
87 | .......................161..........&...213...................726......866................*.......813..398......*..376...........607@.......
88 | ..93..860....469.905............%..........*494...../215..../.#................@...980....501.................839.*....@....................
89 | ......*...&..&...*....278........286..............$......183................840...*............941........300......578.259.558.....*..389...
90 | ....804..669.....392...................422........743.........323..425..........774.........@....*.229.........*............*...711.8.*.....
91 | ........................559.523..6.673.................292+..#......./....871=...........638....97..*.........629............28........975..
92 | ..................*283...*...*........*........................*................./.@287..............124...............258.2................
93 | ...*80.........545.....991....765.....595...361.......785...111.582...#........890......388.....*209......964...+.....+............475......
94 | 971....666.................................*...........%.............500...653........@....*.391..........+....882..................*.......
95 | ........*....-........................115...725.238*.....626...............*...-...987..680......342*.....................540........409....
96 | .153*....925.439....#..........752.....*............634..*...500&..177....47....73...................74.................+..*................
97 | .................844...........*....305.................425..........-..................445*566.........652...........732.14..581..219......
98 | .....794..482=.................163........624.....206.............................223..................*....%158..121........&......*.......
99 | .......*.......&..687...732...............%......*......47...........$.............+.....+..........323...........*...27/...........738.....
100 | .......591....313..*...../.......763..858......67.......*......550..812...$............375....334................193........................
101 | ..860............................./................47...934.....*..........749....7..............*..830...938..............795..........#...
102 | ...*..67...............678&..........791...........*..@......622....$..808.............$.......452./......*......................539..580...
103 | ..320...*223........................%...........232..171.714.......139...*..............909............606.........=......272...............
104 | ..............................88.........445..............*.....$........717.......+7.............450............874......*.................
105 | ..............%...383......+.............@..............807...668....................................*735.................218...............
106 | ........699..598..$.....851...&...41........651*346...................63..................89...801.........*394................&............
107 | .......*....................25.....$...........................*965............771.............*.......741.............$......229.@707......
108 | ........20.853....100..438...........606..............916....20................*...........75..388.....*.....840..104.859...................
109 | .............*...#.........&........%............%.....................105$....317...........@.......349..../.....&...........239..104...873
110 | ..751......715...........72..345$................881......328.38*......................465......541.................=.........&.....*.......
111 | ....*..............................422...............208....*.............................*549..*....313.430.....892.................274....
112 | ..88...-.....28....440.........305*...................*...789.@...../222.......898.............571....=..*............183....856............
113 | .....105............./..................578*........14........37..................*.......................981..........*.....*..............
114 | .........754..............+...561..646......637...................................544..707...97.................363..231...848.........410..
115 | ........*........270.727.789..$.......*334......787*...979..............422@..120.....*.....#...........98............................*.....
116 | .......107.989......*.....................................*612...512..........*.......515..........460.@...476......463.....730....703......
117 | ...........................132....146............................+........83*..849...................*.....&....669*...........*............
118 | 320*......$206.........491*......*.....171..919..........486.........966$..........230......25.......126..............906....234............
119 | ....690........%...............223.................156...*....*678.........................@....234.......=...350.....*............596...36.
120 | ................717..511*...............322..108......*...280...........12......#......615........*.....755...*......682..904...........&...
121 | ....#....................345......%406....*.....%.....169..........858...*...763.............%181.274.......74....$........*..998...........
122 | ..167....230...................%........341.......................%.....827........................................814..374...........922...
123 | ..................471........73..................852........272................717.....@617...100.....@.....................................
124 | ...................=..................*.....769...#..........*.....545.863........$............@....791....403.....298........402*763..536..
125 | ......................*............963.693.+............%..621............-...........579......................132*....................*....
126 | .535.......675.....975.314.284*..................=....49.......$.............454..211............316......................989...@.....600...
127 | ............*..................528..........&...793...........700...................*.....770......*.........-....321.....*......277........
128 | ...391..291..625..........................703.....................972@...797........24.92....*......822.900...703....*212.558...............
129 | ....*..=...................160.165..........................#.............+..4..........*.262.............*......................+..........
130 | ...837........736-..........+.....*...217-.347....446....785.....897..546....&...555.898.......382......75...48......../.....655..586.......
131 | .......................503......678.........%..........................*..........................=............*..235..321...=..............
132 | ........536../....204....+.............807....................*833.677.480...322=.939...............587.....575..*.............546..........
133 | ........=...974.....@...........$........%.......672.......317......@................&....789.-....&.....$......268..................780....
134 | .................*.....276...248..............87*...............................757........*..815.....129............*......................
135 | ...*....776......951..*............*157.................254......&...628........*........104......................941.563................871
136 | ....586...............88........283..........100.986.......*...142...*.......567...............783................................663.......
137 | .........641..........................213....*...*........468........127..........%.............*....202.........340*.............*.........
138 | .367......#......274............445..*......96.232..............175.............403.726...642..561......*............790.........433........
139 | ....*.......241..*...498.........*...64............698*357......*...#4.....*..........*.....*..........210...961&...........................
140 | ...152...........236.............95............................517......789.836.....236..194......................................202....720
--------------------------------------------------------------------------------
/day4/input.txt:
--------------------------------------------------------------------------------
1 | Card 1: 57 76 72 11 8 28 15 38 54 46 | 77 87 71 98 40 7 84 43 61 64 5 50 19 83 79 99 36 47 4 95 30 44 37 55 26
2 | Card 2: 44 69 14 83 54 48 21 6 20 26 | 80 26 86 3 9 4 62 34 15 87 60 88 90 29 65 46 92 73 24 12 40 10 99 37 74
3 | Card 3: 15 60 63 84 20 93 36 39 17 19 | 68 80 17 91 20 84 69 72 15 39 5 61 74 99 60 85 19 45 24 79 53 36 7 63 93
4 | Card 4: 22 74 83 58 88 46 7 52 84 5 | 75 20 95 8 37 56 31 42 73 43 40 48 4 28 99 45 90 63 81 93 68 50 46 30 7
5 | Card 5: 4 97 41 50 32 26 68 84 5 11 | 91 70 87 4 88 13 48 51 32 34 38 82 86 11 1 50 40 43 28 5 61 89 84 41 37
6 | Card 6: 79 97 39 26 57 69 38 87 60 44 | 22 92 80 38 27 66 54 2 9 62 3 4 71 99 24 97 14 7 93 28 53 50 77 68 73
7 | Card 7: 73 91 51 23 90 67 19 81 50 12 | 4 76 97 64 19 85 31 3 74 12 23 60 20 68 52 39 43 65 37 63 40 59 99 80 6
8 | Card 8: 23 64 38 82 68 79 49 56 5 76 | 68 25 64 30 40 52 16 53 95 96 85 9 4 7 26 80 62 67 73 35 32 44 90 69 93
9 | Card 9: 75 87 69 31 8 11 89 49 95 24 | 35 26 68 69 42 66 37 77 25 45 75 72 38 50 27 24 32 46 11 10 14 95 62 7 86
10 | Card 10: 37 25 47 36 57 81 44 6 79 98 | 67 34 86 70 39 97 80 69 27 17 7 50 99 84 45 32 49 53 15 95 19 18 47 37 41
11 | Card 11: 87 98 16 76 21 53 8 42 40 75 | 21 7 89 85 65 30 32 19 68 22 64 82 48 62 39 46 4 57 77 18 55 24 34 29 67
12 | Card 12: 60 11 44 35 9 56 93 91 15 32 | 31 45 37 63 26 12 15 14 48 92 81 1 97 65 29 95 57 77 99 93 27 25 58 66 61
13 | Card 13: 25 75 5 60 47 83 8 37 2 43 | 52 30 68 13 1 92 89 63 78 57 87 75 28 82 59 46 33 3 65 41 47 69 21 2 96
14 | Card 14: 64 44 89 88 1 38 20 99 9 81 | 71 68 91 21 92 75 49 22 27 12 9 26 57 13 66 45 40 37 16 4 44 90 98 85 61
15 | Card 15: 16 56 91 62 12 83 25 3 70 61 | 81 55 73 96 13 7 67 99 88 90 87 48 83 35 19 97 9 31 20 49 38 44 41 45 5
16 | Card 16: 78 68 81 18 76 41 88 45 24 87 | 59 84 67 36 33 57 42 32 11 74 65 31 54 46 72 39 98 40 16 49 79 19 3 44 22
17 | Card 17: 84 11 48 66 54 86 28 4 45 23 | 4 54 42 62 81 8 92 45 47 66 84 48 18 72 28 86 23 34 3 24 73 82 96 11 59
18 | Card 18: 46 40 41 22 75 92 68 10 52 3 | 84 73 9 22 7 19 3 65 32 6 99 77 97 63 62 59 57 17 8 68 91 28 39 4 41
19 | Card 19: 19 57 22 85 75 69 50 62 65 61 | 35 24 50 47 74 97 61 27 66 57 77 75 22 30 70 41 62 69 85 58 81 65 19 91 63
20 | Card 20: 18 13 96 41 20 44 62 97 57 52 | 18 59 96 40 23 58 20 57 41 97 44 62 75 54 85 78 94 52 64 34 37 45 84 13 53
21 | Card 21: 34 3 13 85 81 19 37 97 29 91 | 9 97 52 3 35 48 24 34 17 50 21 71 57 36 94 82 19 4 14 83 98 37 80 91 59
22 | Card 22: 18 14 95 74 23 71 31 83 51 57 | 94 14 63 18 16 73 57 31 5 23 51 69 85 45 70 35 74 49 79 27 40 95 83 13 71
23 | Card 23: 54 12 52 31 58 93 9 45 27 64 | 48 54 93 12 44 64 56 83 35 94 33 4 58 89 8 45 27 1 86 90 52 31 19 57 9
24 | Card 24: 56 75 17 67 59 37 76 94 25 36 | 24 14 56 53 82 35 92 96 17 34 25 1 16 86 41 95 64 45 38 63 31 18 80 33 66
25 | Card 25: 32 22 47 24 80 92 96 67 5 26 | 22 81 87 47 26 96 92 60 57 64 66 16 5 83 67 49 32 39 71 80 40 63 99 75 53
26 | Card 26: 62 36 66 9 3 71 75 67 29 61 | 9 31 66 82 29 41 67 71 38 36 28 76 14 75 69 61 99 57 62 88 70 95 63 10 59
27 | Card 27: 46 38 59 90 1 65 16 80 76 34 | 70 15 49 31 27 71 54 46 76 1 8 77 93 2 90 39 14 67 62 16 78 56 68 9 58
28 | Card 28: 47 85 54 21 37 14 44 73 12 51 | 78 70 14 77 98 88 25 49 9 79 58 23 52 2 43 17 12 84 59 51 56 89 47 48 6
29 | Card 29: 74 37 60 11 56 21 87 44 33 46 | 80 61 34 54 9 3 45 7 55 13 98 84 10 19 14 8 90 81 50 69 31 12 38 29 78
30 | Card 30: 29 20 44 62 79 34 52 15 49 48 | 17 84 34 1 33 9 23 55 94 10 95 69 42 79 78 44 51 82 20 25 81 29 15 13 32
31 | Card 31: 88 41 38 98 34 40 92 36 25 50 | 33 54 18 53 46 69 8 22 25 36 51 34 42 92 85 45 40 60 84 27 97 39 10 70 41
32 | Card 32: 5 28 85 29 95 37 60 34 24 16 | 74 8 48 73 34 65 66 56 64 85 78 17 39 67 92 30 75 22 95 12 29 24 6 2 51
33 | Card 33: 71 31 99 53 62 80 65 32 13 23 | 87 20 55 24 42 19 67 77 37 89 32 83 44 9 60 46 47 36 49 35 92 10 82 2 81
34 | Card 34: 78 61 12 81 96 82 7 30 80 32 | 62 8 56 89 11 12 39 31 17 18 79 51 30 92 48 5 45 78 41 44 77 98 71 67 73
35 | Card 35: 59 35 63 76 51 8 53 70 24 97 | 20 36 31 17 77 26 34 15 41 39 61 24 35 46 80 74 2 71 5 91 16 11 55 87 4
36 | Card 36: 46 51 79 66 57 52 21 11 75 33 | 88 64 74 99 22 39 42 11 14 65 1 56 86 8 26 16 72 13 55 20 60 40 19 85 58
37 | Card 37: 83 88 1 19 95 30 38 43 14 51 | 98 20 22 55 13 58 93 21 68 11 76 70 71 35 44 90 52 53 75 17 96 27 49 31 26
38 | Card 38: 87 49 43 19 16 34 88 66 67 9 | 70 46 63 58 7 53 96 1 59 35 91 85 18 21 93 68 90 73 11 92 60 61 98 38 15
39 | Card 39: 24 68 25 61 54 63 30 37 21 73 | 50 84 48 10 81 5 62 28 92 66 96 6 20 83 78 88 31 89 12 71 60 8 34 70 90
40 | Card 40: 18 72 44 15 3 19 69 63 73 57 | 14 3 52 76 71 12 50 13 86 21 55 31 27 29 43 47 90 75 9 97 6 32 96 37 18
41 | Card 41: 81 66 49 20 86 80 4 55 93 44 | 87 81 7 47 25 85 80 51 76 27 78 10 16 50 33 66 13 64 35 18 44 63 29 92 48
42 | Card 42: 27 21 14 28 69 89 94 9 19 46 | 92 13 27 99 96 19 43 54 4 14 45 16 44 83 24 61 2 28 5 90 49 51 63 64 73
43 | Card 43: 34 49 58 85 23 88 84 78 89 55 | 72 45 73 23 75 52 84 78 46 55 58 71 98 5 56 91 49 39 88 70 42 59 89 85 34
44 | Card 44: 18 69 46 58 73 59 56 23 12 40 | 71 23 87 93 21 84 10 79 47 92 91 13 52 1 32 78 59 95 72 55 97 56 43 61 75
45 | Card 45: 33 47 58 69 57 1 82 6 61 48 | 48 97 4 1 67 66 82 12 6 29 21 96 90 33 57 28 47 69 74 27 2 32 58 61 9
46 | Card 46: 42 54 98 50 36 86 27 66 29 60 | 32 23 40 62 38 91 43 98 29 85 18 30 66 28 81 35 68 61 11 27 50 22 41 46 42
47 | Card 47: 1 31 87 71 53 17 5 93 84 56 | 48 26 14 47 34 44 18 93 17 88 61 8 95 74 53 50 56 80 62 84 99 49 87 52 1
48 | Card 48: 40 75 79 29 64 57 33 49 95 68 | 7 39 63 79 89 10 23 40 22 86 92 13 57 29 9 19 90 87 58 12 77 16 75 4 91
49 | Card 49: 4 45 87 47 71 35 9 2 81 77 | 93 33 49 75 11 34 62 39 83 40 55 17 84 43 80 60 46 7 18 56 48 66 95 57 74
50 | Card 50: 88 42 2 30 24 89 15 93 16 45 | 93 45 72 68 30 28 17 82 64 91 29 98 14 24 88 70 55 48 58 10 42 83 66 2 77
51 | Card 51: 91 96 87 48 6 73 95 55 71 89 | 94 49 84 33 82 9 21 32 25 46 65 15 86 83 66 11 37 1 14 61 92 36 35 45 27
52 | Card 52: 48 3 94 56 41 13 34 8 96 25 | 40 88 46 14 68 25 75 66 87 55 64 78 92 43 19 97 53 90 83 59 69 31 84 95 13
53 | Card 53: 13 45 61 92 91 32 49 58 43 36 | 44 70 55 28 2 6 35 79 24 54 82 95 52 73 75 84 34 57 21 23 33 22 80 88 1
54 | Card 54: 61 52 20 8 73 54 83 60 29 6 | 74 40 27 46 81 75 3 42 47 69 22 59 58 49 90 63 57 50 79 70 82 5 53 91 39
55 | Card 55: 41 51 64 55 57 44 26 70 62 34 | 24 82 49 39 56 84 31 27 86 77 22 6 73 72 99 47 60 18 53 68 42 19 66 9 50
56 | Card 56: 30 89 82 17 72 46 98 5 54 58 | 4 86 18 15 84 41 16 63 44 91 12 31 66 96 94 87 49 59 67 64 80 33 5 11 40
57 | Card 57: 39 80 17 47 15 96 69 50 46 24 | 5 83 16 52 57 27 98 43 78 1 66 90 19 6 58 3 49 94 85 62 44 54 75 14 9
58 | Card 58: 42 77 37 13 74 40 31 92 36 46 | 16 74 80 59 51 31 95 85 40 93 23 15 32 18 46 97 36 13 79 10 37 99 77 25 92
59 | Card 59: 39 1 78 7 57 46 91 26 12 94 | 46 13 26 83 21 1 67 78 50 94 8 12 39 61 86 91 35 29 32 72 30 97 57 16 7
60 | Card 60: 62 32 18 51 40 96 93 36 80 84 | 42 93 65 8 2 52 84 70 11 1 92 21 80 99 18 14 17 47 56 90 49 67 19 48 97
61 | Card 61: 6 83 74 89 44 73 39 42 47 88 | 72 74 42 21 88 77 18 6 83 85 49 73 5 39 78 44 64 10 47 14 89 53 98 13 92
62 | Card 62: 91 86 35 23 30 28 77 88 56 41 | 54 26 90 20 96 78 14 5 47 98 31 55 74 83 33 15 67 92 19 40 73 72 52 81 94
63 | Card 63: 87 91 78 92 33 71 80 47 13 65 | 32 33 56 55 2 4 61 71 91 97 93 78 83 74 3 13 47 70 54 80 65 60 49 26 96
64 | Card 64: 70 61 63 52 32 35 85 46 54 4 | 42 54 32 84 56 46 29 61 63 78 4 36 80 86 26 17 3 87 48 21 85 52 35 70 22
65 | Card 65: 83 95 45 97 49 67 13 92 1 90 | 68 75 20 96 6 33 73 1 50 14 17 66 34 78 54 84 92 9 64 61 85 88 72 42 12
66 | Card 66: 1 7 99 75 17 21 48 70 30 13 | 70 80 45 89 75 7 21 99 20 54 42 46 67 85 61 17 1 16 30 92 77 48 13 68 90
67 | Card 67: 69 55 20 91 47 31 33 75 56 39 | 69 31 62 20 58 1 93 48 35 55 47 13 56 60 50 75 25 37 91 81 10 39 32 33 54
68 | Card 68: 14 97 54 28 73 64 81 32 47 17 | 86 48 88 25 47 65 22 81 28 95 41 14 27 26 46 64 79 61 45 96 32 9 21 54 53
69 | Card 69: 6 21 89 82 75 48 46 56 68 47 | 48 32 74 30 13 56 93 90 68 33 41 58 21 47 8 17 65 6 89 97 75 82 46 26 59
70 | Card 70: 35 48 78 92 64 30 88 77 76 10 | 76 33 48 67 78 64 24 69 36 14 77 85 30 73 53 91 3 35 96 88 43 84 10 95 92
71 | Card 71: 59 78 57 66 15 18 41 83 70 35 | 7 62 19 30 48 97 89 71 40 27 11 63 60 47 23 86 10 84 4 75 80 69 61 67 25
72 | Card 72: 80 82 46 70 10 14 55 49 62 9 | 31 76 62 17 8 49 19 50 85 72 77 75 42 48 33 60 54 45 12 91 20 92 15 3 25
73 | Card 73: 38 83 96 47 42 99 13 82 36 85 | 74 86 59 16 49 45 81 61 44 39 3 91 9 26 35 25 55 21 19 41 90 70 10 29 4
74 | Card 74: 92 36 96 65 24 6 98 13 33 86 | 17 83 30 5 46 51 54 81 44 99 33 56 45 14 57 34 8 16 77 48 40 94 82 73 75
75 | Card 75: 14 21 57 66 33 8 90 7 4 28 | 91 61 3 84 89 45 60 56 51 10 58 20 96 78 73 93 97 44 19 15 12 90 35 87 42
76 | Card 76: 37 91 60 44 43 3 40 33 95 51 | 24 39 81 1 46 83 97 88 87 6 67 40 22 96 93 2 71 33 29 15 41 16 89 21 68
77 | Card 77: 91 84 43 9 87 96 37 64 41 31 | 35 13 30 43 78 32 23 85 84 19 88 68 10 63 27 77 61 50 41 94 54 12 97 86 33
78 | Card 78: 9 78 53 16 80 56 91 3 62 70 | 85 64 21 88 51 16 15 4 69 30 13 1 70 17 52 23 90 5 24 50 19 81 41 67 12
79 | Card 79: 59 28 42 51 66 58 63 9 24 47 | 69 95 26 36 14 62 13 20 35 25 34 74 40 41 9 39 45 77 5 10 55 96 22 81 49
80 | Card 80: 72 83 73 23 85 2 53 22 3 43 | 14 50 67 63 19 76 39 60 31 33 62 92 29 12 49 75 69 78 44 8 96 95 34 65 20
81 | Card 81: 2 46 29 50 65 57 55 83 74 12 | 4 70 97 54 68 99 81 5 84 10 73 61 88 66 27 8 56 33 79 47 85 49 17 16 34
82 | Card 82: 37 30 10 3 8 34 44 24 57 13 | 42 17 25 65 48 71 4 64 51 83 75 27 72 96 45 18 11 15 70 53 91 14 12 87 59
83 | Card 83: 82 81 15 4 54 96 74 72 37 70 | 37 78 72 25 4 66 81 97 6 83 43 96 61 44 15 71 40 54 27 70 82 98 74 93 7
84 | Card 84: 97 52 96 23 80 53 57 83 16 62 | 5 31 89 91 84 33 52 83 76 23 64 67 10 97 29 63 96 58 74 53 62 57 80 81 92
85 | Card 85: 53 33 76 24 81 68 51 47 40 89 | 70 38 51 50 85 57 89 40 30 61 1 24 54 75 32 33 96 19 14 53 76 20 7 99 47
86 | Card 86: 19 96 52 18 15 53 82 16 86 13 | 69 27 32 85 87 30 33 83 11 47 3 21 68 70 42 61 46 2 64 65 44 1 97 48 74
87 | Card 87: 18 40 55 62 39 95 60 11 76 46 | 82 81 22 46 92 80 62 91 12 40 76 60 69 78 17 18 11 93 56 39 37 88 3 64 95
88 | Card 88: 72 65 91 61 57 4 49 24 45 31 | 28 49 91 31 19 59 65 36 34 87 72 24 60 89 17 12 57 30 75 32 63 8 21 4 25
89 | Card 89: 18 24 64 43 33 56 6 67 8 16 | 40 21 27 52 3 23 65 89 16 7 96 31 48 73 33 37 18 99 12 50 74 26 71 84 8
90 | Card 90: 75 3 92 35 12 26 49 59 60 55 | 65 58 39 73 3 56 11 44 4 47 68 24 86 10 61 6 72 13 82 42 29 93 97 77 8
91 | Card 91: 78 40 49 75 60 15 59 7 31 93 | 71 9 48 10 69 29 65 40 21 57 68 87 12 35 81 70 30 94 36 97 51 43 8 82 5
92 | Card 92: 3 53 23 43 15 4 98 11 67 29 | 35 3 93 87 83 60 5 92 1 90 67 23 78 98 20 37 81 71 31 82 95 47 53 75 21
93 | Card 93: 20 61 6 36 52 77 59 16 18 81 | 66 29 4 87 61 92 78 30 68 69 67 57 88 83 71 54 24 21 13 56 84 35 60 86 53
94 | Card 94: 25 52 87 17 94 41 23 30 72 53 | 93 62 38 77 31 24 21 36 75 64 45 83 56 39 90 29 55 43 71 54 42 98 76 74 28
95 | Card 95: 84 66 91 8 26 82 85 96 31 36 | 93 51 40 98 69 74 53 67 86 23 77 41 62 89 64 34 5 26 50 73 42 43 13 19 91
96 | Card 96: 7 6 90 39 14 73 66 81 33 67 | 63 26 1 58 29 10 3 13 94 9 85 68 69 19 53 96 90 36 49 99 31 74 54 45 77
97 | Card 97: 66 64 77 7 88 18 40 24 10 63 | 28 22 62 41 30 21 19 12 50 43 46 42 56 6 60 36 95 82 97 2 73 55 38 53 8
98 | Card 98: 48 10 16 15 93 40 37 72 57 88 | 10 59 38 19 97 23 51 40 35 31 56 54 21 27 28 81 15 67 12 57 37 65 9 22 74
99 | Card 99: 45 57 7 23 86 82 15 14 75 35 | 55 19 84 37 82 39 15 77 42 52 44 18 75 45 7 69 67 23 86 6 89 14 43 57 35
100 | Card 100: 68 85 29 69 17 44 19 56 92 8 | 8 4 20 98 36 39 78 79 72 81 51 22 13 47 2 77 30 28 64 41 89 57 50 34 16
101 | Card 101: 6 91 90 43 85 1 19 2 28 9 | 63 25 2 9 83 85 87 43 91 6 62 64 74 28 19 82 92 29 36 1 71 90 60 99 84
102 | Card 102: 20 72 12 52 58 28 30 76 42 55 | 30 47 59 29 20 93 90 33 76 58 78 28 52 83 48 72 54 42 67 17 55 12 36 2 37
103 | Card 103: 58 18 40 8 73 69 22 74 26 63 | 61 40 63 41 82 87 22 8 34 6 73 95 69 44 45 85 62 74 27 28 26 4 96 58 15
104 | Card 104: 42 71 57 39 22 79 43 80 90 37 | 43 37 76 94 40 67 4 55 74 21 7 42 3 39 28 12 80 57 32 61 95 58 64 90 13
105 | Card 105: 60 9 50 14 56 11 54 33 77 84 | 77 81 17 99 11 84 70 60 5 43 83 19 80 13 54 33 50 30 87 31 9 4 37 56 14
106 | Card 106: 79 87 86 96 1 8 63 43 39 91 | 6 2 75 63 67 38 11 96 90 91 87 97 86 9 21 77 43 36 79 8 40 85 39 1 13
107 | Card 107: 97 83 21 39 74 64 79 70 77 14 | 85 32 55 18 24 14 79 57 51 12 4 21 23 70 26 83 39 66 63 1 64 73 30 8 77
108 | Card 108: 18 41 11 62 88 38 73 4 47 36 | 82 53 41 92 65 15 42 47 85 96 26 43 58 62 11 3 54 55 89 63 30 17 20 93 2
109 | Card 109: 28 34 55 39 22 99 98 89 86 54 | 58 76 46 70 91 43 2 79 16 25 89 42 78 52 12 56 44 69 80 85 84 99 62 19 15
110 | Card 110: 32 38 50 41 8 97 84 60 92 40 | 43 7 51 76 69 38 92 34 41 71 8 49 95 79 32 45 42 58 60 40 4 3 98 31 20
111 | Card 111: 61 7 67 98 74 21 79 4 85 68 | 90 80 4 8 46 55 40 28 30 38 64 86 73 51 42 66 69 15 29 6 52 78 82 49 41
112 | Card 112: 13 92 98 37 72 52 1 30 42 36 | 17 65 49 6 5 33 40 10 57 72 12 53 7 15 44 18 90 46 81 99 26 16 23 52 66
113 | Card 113: 39 30 46 62 55 42 32 77 9 37 | 37 21 50 40 63 97 28 11 51 26 75 86 80 32 16 69 77 60 6 99 9 72 22 55 79
114 | Card 114: 54 6 72 17 56 76 23 78 7 38 | 15 76 40 56 8 50 51 97 94 64 13 3 69 24 54 66 14 25 82 1 71 41 47 74 92
115 | Card 115: 50 66 30 89 46 20 35 59 22 88 | 96 72 32 97 61 64 25 70 4 11 88 34 46 6 10 73 71 79 45 33 66 50 24 13 42
116 | Card 116: 83 33 99 22 90 32 11 28 47 85 | 80 58 57 7 15 1 23 59 86 54 67 36 83 38 34 18 37 35 19 90 45 24 46 4 84
117 | Card 117: 95 23 58 8 76 82 60 1 15 80 | 75 77 10 85 36 52 91 54 44 96 97 89 25 67 16 31 99 51 68 83 55 29 3 20 33
118 | Card 118: 53 7 99 97 39 37 80 52 18 77 | 76 78 83 34 75 69 39 14 27 44 89 56 23 30 43 48 57 61 29 82 87 93 67 62 12
119 | Card 119: 19 22 6 97 71 68 59 95 67 75 | 91 40 20 74 87 46 4 85 63 64 50 88 14 1 54 39 3 62 58 10 28 55 27 86 60
120 | Card 120: 37 76 87 74 15 84 14 11 99 60 | 24 15 92 60 25 3 86 1 33 5 62 65 79 6 91 45 11 14 10 2 43 4 68 85 54
121 | Card 121: 74 43 96 14 67 85 19 51 80 95 | 27 53 14 15 72 99 85 30 33 20 13 58 12 25 36 18 45 67 34 79 32 76 96 95 55
122 | Card 122: 93 51 95 32 2 18 40 72 31 45 | 8 98 70 17 62 22 63 72 69 73 3 26 42 25 1 41 28 13 77 92 32 60 56 2 65
123 | Card 123: 9 82 93 20 35 69 87 40 30 67 | 87 10 67 63 76 23 45 35 54 5 75 79 66 40 1 89 71 20 77 43 90 65 9 82 37
124 | Card 124: 93 48 59 54 75 8 83 35 4 64 | 71 59 41 35 4 65 49 5 98 91 54 45 76 64 93 75 8 83 48 87 94 32 16 89 82
125 | Card 125: 24 14 40 22 2 57 67 35 36 98 | 36 82 19 88 23 55 15 97 78 35 94 24 67 52 14 30 40 56 38 57 2 31 22 98 71
126 | Card 126: 22 7 97 12 95 66 69 51 59 88 | 94 88 59 58 70 64 95 29 7 93 68 21 16 19 36 39 41 66 10 76 78 82 63 34 56
127 | Card 127: 46 9 32 85 22 20 14 68 98 61 | 69 25 4 70 64 57 14 89 41 98 22 53 27 77 20 56 84 42 85 40 90 6 61 71 60
128 | Card 128: 53 84 81 45 23 13 93 34 42 80 | 80 74 39 50 75 49 7 61 43 5 1 51 36 54 57 97 26 32 82 98 68 45 93 37 86
129 | Card 129: 40 29 85 88 86 7 49 67 91 92 | 86 38 79 31 57 34 78 17 52 53 22 36 62 75 21 70 88 7 3 49 28 6 85 14 4
130 | Card 130: 63 20 36 62 43 98 99 12 46 57 | 14 32 99 22 17 70 5 91 57 95 49 15 28 46 84 89 78 79 43 98 45 50 88 16 23
131 | Card 131: 7 16 87 36 73 82 11 40 14 69 | 25 31 82 24 50 38 2 28 4 23 72 6 51 79 86 46 55 97 42 90 84 1 39 32 27
132 | Card 132: 67 56 15 63 40 9 59 23 94 27 | 26 65 80 40 46 23 37 78 27 12 34 98 41 59 94 16 50 79 90 15 4 7 6 62 17
133 | Card 133: 18 91 27 52 4 34 12 32 65 41 | 45 55 7 3 84 79 54 91 75 80 17 49 42 9 18 48 59 6 8 22 94 10 93 53 57
134 | Card 134: 78 75 48 26 14 8 91 41 34 68 | 18 29 57 5 17 22 56 97 74 34 13 50 40 33 62 20 10 71 58 1 21 88 87 8 25
135 | Card 135: 5 97 16 92 74 51 61 65 3 14 | 15 50 86 24 99 90 59 32 45 81 97 75 6 25 29 80 9 89 46 70 40 57 42 63 60
136 | Card 136: 81 35 23 70 51 14 31 50 67 7 | 32 28 40 58 4 99 18 95 11 90 86 13 84 74 61 5 44 47 24 38 21 1 77 48 78
137 | Card 137: 74 99 57 81 5 1 90 9 69 30 | 88 23 97 7 25 68 78 91 53 15 55 81 92 90 12 18 50 71 61 75 8 76 36 19 34
138 | Card 138: 37 2 84 13 78 51 29 15 42 71 | 49 30 16 88 79 67 76 75 38 80 91 6 28 83 14 26 1 19 40 18 32 98 74 17 44
139 | Card 139: 49 75 16 61 39 4 51 55 17 97 | 11 45 56 47 81 78 67 21 57 42 84 58 8 13 10 91 7 19 46 14 90 87 26 1 18
140 | Card 140: 39 19 41 45 17 30 29 66 61 25 | 61 53 29 41 37 30 95 93 45 17 8 21 66 10 14 78 65 18 39 5 52 91 19 25 4
141 | Card 141: 7 66 29 40 9 14 34 64 4 31 | 98 63 65 6 92 56 81 67 48 88 49 18 38 61 13 95 28 85 20 17 21 30 58 52 89
142 | Card 142: 32 88 54 27 21 86 49 87 44 45 | 15 44 67 75 87 79 21 10 34 70 54 49 88 3 28 32 65 27 43 98 53 64 45 86 9
143 | Card 143: 14 7 67 53 37 73 45 18 62 34 | 87 68 3 22 40 86 26 85 70 4 61 78 1 29 48 12 37 10 77 54 99 36 94 79 15
144 | Card 144: 92 35 52 27 19 16 58 4 22 85 | 47 37 30 51 96 28 58 81 85 9 19 10 46 22 27 7 35 52 16 60 4 92 53 13 84
145 | Card 145: 71 32 62 83 43 20 97 57 78 24 | 88 34 23 25 67 52 11 9 49 80 70 29 43 2 44 45 62 56 33 3 20 98 28 77 79
146 | Card 146: 99 11 17 93 16 77 1 46 55 68 | 25 17 77 99 35 53 3 84 98 2 21 74 27 58 16 20 33 22 39 28 69 9 92 46 52
147 | Card 147: 56 26 30 23 66 94 82 47 14 49 | 68 41 6 13 99 7 71 67 35 93 57 84 44 40 70 89 42 63 74 22 20 55 33 91 64
148 | Card 148: 21 6 43 36 7 44 61 23 93 57 | 53 20 51 59 74 77 16 92 47 25 62 58 18 85 3 63 46 81 99 5 79 70 69 75 34
149 | Card 149: 31 36 91 20 17 50 1 18 64 52 | 66 90 80 33 26 24 30 58 45 77 25 29 44 48 6 35 96 13 78 65 68 98 93 89 94
150 | Card 150: 81 91 37 66 12 33 59 97 38 32 | 61 38 91 95 75 85 48 44 37 47 84 66 35 62 79 94 25 22 97 17 10 31 96 5 78
151 | Card 151: 32 35 11 75 63 61 42 62 10 56 | 4 44 53 12 50 76 51 5 82 25 30 8 89 41 34 98 54 96 37 74 35 16 31 57 65
152 | Card 152: 96 60 29 43 99 19 80 8 5 2 | 87 52 19 11 99 35 20 60 55 80 24 21 8 61 38 78 42 28 95 6 64 65 49 59 26
153 | Card 153: 53 30 75 13 87 77 56 89 63 6 | 7 54 93 80 47 4 72 9 69 44 97 96 23 24 94 67 55 8 33 30 37 6 14 5 3
154 | Card 154: 10 65 46 58 13 25 69 52 19 3 | 47 41 9 3 40 79 89 21 33 73 14 7 74 65 31 62 24 69 60 87 12 16 53 80 82
155 | Card 155: 24 51 35 95 93 73 36 65 27 20 | 14 83 97 94 29 39 19 38 33 32 44 92 60 25 76 64 49 71 65 34 91 31 53 74 23
156 | Card 156: 52 31 50 54 82 42 23 9 39 3 | 29 64 88 70 48 74 12 90 75 57 23 25 58 68 36 33 73 5 84 28 47 92 50 41 21
157 | Card 157: 66 20 50 96 6 84 54 67 59 81 | 77 60 38 65 37 44 15 73 23 83 18 71 89 53 90 36 40 32 2 39 78 63 8 51 19
158 | Card 158: 38 46 85 81 87 86 98 90 37 34 | 41 71 35 26 12 19 51 93 39 20 76 24 7 80 50 56 49 2 57 84 68 92 54 1 75
159 | Card 159: 61 36 84 47 4 22 49 17 31 75 | 77 83 49 55 84 80 18 44 31 47 22 67 4 68 69 35 75 5 59 13 61 39 36 54 17
160 | Card 160: 90 70 62 65 87 95 15 77 76 35 | 70 94 97 10 90 80 35 27 84 87 42 62 54 26 95 57 82 63 1 18 92 25 49 64 21
161 | Card 161: 44 6 28 50 79 16 15 83 45 53 | 79 72 12 45 50 35 67 6 89 28 15 61 16 7 46 36 44 55 27 92 1 59 83 53 94
162 | Card 162: 29 51 46 64 4 75 37 78 81 71 | 83 71 37 39 74 66 32 1 51 93 43 46 20 3 15 50 81 64 75 73 78 29 33 4 22
163 | Card 163: 1 52 37 97 88 47 94 10 98 5 | 85 31 33 46 15 1 16 61 98 59 64 94 83 68 35 11 44 80 38 36 84 72 86 40 29
164 | Card 164: 60 40 94 62 18 71 92 25 21 64 | 64 18 58 76 38 55 40 45 71 92 73 75 25 62 12 94 68 79 23 91 21 60 72 39 7
165 | Card 165: 63 88 91 22 85 18 39 55 33 84 | 95 88 37 5 39 46 33 61 32 45 74 20 27 35 76 85 84 18 54 86 91 75 22 55 63
166 | Card 166: 72 11 31 50 53 82 41 74 62 87 | 42 34 50 11 96 3 77 7 37 22 44 38 62 1 87 68 12 54 74 53 47 82 69 89 85
167 | Card 167: 79 26 70 95 25 16 18 37 75 61 | 39 11 68 61 44 53 42 94 37 45 75 78 62 18 95 26 79 92 38 13 16 64 21 91 57
168 | Card 168: 94 86 69 88 31 15 62 44 19 14 | 3 24 29 8 44 61 89 7 75 15 91 36 45 70 66 4 35 6 71 22 25 39 55 33 18
169 | Card 169: 86 68 72 15 42 99 9 35 2 74 | 42 84 59 86 6 15 53 89 85 79 20 68 62 61 10 2 9 51 99 54 33 35 13 48 93
170 | Card 170: 83 6 15 80 93 63 79 50 69 5 | 15 25 6 93 69 50 83 68 16 40 66 58 63 79 52 7 80 34 61 95 5 33 78 91 32
171 | Card 171: 33 85 4 12 72 62 49 67 17 53 | 4 17 53 72 47 6 49 56 82 48 12 26 30 85 61 15 36 70 64 25 2 33 67 46 62
172 | Card 172: 98 63 26 82 12 61 56 95 27 99 | 76 30 14 95 26 97 71 19 57 67 73 48 63 54 82 18 98 27 61 5 12 44 1 56 74
173 | Card 173: 7 32 34 4 22 79 27 10 78 65 | 3 81 65 36 91 62 94 54 41 32 12 28 39 34 18 61 78 79 80 66 9 63 43 72 97
174 | Card 174: 14 78 60 32 26 31 15 80 11 72 | 1 31 33 35 73 83 97 36 21 3 26 9 91 23 51 84 82 70 22 20 34 90 98 87 69
175 | Card 175: 73 14 7 11 20 64 30 90 62 23 | 60 53 15 73 63 19 71 92 48 89 80 44 78 79 2 76 45 64 42 35 81 27 10 21 26
176 | Card 176: 32 30 39 10 1 3 67 66 94 62 | 86 95 56 54 58 35 90 19 74 43 5 48 17 2 46 65 97 71 36 31 69 8 47 94 42
177 | Card 177: 24 90 40 47 51 75 63 29 57 10 | 49 68 61 43 30 26 84 59 99 75 44 41 17 24 12 38 90 37 36 35 91 9 89 46 8
178 | Card 178: 73 74 31 76 10 21 70 3 30 41 | 39 14 30 70 79 75 97 44 87 20 92 12 86 56 18 46 8 90 23 98 2 59 28 53 3
179 | Card 179: 78 44 89 84 50 97 55 90 77 99 | 79 1 88 65 2 50 72 68 7 15 85 41 64 93 37 16 53 44 42 48 89 97 59 60 8
180 | Card 180: 55 98 13 45 33 91 88 4 49 37 | 18 44 64 83 56 79 81 26 78 54 72 75 11 70 66 57 73 61 62 34 19 95 93 94 76
181 | Card 181: 94 47 65 55 8 45 1 67 71 25 | 99 34 43 64 36 50 6 51 27 59 37 40 3 98 72 78 38 74 82 46 85 90 48 32 84
182 | Card 182: 78 75 63 31 30 70 84 50 28 19 | 61 18 58 87 77 48 71 50 91 92 60 86 73 94 85 57 97 15 1 25 74 67 11 68 47
183 | Card 183: 94 27 68 41 8 72 48 85 97 49 | 81 35 90 69 76 18 53 1 59 25 88 31 4 93 84 32 9 55 66 50 22 62 43 60 17
184 | Card 184: 40 31 56 54 59 98 93 81 24 44 | 62 42 93 56 99 10 81 59 37 6 41 66 44 72 31 30 20 54 51 24 27 83 40 73 98
185 | Card 185: 38 73 79 48 3 46 99 93 50 24 | 65 34 40 2 20 92 10 32 67 57 22 47 96 11 7 31 87 6 28 95 77 25 58 29 27
186 | Card 186: 47 65 99 98 90 68 13 49 51 10 | 90 82 27 68 84 83 57 50 18 5 49 65 85 10 46 13 21 81 73 51 71 47 98 88 99
187 | Card 187: 25 56 18 15 59 47 20 86 50 83 | 25 57 83 36 56 87 50 34 9 70 4 64 77 45 92 13 20 47 48 15 97 18 86 28 59
188 | Card 188: 99 16 44 2 85 17 71 45 49 11 | 94 13 45 36 77 89 26 6 39 27 84 1 80 21 73 41 33 90 46 72 65 96 34 71 83
189 | Card 189: 34 24 76 68 47 19 85 15 50 46 | 43 67 4 44 14 34 19 61 47 68 50 46 99 94 16 76 15 28 36 27 52 85 88 24 89
190 | Card 190: 56 20 43 86 2 88 87 30 14 4 | 43 14 19 92 3 23 87 74 50 97 2 88 18 80 20 86 36 41 95 27 57 98 49 30 26
191 | Card 191: 47 2 18 84 91 66 24 6 42 56 | 12 93 7 50 42 45 2 91 66 4 32 47 19 56 49 18 15 24 44 84 97 6 16 31 25
192 | Card 192: 42 88 68 56 93 48 9 52 20 70 | 30 93 42 4 68 70 36 56 9 15 88 98 64 67 33 91 20 61 50 27 13 94 52 48 85
193 | Card 193: 46 57 19 40 9 7 47 33 86 11 | 65 54 38 43 82 55 79 51 77 73 74 97 75 96 6 47 62 88 92 18 84 48 41 29 52
194 | Card 194: 58 23 35 79 82 72 44 93 12 43 | 43 60 2 24 77 48 61 25 44 75 35 12 93 51 36 72 6 31 29 50 37 80 19 14 87
195 | Card 195: 15 77 78 50 36 83 68 52 86 26 | 16 72 67 88 14 81 34 24 71 32 91 77 90 1 98 95 7 28 49 84 86 20 44 73 56
196 | Card 196: 25 3 32 15 1 56 27 51 82 81 | 87 79 15 11 98 54 56 88 18 92 69 25 66 27 60 58 44 1 51 3 32 81 12 72 41
197 | Card 197: 3 99 81 8 93 28 76 7 27 48 | 78 98 85 5 93 77 72 62 69 82 50 9 35 74 18 10 33 67 90 31 79 84 58 29 17
198 | Card 198: 26 81 19 24 59 82 8 95 86 17 | 13 22 10 96 19 20 88 3 90 78 24 9 50 34 6 94 7 60 44 76 31 81 26 33 43
199 | Card 199: 77 91 58 16 47 94 23 30 88 5 | 38 66 12 25 95 67 72 89 36 45 63 15 54 98 74 57 32 39 59 28 7 62 82 13 26
200 | Card 200: 82 47 52 12 83 4 26 93 33 9 | 31 30 91 2 6 27 28 1 81 8 75 92 56 57 41 24 72 85 53 74 59 11 66 32 54
201 | Card 201: 4 13 26 57 84 17 63 10 98 56 | 72 85 68 47 44 60 54 34 38 16 8 11 23 84 32 18 69 13 26 35 9 73 43 15 89
202 | Card 202: 11 9 1 42 71 78 97 89 8 10 | 33 17 81 48 60 96 69 37 12 46 73 4 76 54 86 91 28 5 51 98 99 84 13 85 32
203 | Card 203: 37 80 7 87 79 60 6 49 16 12 | 23 34 15 46 38 20 27 45 33 97 37 14 68 83 49 79 43 70 57 60 11 63 24 35 73
204 | Card 204: 84 24 48 76 7 18 77 37 69 5 | 88 39 92 94 34 37 11 40 85 35 2 81 73 58 42 66 83 9 56 12 14 51 62 20 7
205 | Card 205: 5 84 4 6 95 77 59 67 74 35 | 58 47 29 34 79 86 35 89 71 96 27 64 90 48 37 78 1 39 46 21 98 91 43 8 56
206 | Card 206: 56 21 34 13 1 17 99 11 76 60 | 36 24 83 31 50 19 82 32 61 9 98 71 79 39 97 37 29 13 27 10 52 22 41 40 59
207 | Card 207: 62 7 22 90 51 96 12 13 36 52 | 48 37 70 24 73 51 83 3 5 77 29 87 23 18 26 76 19 97 20 86 84 14 63 33 21
208 | Card 208: 40 42 5 91 29 59 70 49 23 94 | 82 81 30 61 64 65 19 9 67 75 92 16 26 52 73 43 55 35 17 93 39 90 74 53 51
--------------------------------------------------------------------------------
/day1/input/part1.txt:
--------------------------------------------------------------------------------
1 | sdpgz3five4seven6fiveh
2 | 876mbxbrntsfm
3 | fivek5mfzrdxfbn66nine8eight
4 | 554qdg
5 | ninevsgxnine6threesix8
6 | 4fivehmg614five
7 | three6sdnttwothree3
8 | two26four2
9 | 586dntdbtmfourrjnjdzptcfrpr3
10 | dgkclmseven8
11 | onepeight8sqzkrvvn
12 | ninednnsjeight5c9hkzkhrgzcz4
13 | 42pchdjlnsxr688pvlgsr
14 | vmzkvb5six4fiveg2
15 | 517fourone7kthdrcxm
16 | sevenfourjgtwocsqzfbsqvb9flrlzxpx
17 | 3jqdxrqqzhkgg2fourthree9four
18 | qjgfbnqjeight4onejm84sevensix
19 | pgvthree1six15nineoneone
20 | 56ninefivefhnmmh5fdqcvttpsjseven2
21 | sixtrvj12twomq
22 | 2jmxzzm9xhxmndgbhjlblhsnine75
23 | pckdqrp8pgnmkgv9onetwoxlk
24 | 73mrflhnfzfxjqrqznj2
25 | tfourninegnjhhdzsix6sevenfive
26 | 35zrgthreetwonesz
27 | 9fivebstlx42
28 | 6threenine
29 | threebscrccrt94four3gvqdkdtjphmnmmf2
30 | 3seventwo3jmzxfmcnvjbnsgbgktwo
31 | vhljqhzpbtxcssix3dbvttwo
32 | 4ninefour6sixpccqltcpvh
33 | 5fourthreejngfour
34 | 33rgkkfiveeight4xq
35 | sixklhpptnnk8qvgbdcn
36 | 3bdtsjdfbmv8eightseven9sixqgfcmfpcone
37 | vhckknzlvcpfvttnmnk5zcvs1eightnine
38 | qheightwophxbnlv5nine8bknvnkdbps
39 | 7eight3gccqdgrltpkpt
40 | qvjqtqffvtp2six
41 | eight5ntzknggp5
42 | eightone6fourkf
43 | vlksmsxsljlnhtwo3mrc3five
44 | one2eight
45 | bqnjmjsznc67tdvtpdt
46 | 8five57sixfive
47 | one4zhhlncnbncvzrsbsslnh
48 | nqdftnsevenonellvpsdhrnrtrdjhbqscpd78
49 | 1fivefourffm3eightlcssevenclsjtb
50 | 7mqqgglzqmpk415gcggplprone1
51 | 2jprlqkpb1sixhfbvzjrgsrpjzbhtgrhpfour2
52 | 9twotwoqlvkrkhjthree44shvjxkpjgzgphgprflvn
53 | eightgsonefivefive2
54 | 7sixmpnbgtmzrdbfive41
55 | tkrcfive2eight23four
56 | vgbqvj5mjplnfdsqpfone2hpxz
57 | kvl7onehdvvfdghbsngrgn
58 | tlsbhjblnpdlrtfour6btjcfmgdvtfive
59 | 6qnfivehnt31qcpmnhx
60 | onesnqrgxstfmzhtln5bnldmvlqzsh
61 | fourgn5fourggbddjsj34zncxtmxxvsvs
62 | 4lnr6xjkpzdgvsevengplkjdjtns
63 | hzfplpdt9
64 | sf2twolj8
65 | 6zghkzbfdjctpfp1
66 | eight65
67 | tvzmxzstsixmkvjkjl6eightninefour
68 | fivephplggzkmfivetjfourmvcpnjxfvg58eightwoc
69 | 1fivehpleightfivethree4
70 | zeightwo8
71 | 1jfcztzr5sixoneshmlpgtwofour
72 | 3zksglknjmvqfqhfiveeight76onemldlltn
73 | 9four4vtg32srrbqfczmnxdchtbvc
74 | csdb92sevenvsnxdbd
75 | 4sevenseven6
76 | 8two8rm3fkbsvphhdrznine
77 | trp149zxzrkk
78 | 948two9ninenine
79 | cbmfivetwoninekqbkhkddc3rlfxlfh
80 | btvcshj4seven
81 | 964sjxonesixgcjxmtnine
82 | nb83fivegxnvxxrstqnine
83 | fgoneightljvnfour5gfsix4sevensixt
84 | 6one97
85 | three3two3sixtwoeight
86 | kxonesix59xtmbqd5
87 | dfqfcbv5mjeight
88 | nine2nqhrsvkvzzkkvnn6oneightlbq
89 | eight8rztdlm
90 | ttcfdskrxlqlggmgfourthree11two4eightwopgz
91 | 8seventwooneightfcj
92 | bmt8nine
93 | rjzkjlgone7four2cffkgq6eightccsmvxhkk
94 | 6qkdznvrcdltdgpn75vvmvf
95 | tcjhrgtlsixjsrbxdnseven3hkd2pnklcmshsf
96 | mzptwone7onethree4tzthree
97 | 1sixgnvzbhscjgcr1gxfzpm
98 | 15twoqzplbsmfcnznrgrnthreetwo4
99 | six815eightbdrone5five
100 | three9pp21h3hzzg
101 | fivetwothreezdhthree2dggsdgfdrx
102 | mrqpblvqvfour5zkvvfjjbr8plzkh
103 | cnxdvg8
104 | pzxeightwogxxmtgs6
105 | zcddqkhkjlfive4onexkdggcbfbqzxhfxqnb6
106 | 3jqncxxjjz7
107 | bcntgllhg4
108 | 9sixpbgnine
109 | eightsevensixfive45861
110 | qhrqsppdxdnseventwo3fiveeightfour
111 | fiveeight9
112 | qvbvjzbfzrtcsxdrsxlr1fourjtqckdjg3
113 | sixfour728onethree
114 | fjponeight728fourndlcrm
115 | 8fpbcvbone8ltzprklvgdcjhhsvq3
116 | 8sixhqmsixxqmclmgvhfive5
117 | sevenvvc376ckfrjjjcn
118 | 5onelxvs
119 | 6eightjtfphvprone1ztrxq2
120 | 6789bnfjqg
121 | zfrpr12two
122 | 8eight6jxmvxhchj
123 | 81fiveeightfourpxmdcfbqhf
124 | hpxnskbgbjm9hqllklsxq6fivecvsxvpl
125 | xjbtp57two5onefmkbzdtwo
126 | five6fourhpk1twosix
127 | sixxkqhckjdffmsjqgt4xjtgq
128 | five9rxrzgk1
129 | z2seven
130 | six6nine16three
131 | four66lzqjdpndp5four
132 | 2zzsdpx6vfckpgvlprx
133 | kmlfslspdkxp4smpqkcrdpfn
134 | seven7xqtszl3oneninetwo3
135 | ninethreegrxg78lpgstkpvckngrbd
136 | 746eighttwo8two3five
137 | one7nine2fourqctmjggsgtlvj8
138 | sqdvmfrssz9rglsczgbdk6djnvb
139 | jrnkffhkdseven86xvfkvlnv1three2
140 | 3jgjdzz887
141 | four6threefivetwohgfrcbtcpv1
142 | 8nine23twozhnbn2
143 | 3four9xmdqjnvscqvqftbbbqbgp8cpczg6
144 | 96twoh4lrczqsvtfrj3
145 | hgjvlbzrdprtrfivedhhsevenfour8five
146 | threethree2sevenvsmlpxbsspxrgkfour2
147 | 4threethree7ptffzx
148 | 1eight3nktcptcs
149 | 545
150 | 2hvgvkrtqtdfk9rvnklqqjdfcvvmvx6
151 | qhzvtqlmghjjtpcjeightgbkqjpsjqjbhseven283
152 | dlqnqbreight64668jjcsoneightxfn
153 | 84lqtmgjxgcr
154 | 118
155 | hceightwobgcbsbtslf2onebhkdqlpvxxjpgsnmzfthree9
156 | fxhxhdlkfrdhfslllsevenjvzdcpkclxx6four
157 | 8ppsvxfxpbv87threefour
158 | lonenine4two2threenx
159 | xtvtjbspvcrlrhbczkqt199
160 | glspl5fivecfzjjqjktmvcnk2
161 | pfgcqxjkkx7sixjcgmgszzbv1gnpvjmckfour
162 | onebtvsctzzbxcvvvmltwotwo73
163 | hpxl9dgn22twordrsfk
164 | dsixbtsbccxgkheight6hfsix
165 | foursevenqztbvqhbghmtlq876two
166 | 7sevenzdhsmmrdrmvzddp7sixeight14
167 | one3fourtwoseven71
168 | hbzs5threeeightjkjmkg91rsthree
169 | 3jfshzmtdrsonejtonelmjfkkjrmhzfxttm
170 | gvcxznvtdtgkhrvbnlqsxbdq677
171 | ffjqbssh65mpvkpqcgvmlzsevenlrbhfourone
172 | 77khln
173 | 21sevenhnine4fivevclbksgpxxhsz
174 | fldn4oneeightknbvh43xjqnnkgxv
175 | 1fourtwo
176 | dbvskdoneoneone44gs6
177 | kqvmpr16twotfvjckstvg6
178 | 1msix522lbnt
179 | 2eightlgsfcttnchptgq1eight
180 | onesjpcjmss15vqlzlkfqtpmmrkkbseventwo
181 | 1pqzgkhhfltwozqls
182 | 28twothreelmgqkpnfourfivex3
183 | eightxvjtsevensevenpcrjtfcllzeight3mbjdjnklgxzzfdz
184 | 8brsfjhmbjl9hn
185 | 4eight68fivesix7
186 | ninethree3
187 | eightone4
188 | nhhrrvvcr5oneninesix
189 | 8fourdzzbsxlsnlqfsjjjlf
190 | one866onemgzhsix
191 | stwo56tj4two8
192 | 9fourndxfjdptt
193 | hgvxgninelbvvttxlqpljt77one
194 | 9sixsixbhtqsfgt
195 | tworvghztldrhz98xgdgkbpfj
196 | vfhtlmxkeightsxpfcvbvmmms5txnktxhj5
197 | 1njpfjngfone
198 | nine4xcjdsmbdl
199 | tdzjr493threeeight1
200 | 9eightgmcc
201 | dsmr83svmgltgkkzpvtfmdgfjff2
202 | qtm7four6fivejmbcnrfpv3pffqsrmcd
203 | 7zdmrnshs843sixfourfourfxxg
204 | d898two66eightbrfrxmvx
205 | 11twophvzjqhslk3ppcbqxpxq
206 | sevenqrfrngkndc8lrmtj3zhczpcrhxfjxrdp2
207 | brbpcldn7sevenone2six9
208 | jgsjnqjgmfcs7fourfive7dbtqsvj
209 | 2bb7hrtgbxsn5
210 | xqvhhlzkninexhgvfvfrpgjq812
211 | 17eighthggxphbzz8zxlcxdrvvkxgb39
212 | 4sixglxd
213 | dkeightwo1xmfjmvxxmglbsgkbphrll
214 | 558gprdd
215 | kzjnpmthree3three
216 | dkpjssgpsgglngk6zfrktlgchtqxbzcgxb
217 | 24four92fivegccfourxcnl
218 | 5xjc
219 | vhmxtlhcrlrk59jgsix3
220 | 59twokqpjp
221 | threefive65
222 | sixdnqlxcdg9six
223 | twoxgdmq7dhcxjnxr
224 | threelxtbtjdbtonecpxtwo5sevenfive
225 | fptqvt9onezqc
226 | threec24onedxcjhninesevenbjxlhtgfmf
227 | sixrmjbj87sevenn
228 | 8thltwosevenscjrsevensix9jhjvbb
229 | nine1bbpflkrjhgbrpeighttwoseventxfjmhjvsj
230 | snnddlskllxqcjtceight1gmm4tfcfccxmjg
231 | ddjr3549
232 | 8twoseven7kpseven2dj9
233 | hsmqtbrjgs5cbxjlsnzqcdldhlv4mf1
234 | hkdxzfjvzrxnjnbfgrg4
235 | cnjsnqmbzrnsbsevenfour3
236 | eight25three4five1
237 | jz5jxvmfrgttkkpxffbthreefive2nsix
238 | 4pdbdkx234
239 | fiveseventhree2nine1eightf
240 | pvgfour284mqtx2brsqgkgjlgvpkhxmd
241 | bhtlhjrgv94twofour
242 | dbbvkdhhqheight83xqfbhtxpqtsgpqmssevenone
243 | one6beightfivebzgmgdq4six
244 | bftwonekfgfsvdfxqlzrglm5cpmkpn
245 | five8fourtfltzzkvxzpzqhb1gvhqkcp
246 | 2vfrzrhnfx6799
247 | 5mndmdcjsr63
248 | 72fgbbctshbrsix3tpggclvpf9bgsc
249 | xdjqkrkfnh2threefvckhksevenfournx2
250 | nineninekfcdjmfqsrgpb61f
251 | 5threeeightninesix1fournine
252 | 7dzkzn
253 | two5twoxzngtwotwosixl
254 | pjmqfour81eight4
255 | rsjbbnqfrlppflstq3zxbhhn
256 | rlsrv1seveneighteighttwo47
257 | 55sffiveseven8two39
258 | 675kjvqfdszmdvztvkczxbr
259 | eightthreemrjtrfgqvsixtwo2kxnbzmnhnine
260 | twoseventwo9rcvqmkxdvsevenone7
261 | 2threesvvtztllvl52rzcscj3
262 | 424eighttpjzxtx
263 | 8jgfivextbkqvdhl
264 | tqrvp1gtpczqlpvr
265 | fsmvrkdrnine9pk
266 | jvfdlvnvsixthree8three22
267 | one5jzmdfh9phqkvb
268 | 7twoneklt
269 | 5nineeightxjgtnkfxknine1twofk
270 | 31lkhbnzckbcmxvdpmqqjtbn755
271 | 2txsixfivezrxvkktnxlnsfive
272 | bkjczmrcpqjxjfx4xkxfclthzthree
273 | eightsevenjscz7flvltvkmqkthreevqgsg
274 | tzlhm1lbmmnineqdpvxlv14threefour
275 | 1eightsmkmsqbs69x7chhmdd9
276 | three18onexvh31sevenone
277 | 24sixshjtwo4
278 | tjphmjzvfclddbfc4foursevenone9zrckvdqn
279 | rbffkrsntqj2tf24gfrlzzsr4
280 | 7ninerktmfsfoursixd
281 | four296six87five
282 | zkrxfsvm5ninenkhc8
283 | 96mgvzrmxzpjfourlnsninenine
284 | threepphgrmqlxone56
285 | plt372
286 | lgleightwojjvbkmhkvklscxrzpn6twovvsdzrsixxdcskxhn
287 | p7six
288 | sixthree1five6sixfoureight
289 | 2zjfndzqqzhkvqcfljpkdntdm4
290 | sjldrrnv6npzqdnpktkshcqfh
291 | four369xxvbqbrgvx42
292 | dlqtsthreebmt91vfmjxk47jpdbkjr
293 | gpdxdnine76nfrszxgnine
294 | 34seven
295 | 366tjcone6btwo
296 | fivelvvstsjvrxppznsxkmjr7gkpmhrsfxxvmxtlf8
297 | six1seven
298 | 5threernlthslpdjvjv1
299 | 1ninedbzjj
300 | oneeightrdhsfrcd7dfour
301 | 9seven92hlssjltd2four
302 | 934qjgrkczclghnine5kck
303 | hqk7pfqsbsevenseven
304 | threefourckvkbtwomnbrcv6flqr64
305 | qzmfhjdvjqjkrzdsvmdhpd61xphqddjgnsthree
306 | 96zspcjsixqzbcgmjrjbtk
307 | 6bgzmtlkhpsixfournrlrvghthreeeight
308 | 8qrvhrjlgjb3nine1ntcrx1
309 | 4onegk959
310 | fcsczdfkfour9seven
311 | ttkqsjgnrfive7vzbjr26pqlppfrxcndqlmrtpxqndgqp
312 | bxnxvlkhd9
313 | 46sevenvnbsqvqpcthreeninesix
314 | vdjltg8
315 | five3onevtxxtseventwoeight7
316 | 4seven684hcvm1
317 | two9klzeight8
318 | q259
319 | mfzsthree1
320 | zmqfivegfqzsfxnp5tdp
321 | zrpggrqldx221nineeightlbtjbtx
322 | fiveblninegkgfive3two8
323 | threetvlsjbmnfive83three
324 | tsixbqffhzfive8
325 | ctxbssevenbrcvxt9
326 | ft5ninetvh8
327 | fivegdqst1two
328 | three16oneqs
329 | ktfphzlgone7
330 | 884zjgkmtddggchgvfvg
331 | fourgsnone1ninefvltlzcgcrjhrp63
332 | threentwo92
333 | xjlttwo6
334 | nfhpnmff9foureight8
335 | 5nineqpdkbgdfourseven1three3
336 | ltnmsixnhzfnckdzpnheightnine6three
337 | sixthree9fourzflqn28
338 | dknzbthreed3
339 | 58llxmhb
340 | 3ninesixftzmeightone8
341 | 3sconeone5
342 | hmq6one4kzmkzjkvn9gvfbklp
343 | fcmkpcjh1three6pxkmkvmm5
344 | rffive7sixthree1xjqxeight2
345 | 33nine
346 | 3six55one
347 | kpbnhpveight9tgx
348 | b6pxfmcpnhgqlzgmncsix6
349 | tprmltwovzvrseven9two4
350 | ntnine1575seven
351 | 57onebk7four
352 | 5d394lgtjbzzdtdgttgk
353 | 4gkcone
354 | sone177
355 | fourtwoeight2gcbgjqtxgdcv
356 | 922seven75six
357 | tjzzcdnmlqlsljpkfvprqqnrkeight6three6
358 | 7fourxzltksevenclbf7vjslggfszg
359 | oneljktrrhpfxfpr6three55five
360 | xrqmxvrn356v
361 | threenbhhxsevenztcggns5
362 | five4eight
363 | 65twosevenone
364 | 351twoxrmcv9
365 | eightstptjbkzninesixnine79gkgmvpm
366 | 6vgltwoxcjfkvhl7psfsvkssevenrxlksjktltkmt
367 | fiveninefivengspsnfz3
368 | six5fivekonenineqnkgcpvhkr
369 | ngndtzrzfnssvtdeightglnxvtjkqtcgn67
370 | 3fcxqmhvzqclxqvkxqxxknslfive
371 | 1twohxrmz23seventhreefour
372 | jsgdzxlbcnpcppgdrhxjkrpnine5two2rh5
373 | 541onetwoone9
374 | three672
375 | 858sevenbvdtqvrzrf
376 | 3bptkpprssevenbtbmsvzmntnhtnqdddfrchhhfour
377 | 5qxzkpnninegrdtrjvkrfive668
378 | dbsmtnhknineseven8
379 | eight6ninefourcrfqnlvfour
380 | two1two7ninehqmz
381 | 9fivekhnine
382 | rlfff265eight
383 | 5jtshhjcjkvfive
384 | eight73934six
385 | gnzpnineonedzdm3ninedlmdrng
386 | rxvmnklbfthree1sixfour
387 | eight1vc54qhdcgseven
388 | ninenllv48hpdvqxpnfivenineseven
389 | tjsmjlteightfivecxvfpxn3
390 | xtddxtcxklrnpvtjsv5eight991twotwo
391 | 8dtlvdjclfive134
392 | four4fouronecseven
393 | 5nine8onebsmnnphb
394 | 9fivemqone
395 | 394eight
396 | zgpzcvslj652rkdptfm
397 | hnktnnvxjljtmg55
398 | s9tzgbhfknkvqpthbbshckc38fdkh
399 | nineonegthreendtzvseven7chtclt
400 | qctcphbsxmldvfourbbcphcszdmdghsssrspbjxgclpkjnine9vblnzjsvrj
401 | tvthree18sixeight
402 | 8lghseven9
403 | nhdlg32qbmbmsksql392twonelr
404 | s4nineone
405 | 3eight6mn7j
406 | six4bnntqxjbql4
407 | fourdzdccrkmjjmknxnf7eightkjvrlzqtm4
408 | 3tfxlpzjxjfour7one7eight5c
409 | pcbtb7zvtzdnzjn
410 | eightbjmrjmdfdeight6dhdzgfvggn
411 | five725
412 | 47659fblbqrbbzrthreefsn
413 | nsxkcxp1fivethreehxq3
414 | 2eightvbpzttsqgronesix5
415 | sixsix3zbtfsxhsjm8fivemmdhc6
416 | three94one
417 | pngbhg12
418 | sixfsp1fiveseven
419 | 6five9two
420 | 577x56ttnrdm
421 | mrqhz3cl5one7twosix
422 | 6vxcjd1dgvssttpbf
423 | 3cmxjhgxkbx4qxseightfivevclpvvt8gkcqq
424 | sevenone49lzllzfxd
425 | two3seven7vdclqnvfive3four
426 | 6sevenfoursevenone9
427 | 85eightpqeightwojmh
428 | 92three
429 | twocfhbzdsixfive6ltnxjkz
430 | 84bfkfvxbp
431 | 4jkeight
432 | 83lcktgpntfourxgptpql
433 | eightsevenznvjqj2ktckonecgslpdg
434 | 2onevkbhhltxppxhthfvrmkbxthree3
435 | 43grghdqconeoneseven
436 | fivefsgzsvltdqpgxfdfxdxt6four4
437 | eightcds3rpjdqvhqgjninethree
438 | hb16sbg5ghglgqjcztdsdxfpk
439 | foursix8five
440 | 9tworxpkbnnvzdzgtq9ssgsbfbrrqtwo
441 | 1jrtvfvbzd
442 | five9threetwokdzmkfbkqggvrthpljm
443 | 3threeznps8fourvpfcxtjqpmnine
444 | qxvqqntcpnfourseven1lfblgmmxsevenfpxjqbskgdonesixtwonezct
445 | threefvqjfknqntzmtdkz8
446 | 56sixzmshnfdgd4
447 | twotwo1bbsbsixhrhlrvz6
448 | 75c
449 | three23four29
450 | 4five182btnjxqtvtd
451 | 54dhhg7nine
452 | 497hhtgmprmvkthdtwo
453 | 35onelgvtxqxrvq5nineone
454 | 1tggrpnsch432sixhc21
455 | 155cdjntgmmjms9psszbgfv
456 | 8jxqjcrhfchvnsixkcnqvjdsixsixjdsvc
457 | one8six6
458 | twovfghzcgsrznk1three2threeqlshlztdroneightm
459 | 1xppptflnineeighteightnn617
460 | svpnine6jhqslblrzqonetkrxddjk
461 | 2rnxbqrrfiveoneightgsc
462 | two5gcmkhxvklknthreethree
463 | 6onesixvnfxnfrh537one
464 | sevenninetwo2eightthree
465 | five2four2nine2xlz7kkbdtlp
466 | pzdtwone9eight63fivercztdbnbfournine1
467 | 4sevenxnzvsjzj5three
468 | 37ninegkzrsbcbtwohrseight
469 | 5threeqklhpbzmmjgqnpkfldcsixgsfj9oneightml
470 | 4threevpsrffive2
471 | rmbxxtwo5twofive1sixeight
472 | 72glqq2tjknnhlxlnpntrrjbc
473 | 34threehdrchqmzcdjcckg23
474 | b4487
475 | 7one7
476 | twosevennine55one19gcgxs
477 | 44npfpjn7
478 | 8htmkzqhht9
479 | 26zzkbq3ninemdhntftfprqvnvshzdqfnine
480 | five7onefour2lhpgscf7ffmhgp
481 | pxqp5onebmmnljxssnine48nqhz
482 | six1nine
483 | seven4cdknfkdhvbone6foureightseven1
484 | twooneseventwoxzhlnfgthzffz9
485 | bnvzpzlmp4five1
486 | dddcjrmbeight8nine
487 | six3rglfhkthree1jlddcddtfsix
488 | 1rxfourxfszvlq6eightsixqbhgrrhll1
489 | eightfour25
490 | 15fournfourtbdnrjmf
491 | ftrvckp47slrbnkkneightxqqs5
492 | 5ninesix
493 | mgddc66onezjppzml6oneightvv
494 | zknine7nine8three
495 | kmkkfiveltrflvxdcxtworsfiveeight3
496 | oneonemn7oneone
497 | mxcchzfxseventhreehhqjthree1
498 | jvnineone6fgzxqszthreetwo
499 | ninegx9five2two1four6
500 | 2xzgxhh
501 | 811vqn
502 | hxqmnfcvbctsvrfgs5xvzeightrbrfq5ksqcxxmrs
503 | 8xqxzq1six7fivezbskvznxx
504 | 16seven5
505 | onenfdmcxtddscbmgvksseven6eight
506 | xbnmkjgdpbqgnxhdjninesk4
507 | xdmmqpn5lhvhvjmxtone
508 | three2994plmtrfqstmfive
509 | one3367nine
510 | fourfour3khgmtcctvfj11fpcqvnine
511 | 48fourmxxfour
512 | five8dtcqjjrcrg1three
513 | drhjrf8eightthreebxgs
514 | onesixdht2vrmgnzdbj1three
515 | gpfglhctmxzm9fcxlgtsixseven
516 | 6rrrpl
517 | seven1six5bfjpmqc
518 | k87rsxpsjx1mjxsdchjlqseven4seven
519 | 8three1
520 | sixfrbvgcvvxm5
521 | zzf599
522 | soneightthreeeight26fourhjxfxjg
523 | 94nine4nine2dmg
524 | 98sevennine
525 | sixdkcpjglgkjnine9vphg2fivehlggxbnjx
526 | sixthreevphh8
527 | kdtwoneseveneight5211
528 | txjsmlrsix72ljpkpnmgbnkckpvgtfx3tdkmslsix
529 | 45oneseven
530 | 4sixdgsixtwo7
531 | ninethree3kmzs
532 | 5blqnxkkjxp
533 | 3khcjgxghgdqkjfthreeone
534 | tnst57
535 | 8sixvvsxxmvmtwofourfjhtks4pdnccx1
536 | 3fiveoneonezghfkxpsnkggld1
537 | 9pkmpxrxlvz
538 | sixmlqb2
539 | 6cssvpsffour15gsqvv8six
540 | ngsz1
541 | 9eightninejkd882
542 | rsftptwo41sixp6eight9
543 | eight9988threecjeighttwo
544 | tworf5nine969
545 | 6oneeightwod
546 | threeqgcdsdvksix8four52
547 | ktwone7fourtpskssrdsrsevenffpxshtksvzxffour
548 | qlrmxzg2six
549 | sldmxllptp36zeightvh3
550 | onefive8zkvnnzkglzfpsfl
551 | dzbnthsjtm8sixroneightcx
552 | gcxgtsrpsv3ggcxqghc
553 | 1rsgjmfprrtwosvbscszlmgmq8
554 | six9three
555 | eighttpvjjstnkgone36
556 | jrxvfivetsdmjmkz477
557 | 46four
558 | mxblldfxdxbxgltjzvx283
559 | fone97mszqxhseven5
560 | 9threenine4
561 | sixvbshdqvjngeightthreerpfhbrx2
562 | krbtwone4ninetwohx6mprpvkp1
563 | cftlseven6eightnine
564 | twoqdrnvvqgkvmlgljdljvbvc9
565 | seveneightmbbdlsssrjhsffdlfll1
566 | 8pdkgszhfj
567 | f8
568 | 2cvbxndjfournine194sixfive
569 | qctzrvbfonethree6
570 | two3foursevenbsixtwonvmpsdqfmjfb
571 | qrcvxvdngmzrs7cjrpkhrhzsix4five3seven
572 | 83hone65
573 | threefour4fourbbhgbzrdsix
574 | tcnoneightms4nqp4351
575 | 4eightzscdfcfms5
576 | 9two9rqbkxggthreethreesevenhnnnq
577 | mxngggxnineeightxjzmf3six9
578 | 99gscgrdz3fourthreeppkgczb
579 | 49258fivehkjlcxdq
580 | vdzlp67bkhdfpjkh9
581 | onethreetwo1foureighthltfive
582 | 3rpkvlrzd
583 | threenineptdjgzmcthreefour7
584 | 2oneqrjhmqzk48
585 | threehjqbmbgdn5
586 | tbnjv46sixljhmsf7vtrnr7
587 | eight98onepsmdcpkgssevenqrhc
588 | 8jjhzgm8four
589 | fourseven4twobkbxrmjmzz7mnjzttsix6
590 | ninedv4onefzc
591 | seven5fivefive8scrmc5
592 | 3four656
593 | 42ggpjxtpfsflxffxdnscjbs
594 | fivefivetwofour7seven39
595 | 37pvxpmszcjtgnvkh
596 | eight71three2one
597 | eightsixsevenone6
598 | lrrqcm1cktlbhng2qjxfcchzfr
599 | eightnineseveneight6pqvqdqmk
600 | 8cmxrcmjkhckvxbtlxzx2eight9cqzb51eightwos
601 | zngbcxskdvnccgrhbcc688
602 | 844fkkvffrqsixgfdsccgtwosixgkmkp
603 | nmmeightwo8ninencqlbbgcv6x
604 | 5352jvlnrcdj
605 | 4fourfour7gdkkseven6
606 | bfxzk5fourqmgtmtjvmbcl
607 | sevenqxdzcsnbneight88sixbnkqgsone
608 | 3twosix
609 | xjdphbsfnqhqntcmsixtwokl4xcbmxgxnbp94
610 | mjhhzggdltwoone3sixtwo1sixtk
611 | 5onevdrkgdsgr6bdzjlthree
612 | ninesevenfhkgdlgvlcpsfourpm6sfive
613 | bghpthree7pdgtvhzninefivezgsxfsngm
614 | two878ffjrq39bfkbqlrsjj
615 | three978
616 | two1cxqlhsrr28
617 | fivex6
618 | 86threevhrzcrfive2six
619 | mghpkvxt7226
620 | 3262hxgseventwolqbtfttwo
621 | 6three5sevennbslxgvlxl1fivemdqtvp
622 | ntwone5znpvscmkffour
623 | tvtkjdrgv4
624 | 95ninefive7gzljcmxklthreebjkxjdkcdghnj
625 | four6bgdsevenfiveeightfour
626 | 5rkkglzccsdqcp35seveneight2
627 | hrdlgtslrtp2
628 | 3kvrlxntlthfour
629 | 61ccfqjdh4sevenkdcmone
630 | lcsdjgkg4
631 | sixxmfphssixninefivefive9fivefive
632 | four52shspfjkppdng
633 | 8dp8fourhdcsmtfvxv
634 | tqp8sevenkvvzpsxts6cqgmzzdxqvmeight2
635 | 36bpbjspbms8
636 | nine8onehvbh
637 | 9vhthfzjcdv
638 | ninezvdpv267
639 | 526vctfvbsfive
640 | two5qcmzmgrhjm
641 | cpdxfkqlhkthreerrbxzgbglmlvzqpk8
642 | 2threetncvhvpqtjsixeightninesbqzfrnhhf
643 | 2513
644 | smrdxrzcssevenonerbsrkdbgxsevenjtbl1
645 | cdhjhgmdlldvpc64fivebvljninesd
646 | five41nine2four
647 | sixsevenninekg91four4three
648 | vhvqhxrlkstwonine5
649 | threejrvchvlxd6sxtmnszjrsdxfpg6eight2two
650 | 7dmmrtzcfivet
651 | fivenine4fourltrnsd2fourqpkxb
652 | 54four
653 | 9dhpnplgmmrfgpvdvh
654 | skczmbgddnmz3mvssdeightonebfbrtzzkgnrpdv
655 | threesixsh28seven94
656 | three78nine9
657 | one26fivejcjxtkrnine
658 | ctkdmhtrjxeight7fourmzrnjxhdsthreeeight7
659 | fttprqpsm3bxcggksfqssh
660 | f2zvdvfnz14lgrmhq
661 | nine58nine
662 | dsfjxsixhmkfzbveight4xggfour
663 | 8mqldjrtttg2six688lfrg
664 | five7kpzkf
665 | qpjh31
666 | lqnnrzvbrfd15
667 | 73four
668 | three73seven7sixzfivexjkmnbf
669 | 96h2
670 | spljjjz9four
671 | 516
672 | dqkmkg478sixsevenmtwo
673 | fourvmnmqhtbxptmmd6
674 | eight96nttshld9vgrkdkcjjrt4
675 | bvggdvfivemrbnntgv4three8nrbcb
676 | 4862
677 | zpthreesixsixseveneight5czlkkbhd
678 | fourxb5
679 | vzdxoneknvvm7sixzd5fn
680 | 29onenine
681 | rlzzdppslfivethreendjghpvpq813six
682 | 6eightvkxmr
683 | 399
684 | 4nbhjgrq41xjpjp
685 | six2four42nine1mbtbrhcxq2
686 | pqgrtqsfjnzbfq18fiverxltgd9eight
687 | rgpkxtj6oneone3dmcbtxgtsrcfmxkd
688 | md8drvkonespbkfsevennxgkh
689 | two64one73nq
690 | one7twossdmp
691 | 8mlfxjssseven
692 | ghtninefive7fiveonefournlpsd
693 | six38
694 | kpfnnfour4five1679
695 | hjtzgrvfmvone1xt21
696 | 4lgdztmfdrxqjsgflgnbldmhgvbcqcvbkd9sixthreenvgtmpkjnd
697 | 8onekjghzcvmlonetwo4
698 | vzvgs5266jmrl5
699 | bleight7
700 | tkkhzconeszjvnkrbsveightlfqs18
701 | srkzcmgseveneight43zhfbl8six4
702 | qkmrmhxxb96rqrzfp2qcptqvjm99
703 | tftwo6cqd
704 | 6fourxssnsfhcn
705 | hgpfnbzxbxdjrbrjln5794lbgrs
706 | sevenfour1gmvcfkzzfhpnffsfour4bcone
707 | bfxbvcfj7
708 | zsx32htdfsjzssix7
709 | ssdnnd6kdmvqnffpvvpeight63five
710 | 4tznccdhjz7375x5xmgtnjb
711 | 282954threezhrhfcdcqbsgsv
712 | 87
713 | twoonesixvczfhjmpdh2hkdh9
714 | 7rkhk
715 | ktwonenine6tjczeight8kzkxmmhpbd5one
716 | 2gvfrrhneightsixnine4rxkvp
717 | 963reight
718 | eightklkqcn3threetbcxhkm
719 | qmlr5onegrcggpcsftmcphp
720 | 3ft49two
721 | 2xnsbrv9
722 | lrcslkgkninehghhfive452zvlszp
723 | fourtwoeight2one
724 | 6kjrcfivefqmtwoqrcpncpt2
725 | rcdfk1eight1fournhzpvslq
726 | sztlrrktt4four5onesbjvd
727 | qdp3
728 | vdmcnjkqjvn6fxnmzdrmsgbm
729 | lhmonegqddt7sixrxcqpfbdfvbgrhjhf
730 | sixone8
731 | 9bdgczsxq6four
732 | keightwo1cmlshtwofourksgbvfxvb
733 | lc3eightngglstsgqz6sevennine
734 | 7qmseven557drgtjcz
735 | nqvhqtbqseven6fivefive2
736 | six47gfjfkcgxone
737 | qmxvfzhzckx3
738 | nine4qdfreighteightfournine
739 | 86ninesix
740 | xzjsdplszj3mrtlrtqonesix9
741 | ksmfjng3nineggtfmnb
742 | fourtwo5ninejtxdpthfv
743 | foursixsevensixonemjhbjnffourq4
744 | twodvfffeight9sevenninetwojj5
745 | 1one4nine
746 | twofvcjszbmsltxh317vvq8six
747 | onejfmqnlqnlzlh4
748 | 9sevengggskjzkr
749 | 7796twohqccmzbfneightkhtwoneh
750 | zkrv48seventwo92five
751 | 6blv
752 | 2ztztlsqjvpm4
753 | 7lsvmnkhvjmknsndcrb5
754 | lnttk8fivesevenvxqzrzfour
755 | 5twopzczlqrrgm8one
756 | 6xvhrpzkbkvsix
757 | two21rvfnsdmqq
758 | 38jvthkzntnfr11three6one
759 | 7z
760 | one5fivesix
761 | gmmdgczbvbrqkfhtv73rktsshh
762 | crmqmlbxs1five
763 | klbqjnxlsix76
764 | 4rpvqnl3tbzrxmzt8sixthreefour
765 | 8pkmhdfourzzbfhxtpjggqvbtvrzfiver8
766 | 2one2tworbhjldv5
767 | zvrbvpxqj96eight
768 | onezvmczthblv4cgddmmhfivej
769 | 2zffhnpkbkhrmrksxjqfjztxrbts
770 | qjrrkhplk2nl
771 | ks73
772 | mxtvxfqdphlvvkkkxntcffour34qcgns6
773 | twoeightrpfpdksq8nine72gkxlvmqmlj
774 | jkqeightwojzmfjdgt15ninehgthxf
775 | one9grbzt
776 | 2pprfzbjp
777 | kxnchhthreexthzfjqz53
778 | f6four7mttnqsvzmbsqljdzqhcpnprscsggvvsevennine
779 | 5five1t
780 | 4seveneight3nine5
781 | 7sc
782 | sevenonegmfcqmdv3tzvsgmeighteight
783 | fqgmpklfjonevjppghglqcvzthree79six
784 | bthreefivedqxsxlbfjjgzgbzdf21five
785 | nineone3
786 | five7tpfvdjvtpbtbrtsevenfoureightrfflhhgx
787 | nine8one7dcgrczs1xrqxtfive4
788 | rd5threefour1vpkcls
789 | cshxmsz4two7onecgzkpfivelhcxgdpmx
790 | sevensqrpfcfv93nt
791 | onetqxjsrlzfhgt465two
792 | fqdfvgfhdeight3four5sixseventhreetwoneqfd
793 | krltgfglsevenzjdv4five6
794 | 5three54
795 | 84rsx
796 | n58
797 | 1qc1three4twosix71
798 | 363
799 | 7bg5eightsxnkcdsdfx
800 | 2fivetwo
801 | nineeight9seven
802 | 8nqqnine2
803 | ljlmfzbzcbone48
804 | nbpnjb6threesix69fourgjxxtzp7
805 | 7fourgrqj
806 | ftvzmv4ck698
807 | onenine6sixl
808 | qvtrkhpnv62gslfivekzbzpnrqrm
809 | 9sixkjxsbzfnhj5gbdqrtczlhzjhzl
810 | nine1seven
811 | 4sixqhnqvdseventhree1
812 | 8prqonespxk24jlxkh4
813 | 74mrhsmxnbnhbjrf
814 | one6mm66jccznbtjnfour1
815 | 521fsvn
816 | qqninethree756fgrckrnxk3
817 | seven2twosixfourr
818 | 9ninechrpncvqfone1
819 | 87rfpsgp9thrsix
820 | cjphxnxkhx6gqzngzzbd
821 | vsl2seven2
822 | 3bgjzmqbvvbhvmmvcnnttsqqqcjngtxmdnrf8
823 | gknfive14four3twoeight
824 | xtvbhct7three622sl4eight
825 | 9fivefourbxxqpczdn4two
826 | twonine3eightplqjnljhgthree
827 | fivehlrxpvtxm5
828 | 1fjmzkdgmlvtxlcztblfknrqnsp5ddftwo
829 | vvhxgmgtsixglcxsqlxnhhvldh7seven19
830 | dqhjtgsbjtphkfsthree3one3bhbvvjxgp
831 | sfxhzvttvjtvbsneight9eighttwo
832 | 26nine65one8
833 | kbcbcssevenmq13sevensevenbhfjldzfvbckztfv
834 | fsqmpnxrfn7tbxkfzfltctl7
835 | two7twotwo3
836 | 3cqgzdxhggqlveightr1sevenqgxtptmfvrfour
837 | qcmfn3
838 | four8five2sixnrdt
839 | onenine6kppc7seveneight27
840 | 3dv132
841 | npjkktn2
842 | eighteighthkkmtpcjzmnqxg5bxpfgrxvtqthree
843 | fourfour19dfqpnzr
844 | sixkl28twopgzgfvlvfnm
845 | eightsixsixfhfljfkpg9
846 | sevenfnxbmzr7ssfhvssnzsrfs
847 | six3onenine
848 | sixone25hdvmm
849 | mnz2threecnsbvjsh376six
850 | one4one
851 | xbvxnvrppxsvppnd2rstpjnvmhglsdmbk1
852 | tvlvk4shmlkqmmhfddbgbjfourcpx9qfhrrnine
853 | 4nrnxppcseven5
854 | one86gchcvlfc5ninenjhpckffzfour
855 | 4q2jlccvmgcnj17
856 | v5283seven2hpch2
857 | sixeightjsjbclsxmhpxqcx78zgcnfqcnhtmfdc
858 | six1jh
859 | sjgtcrzq7ssgzxccj94sixqqsqv
860 | twodone6five
861 | 3nine5seven
862 | 8zngrtcjeightfourzqzrbbhs7
863 | pqtthc2dszssv
864 | lcpgrkprhksvsg6
865 | 5seven14cckncpbqjr15
866 | five76tslmpggzcseven49
867 | 5six4sjmbqhxxnine6five9
868 | hslrsq3seven
869 | threerhf8three5
870 | 4sixnineqtlstseventwoone4
871 | mfdvqblctd7119xhjh6sevensix
872 | kshxspjn378bhvqngjjgbsxbglf
873 | sxpjbgrfivesixeight5jpvk
874 | 63fourm
875 | nine372eightjhbjvmsix51
876 | 487sdkxfsevennine
877 | 3twofgnjpmsrtl
878 | 1pqxthreemvlbqlbmshzfiveone
879 | 2fxvnb62five
880 | six96threethree1bfpbmgzt
881 | fourthreerdjkhfmmzbqrkvlkt8eight9
882 | 5tzclzmfx5
883 | seven5fourcxngd
884 | dtbxxbhqfs4honeninesevenzdtvzcnmz
885 | six94
886 | tb8sfm7fngplpbprfour
887 | 52vlpsldp8ltspbsninefourcsrcp
888 | two56
889 | 1rhxpdkgnhmlcpzrnkcpplpftbs
890 | fivejjlfp11three7tdk2six
891 | bkkltsfzhp4
892 | xszczgrt33
893 | 6sevencjvbzrszx9twotwofive
894 | eight5636eightxpd3
895 | twoninefiveeightbmfhtgrksix5four
896 | 795bczlkm1vchhbgntpthreefmvfplk
897 | zsl5rlffhdpz22
898 | 9twotscnjtttone3five6four
899 | foursixthreeeight6rcrtzpr5
900 | kc8eight
901 | 7fourqnmqeightlxnxlzvznsvsonefour
902 | xnpcbth7eightfjxz4twofiveone
903 | two3twotjmtbzc
904 | knj995hhs18
905 | flnine8qklfchbfivethreesp
906 | 1sevennine1onethreeseventhree
907 | foureightdbtsntzzmsdone17eight
908 | 38sevenfkbm7nmmtrcxd5
909 | 1bmknc6eightfour8five
910 | 3eight2
911 | nine5six11tqsh
912 | 6onehgfr5pbljsp
913 | hrgbjqzmd667
914 | 2fhlqvk8fggmseventwoqthreeknt
915 | 1zpfmlgxbg49five9twondktfn
916 | mbghltchlbghrplzdp1hhzfzvjonegszlbrqdfn
917 | threechdshmnbfpfhvhlfourqfsix23
918 | thcbzmmmbmcnineccvsrpqdgcbjldqdvhqqmzvz66
919 | zmlxnine4zmbqkjxnclninefourjrddc
920 | onegdnccqfn57dhsxqzpqhjnxzk
921 | ncgvtt148nsgmd
922 | 2eightxjzvrgd2stsbfmdfp
923 | 2oneone84sevenonedl
924 | eightseven51dmcrftxmgvjc3
925 | mxstpzpstwo4njlffxpkfseven129sxn
926 | foursixjdq2svlsscl9
927 | 4gvbkcrkpbqkfdxbtvfive
928 | 1fivefpgfptknhfivesevenhthrdkmqr
929 | 1vztq1fpqltwofoureightseven9
930 | 7threerkbjsmstwoxrnmcpgrzg
931 | 75lfjpfzhl
932 | 8jcdtqhc
933 | twofngdlrpk7
934 | bsskd18
935 | oneninerq5one3hvsssmkfive
936 | six1vbxsnktv
937 | five63
938 | jjkzhm6mnjqkzfpqeight6
939 | 6tvpfmvfivegvfbxc
940 | oneqgfptrlqsr3qschjjxfour3
941 | 2155slkvtwobqsd2six
942 | rrxtlsnthreesixfour38fourtdn
943 | 9onebptxrbfxtrldzxf
944 | 51one472five9
945 | tt9914
946 | 3ncvnxdzzsllcxvrnsf4one4
947 | 1fourdnsjscnhzgsspdrone8five2
948 | two3crndvmtgseightone
949 | 38tworrtprmtwo21zctwo
950 | 9sevenfivebcbdckflh58rbrftfv
951 | jfknvsmpdtwoeightthzvqr3dqvmmxqps
952 | eight9rdgmsdkz
953 | 752ninekjvqrm
954 | fourthreekbkphksmhv2lrdjqrjtvk
955 | 9sixthreenine5csnndtgjtrbkdkqrccftxmzmj
956 | 3onefourfoursevenxdzcrhveight
957 | hdnbvczvbmdqtk8four3879
958 | sixsptcfmqsnzloneonefive5
959 | tccqbtfjqglmvmnine53bgzzcqkfp
960 | nfour3lmbvsls
961 | foureightsix59nine7
962 | 3jpzvpzxqgrqdone
963 | 1one939
964 | 28vsdl
965 | 1fourxneightoneknsixmr
966 | fivelmnpsfxmv47
967 | lqgqvcczjmbrbgqpq47tjhgxptxfzdpkbc
968 | sfmd895hsf2
969 | 976cjqtgqone69
970 | 3hdmdfrbm26sggqpfive1
971 | 259pzchvvrbcvhklhbr9five
972 | ftnfivebzdkq8
973 | 6four3
974 | threetxgc2htprtqqj5fouroneightlf
975 | one492six7rzpxpfourone
976 | twoeightnine8
977 | sixeightxpcpfqmnlgseven7one
978 | zzpkbmh6six46four739
979 | ninefivejqnfqvmctwo1
980 | three9sixqtdgqmfour24
981 | fddrhjk2
982 | bqrdqqtkv6sqqdthree
983 | g4four8rhggvkmjxbhszh
984 | hfmqlrvknklhvnxrqztffive6bndcljvgzlnc8
985 | 4ljbgjvllx6vvfc4
986 | one3rrbseven3sevenpnnrnrz6
987 | sbb2sixnine8
988 | znlgdncm99twofmhmftsnlk
989 | dppfive4fsnxctq
990 | sevenrpxdcn1eightmvx
991 | 8ninefivegzk7ftqbceightwogfv
992 | hxlxggmkrqzbtfmdqxfdnineeight71
993 | ghtbmmrdfh4twoeight
994 | fourfive14lgonegdxjrpx5four
995 | 61gdrpn7two1four
996 | eightqhxvgqpvgxnmmonefourdpkqsmzm5k
997 | fktwone4ninennnjdccftwothreetwo
998 | seveneightmgqfcfczxsthrxhq3zcthsrxshddnlxronekdhqmmbhzd
999 | nsbtggzgjx3eighttpkhkvknpsqxsevenvh8
1000 | 1sevenseven7ld
--------------------------------------------------------------------------------