- commit
- 7840fa7d86228f6f6644181d5f7c3048d4f00811
- parent
- eed68ad94a779b4650b340bd679bb6f4928a7feb
- Author
- Tobias Bengfort <tobias.bengfort@posteo.de>
- Date
- 2022-12-10 14:56
2022-12-10
Diffstat
A | 2022/10/input.txt | 140 | ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
A | 2022/10/solution.rs | 44 | ++++++++++++++++++++++++++++++++++++++++++++ |
A | 2022/10/test.txt | 146 | ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
3 files changed, 330 insertions, 0 deletions
diff --git a/2022/10/input.txt b/2022/10/input.txt
@@ -0,0 +1,140 @@ -1 1 addx 1 -1 2 noop -1 3 addx 5 -1 4 addx -1 -1 5 addx 5 -1 6 addx 1 -1 7 noop -1 8 noop -1 9 addx 2 -1 10 addx 5 -1 11 addx 2 -1 12 addx 1 -1 13 noop -1 14 addx -21 -1 15 addx 26 -1 16 addx -6 -1 17 addx 8 -1 18 noop -1 19 noop -1 20 addx 7 -1 21 noop -1 22 noop -1 23 noop -1 24 addx -37 -1 25 addx 13 -1 26 addx -6 -1 27 addx -2 -1 28 addx 5 -1 29 addx 25 -1 30 addx 2 -1 31 addx -24 -1 32 addx 2 -1 33 addx 5 -1 34 addx 5 -1 35 noop -1 36 noop -1 37 addx -2 -1 38 addx 2 -1 39 addx 5 -1 40 addx 2 -1 41 addx 7 -1 42 addx -2 -1 43 noop -1 44 addx -8 -1 45 addx 9 -1 46 addx -36 -1 47 noop -1 48 noop -1 49 addx 5 -1 50 addx 6 -1 51 noop -1 52 addx 25 -1 53 addx -24 -1 54 addx 3 -1 55 addx -2 -1 56 noop -1 57 addx 3 -1 58 addx 6 -1 59 noop -1 60 addx 9 -1 61 addx -8 -1 62 addx 5 -1 63 addx 2 -1 64 addx -7 -1 65 noop -1 66 addx 12 -1 67 addx -10 -1 68 addx 11 -1 69 addx -38 -1 70 addx 22 -1 71 addx -15 -1 72 addx -3 -1 73 noop -1 74 addx 32 -1 75 addx -25 -1 76 addx -7 -1 77 addx 11 -1 78 addx 5 -1 79 addx 10 -1 80 addx -9 -1 81 addx 17 -1 82 addx -12 -1 83 addx 2 -1 84 noop -1 85 addx 2 -1 86 addx -15 -1 87 addx 22 -1 88 noop -1 89 noop -1 90 noop -1 91 addx -35 -1 92 addx 7 -1 93 addx 21 -1 94 addx -25 -1 95 noop -1 96 addx 3 -1 97 addx 2 -1 98 noop -1 99 addx 7 -1 100 noop -1 101 addx 3 -1 102 noop -1 103 addx 2 -1 104 addx 9 -1 105 addx -4 -1 106 addx -2 -1 107 addx 5 -1 108 addx 2 -1 109 addx -2 -1 110 noop -1 111 addx 7 -1 112 addx 2 -1 113 addx -39 -1 114 addx 2 -1 115 noop -1 116 addx 1 -1 117 noop -1 118 addx 5 -1 119 addx 24 -1 120 addx -20 -1 121 addx 1 -1 122 addx 5 -1 123 noop -1 124 noop -1 125 addx 4 -1 126 noop -1 127 addx 1 -1 128 noop -1 129 addx 4 -1 130 addx 3 -1 131 noop -1 132 addx 2 -1 133 noop -1 134 noop -1 135 addx 1 -1 136 addx 2 -1 137 noop -1 138 addx 3 -1 139 noop -1 140 noop
diff --git a/2022/10/solution.rs b/2022/10/solution.rs
@@ -0,0 +1,44 @@ -1 1 #[path = "../lib.rs"] mod lib; -1 2 -1 3 use std::convert::TryFrom; -1 4 -1 5 fn main() { -1 6 let mut cycle: i64 = 1; -1 7 let mut x: i64 = 1; -1 8 let mut part1_sum: i64 = 0; -1 9 let mut screen = [[false; 40]; 6]; -1 10 -1 11 for line in lib::iter_input() { -1 12 let (duration, value) = match line.split(" ").collect::<Vec<&str>>()[..] { -1 13 ["noop"] => (1, 0), -1 14 ["addx", v] => (2, v.parse::<i64>().unwrap()), -1 15 _ => unreachable!(), -1 16 }; -1 17 for _ in 0..duration { -1 18 if cycle % 40 == 20 { -1 19 part1_sum += cycle * x; -1 20 } -1 21 -1 22 let screen_x = (cycle - 1) % 40; -1 23 if (x - screen_x).abs() <= 1 { -1 24 let screen_y = ((cycle - 1) / 40) % 6; -1 25 let ux = usize::try_from(screen_x).unwrap(); -1 26 let uy = usize::try_from(screen_y).unwrap(); -1 27 screen[uy][ux] = true; -1 28 } -1 29 -1 30 cycle += 1; -1 31 } -1 32 x += value; -1 33 } -1 34 -1 35 println!("part1: {}", part1_sum); -1 36 println!("part2:"); -1 37 -1 38 for row in screen.iter() { -1 39 for cell in row.iter() { -1 40 print!("{}", if *cell { "#" } else { " " }); -1 41 } -1 42 print!("\n"); -1 43 } -1 44 }
diff --git a/2022/10/test.txt b/2022/10/test.txt
@@ -0,0 +1,146 @@ -1 1 addx 15 -1 2 addx -11 -1 3 addx 6 -1 4 addx -3 -1 5 addx 5 -1 6 addx -1 -1 7 addx -8 -1 8 addx 13 -1 9 addx 4 -1 10 noop -1 11 addx -1 -1 12 addx 5 -1 13 addx -1 -1 14 addx 5 -1 15 addx -1 -1 16 addx 5 -1 17 addx -1 -1 18 addx 5 -1 19 addx -1 -1 20 addx -35 -1 21 addx 1 -1 22 addx 24 -1 23 addx -19 -1 24 addx 1 -1 25 addx 16 -1 26 addx -11 -1 27 noop -1 28 noop -1 29 addx 21 -1 30 addx -15 -1 31 noop -1 32 noop -1 33 addx -3 -1 34 addx 9 -1 35 addx 1 -1 36 addx -3 -1 37 addx 8 -1 38 addx 1 -1 39 addx 5 -1 40 noop -1 41 noop -1 42 noop -1 43 noop -1 44 noop -1 45 addx -36 -1 46 noop -1 47 addx 1 -1 48 addx 7 -1 49 noop -1 50 noop -1 51 noop -1 52 addx 2 -1 53 addx 6 -1 54 noop -1 55 noop -1 56 noop -1 57 noop -1 58 noop -1 59 addx 1 -1 60 noop -1 61 noop -1 62 addx 7 -1 63 addx 1 -1 64 noop -1 65 addx -13 -1 66 addx 13 -1 67 addx 7 -1 68 noop -1 69 addx 1 -1 70 addx -33 -1 71 noop -1 72 noop -1 73 noop -1 74 addx 2 -1 75 noop -1 76 noop -1 77 noop -1 78 addx 8 -1 79 noop -1 80 addx -1 -1 81 addx 2 -1 82 addx 1 -1 83 noop -1 84 addx 17 -1 85 addx -9 -1 86 addx 1 -1 87 addx 1 -1 88 addx -3 -1 89 addx 11 -1 90 noop -1 91 noop -1 92 addx 1 -1 93 noop -1 94 addx 1 -1 95 noop -1 96 noop -1 97 addx -13 -1 98 addx -19 -1 99 addx 1 -1 100 addx 3 -1 101 addx 26 -1 102 addx -30 -1 103 addx 12 -1 104 addx -1 -1 105 addx 3 -1 106 addx 1 -1 107 noop -1 108 noop -1 109 noop -1 110 addx -9 -1 111 addx 18 -1 112 addx 1 -1 113 addx 2 -1 114 noop -1 115 noop -1 116 addx 9 -1 117 noop -1 118 noop -1 119 noop -1 120 addx -1 -1 121 addx 2 -1 122 addx -37 -1 123 addx 1 -1 124 addx 3 -1 125 noop -1 126 addx 15 -1 127 addx -21 -1 128 addx 22 -1 129 addx -6 -1 130 addx 1 -1 131 noop -1 132 addx 2 -1 133 addx 1 -1 134 noop -1 135 addx -10 -1 136 noop -1 137 noop -1 138 addx 20 -1 139 addx 1 -1 140 addx 2 -1 141 addx 2 -1 142 addx -6 -1 143 addx -11 -1 144 noop -1 145 noop -1 146 noop