day 10
This commit is contained in:
parent
02445824a6
commit
00a67d7d3d
@ -10,4 +10,5 @@ members = [
|
|||||||
"day7",
|
"day7",
|
||||||
"day8",
|
"day8",
|
||||||
"day9",
|
"day9",
|
||||||
|
"day10",
|
||||||
]
|
]
|
8
day10/Cargo.toml
Normal file
8
day10/Cargo.toml
Normal 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
143
day10/input.txt
Normal 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
146
day10/sample_input.txt
Normal 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
55
day10/src/main.rs
Normal 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);
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user