commit 50b4179b397183815a89be8ca06cac750f3f02bb
parent 284827dec47bbd4debe8a9c0a1d0c8ccb949189e
Author: Sebastiano Tronto <sebastiano@tronto.net>
Date: Fri, 27 Jun 2025 09:53:33 +0200
Day 10
Diffstat:
5 files changed, 351 insertions(+), 0 deletions(-)
diff --git a/2022/10/a.rs b/2022/10/a.rs
@@ -0,0 +1,23 @@
+mod common;
+use common::*;
+
+fn main() {
+ let mut x: i64 = 1;
+ let mut cycles: usize = 0;
+ let mut step: usize = 20;
+ let mut score: i64 = 0;
+ let mut line = String::new();
+ while std::io::stdin().read_line(&mut line).unwrap() > 0 {
+ let oldx = x;
+ match read_instruction(&line) {
+ Instruction::Add(n) => { x += n; cycles += 2; },
+ Instruction::Noop => { cycles += 1; }
+ }
+ if cycles >= step {
+ score += oldx * (step as i64);
+ step += 40;
+ }
+ line.clear();
+ }
+ println!("{score}");
+}
diff --git a/2022/10/b.rs b/2022/10/b.rs
@@ -0,0 +1,29 @@
+mod common;
+use common::*;
+
+fn draw(cycles: usize, x: i64) {
+ let c = cycles % 40;
+ if cycles > 0 && c == 0 { println!(); }
+ print!("{}", if (x - (c as i64)).abs() <= 1 { '#' } else { '.' });
+}
+
+fn main() {
+ let mut x: i64 = 1;
+ let mut cycles: usize = 0;
+ let mut line = String::new();
+ while std::io::stdin().read_line(&mut line).unwrap() > 0 {
+ match read_instruction(&line) {
+ Instruction::Add(n) => {
+ draw(cycles, x);
+ draw(cycles+1, x);
+ cycles += 2;
+ x += n;
+ },
+ Instruction::Noop => {
+ draw(cycles, x);
+ cycles += 1;
+ }
+ }
+ line.clear();
+ }
+}
diff --git a/2022/10/common.rs b/2022/10/common.rs
@@ -0,0 +1,13 @@
+pub enum Instruction {
+ Add(i64),
+ Noop
+}
+
+pub fn read_instruction(line: &str) -> Instruction {
+ if &line[..4] == "addx" {
+ let n = line[5..line.len()-1].parse::<i64>().unwrap();
+ Instruction::Add(n)
+ } else {
+ Instruction::Noop
+ }
+}
diff --git a/2022/10/input b/2022/10/input
@@ -0,0 +1,140 @@
+addx 1
+noop
+addx 4
+noop
+noop
+noop
+addx 6
+addx -1
+addx 5
+noop
+noop
+noop
+addx 5
+addx -14
+noop
+addx 19
+noop
+addx 1
+addx 4
+addx 1
+noop
+noop
+addx 2
+addx 5
+addx -27
+addx 20
+addx -30
+addx 2
+addx 5
+addx 2
+addx 4
+addx -3
+addx 2
+addx 5
+addx 2
+addx -9
+addx 1
+addx 11
+noop
+addx -20
+addx 7
+addx 23
+addx 2
+addx 3
+addx -2
+addx -34
+addx -2
+noop
+addx 3
+noop
+addx 3
+addx 2
+noop
+addx 3
+addx 2
+addx 5
+addx 2
+addx -9
+addx -7
+addx 21
+noop
+addx 8
+noop
+addx -1
+addx 3
+addx -2
+addx 5
+addx -37
+noop
+addx 35
+addx -31
+addx 1
+addx 4
+addx -1
+addx 2
+noop
+addx 3
+addx 1
+addx 5
+addx -2
+addx 7
+addx -2
+addx -2
+addx 10
+noop
+addx 4
+noop
+noop
+addx -19
+addx 20
+addx -38
+noop
+noop
+addx 7
+addx 2
+addx 3
+noop
+addx 4
+addx -3
+addx 2
+addx 2
+noop
+addx 3
+noop
+noop
+noop
+addx 5
+noop
+addx 7
+addx -2
+addx 7
+noop
+noop
+addx -5
+addx 6
+addx -36
+noop
+addx 1
+addx 2
+addx 5
+addx 2
+addx 3
+addx -2
+addx 2
+addx 5
+addx 2
+addx 1
+noop
+addx 4
+addx -16
+addx 21
+noop
+noop
+addx 1
+addx -8
+addx 12
+noop
+noop
+noop
+noop
diff --git a/2022/10/test b/2022/10/test
@@ -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