1
0
This commit is contained in:
Jack Bond-Preston 2022-12-26 22:02:09 +00:00
parent 02445824a6
commit 00a67d7d3d
5 changed files with 353 additions and 0 deletions

View File

@ -10,4 +10,5 @@ members = [
"day7", "day7",
"day8", "day8",
"day9", "day9",
"day10",
] ]

8
day10/Cargo.toml Normal file
View File

@ -0,0 +1,8 @@
[package]
name = "day10"
version = "0.1.0"
edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]

143
day10/input.txt Normal file
View File

@ -0,0 +1,143 @@
noop
noop
addx 5
noop
noop
addx 6
addx 4
addx -4
addx 4
addx -6
addx 11
addx -1
addx 2
addx 4
addx 3
noop
addx 2
addx -30
addx 2
addx 33
noop
addx -37
noop
noop
noop
addx 3
addx 2
addx 5
addx 20
addx 7
addx -24
addx 2
noop
addx 7
addx -2
addx -6
addx 13
addx 3
addx -2
addx 2
noop
addx -5
addx 10
addx 5
addx -39
addx 1
addx 5
noop
addx 3
noop
addx -5
addx 10
addx -2
addx 2
noop
noop
addx 7
noop
noop
noop
noop
addx 3
noop
addx 3
addx 2
addx 8
addx -1
addx -20
addx 21
addx -38
addx 5
addx 2
noop
noop
noop
addx 8
noop
noop
addx -2
addx 2
addx -7
addx 14
addx 5
noop
noop
noop
addx -16
addx 17
addx 2
addx -12
addx 19
noop
noop
addx -37
noop
noop
noop
addx 3
addx 2
addx 2
addx 5
addx 20
addx -19
addx 2
noop
noop
noop
addx 5
addx 19
addx -12
addx 3
addx -2
addx 2
addx -18
addx 25
addx -14
addx -22
addx 1
noop
noop
noop
addx 3
addx 5
addx -4
addx 7
addx 4
noop
addx 1
noop
noop
addx 2
addx -6
addx 15
addx -1
addx 4
noop
noop
addx 1
addx 4
addx -33
noop
addx 21
noop

146
day10/sample_input.txt Normal file
View File

@ -0,0 +1,146 @@
addx 15
addx -11
addx 6
addx -3
addx 5
addx -1
addx -8
addx 13
addx 4
noop
addx -1
addx 5
addx -1
addx 5
addx -1
addx 5
addx -1
addx 5
addx -1
addx -35
addx 1
addx 24
addx -19
addx 1
addx 16
addx -11
noop
noop
addx 21
addx -15
noop
noop
addx -3
addx 9
addx 1
addx -3
addx 8
addx 1
addx 5
noop
noop
noop
noop
noop
addx -36
noop
addx 1
addx 7
noop
noop
noop
addx 2
addx 6
noop
noop
noop
noop
noop
addx 1
noop
noop
addx 7
addx 1
noop
addx -13
addx 13
addx 7
noop
addx 1
addx -33
noop
noop
noop
addx 2
noop
noop
noop
addx 8
noop
addx -1
addx 2
addx 1
noop
addx 17
addx -9
addx 1
addx 1
addx -3
addx 11
noop
noop
addx 1
noop
addx 1
noop
noop
addx -13
addx -19
addx 1
addx 3
addx 26
addx -30
addx 12
addx -1
addx 3
addx 1
noop
noop
noop
addx -9
addx 18
addx 1
addx 2
noop
noop
addx 9
noop
noop
noop
addx -1
addx 2
addx -37
addx 1
addx 3
noop
addx 15
addx -21
addx 22
addx -6
addx 1
noop
addx 2
addx 1
noop
addx -10
noop
noop
addx 20
addx 1
addx 2
addx 2
addx -6
addx -11
noop
noop
noop

55
day10/src/main.rs Normal file
View File

@ -0,0 +1,55 @@
fn do_cycle(cycle: u64, x_reg: i64) {
let col = (cycle - 1) % 40;
// println!("{} <= ")
if x_reg - 1 <= col.try_into().unwrap() && x_reg + 1 >= col.try_into().unwrap() {
print!("#");
} else {
print!(".");
}
if col == 39 {
println!();
}
}
fn main() {
const INPUT: &str = include_str!("../input.txt");
const ADD_CYCLES: u64 = 2;
let mut strengths: Vec<i64> = Vec::new();
let mut cycles = 1u64;
let mut x_reg = 1i64;
do_cycle(cycles, x_reg);
for line in INPUT.lines() {
if line.starts_with("noop") {
cycles += 1;
} else {
let (_, operand) = line.split_once(' ').unwrap();
let operand = operand.parse::<i64>().unwrap();
for _ in 0..(ADD_CYCLES - 1) {
cycles += 1;
if (cycles + 20) % 40 == 0 {
strengths.push((cycles as i64) * x_reg);
}
do_cycle(cycles, x_reg);
}
cycles += 1;
x_reg += operand;
}
if (cycles + 20) % 40 == 0 {
strengths.push((cycles as i64) * x_reg);
}
do_cycle(cycles, x_reg);
}
let sum: i64 = strengths.iter().sum();
println!("{}", sum);
}