Added Solution for 2020 day 08
This commit is contained in:
parent
952b646d08
commit
b0f42876e7
6 changed files with 895 additions and 0 deletions
8
2020/day08_handheld_halting/Cargo.toml
Normal file
8
2020/day08_handheld_halting/Cargo.toml
Normal file
|
@ -0,0 +1,8 @@
|
|||
[package]
|
||||
name = "day08_handheld_halting"
|
||||
version = "0.1.0"
|
||||
edition = "2021"
|
||||
|
||||
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||
|
||||
[dependencies]
|
104
2020/day08_handheld_halting/challenge.txt
Normal file
104
2020/day08_handheld_halting/challenge.txt
Normal file
|
@ -0,0 +1,104 @@
|
|||
Your flight to the major airline hub reaches cruising altitude without incident. While you consider checking the in-flight menu for one of those drinks that come with a little umbrella, you are interrupted by the kid sitting next to you.
|
||||
|
||||
Their [handheld game console](https://en.wikipedia.org/wiki/Handheld_game_console) won't turn on! They ask if you can take a look.
|
||||
|
||||
You narrow the problem down to a strange *infinite loop* in the boot code (your puzzle input) of the device. You should be able to fix it, but first you need to be able to run the code in isolation.
|
||||
|
||||
The boot code is represented as a text file with one *instruction* per line of text. Each instruction consists of an *operation* (`acc`, `jmp`, or `nop`) and an *argument* (a signed number like `+4` or `-20`).
|
||||
|
||||
* `acc` increases or decreases a single global value called the *accumulator* by the value given in the argument. For example, `acc +7` would increase the accumulator by 7. The accumulator starts at `0`. After an `acc` instruction, the instruction immediately below it is executed next.
|
||||
* `jmp` *jumps* to a new instruction relative to itself. The next instruction to execute is found using the argument as an *offset* from the `jmp` instruction; for example, `jmp +2` would skip the next instruction, `jmp +1` would continue to the instruction immediately below it, and `jmp -20` would cause the instruction 20 lines above to be executed next.
|
||||
* `nop` stands for *No OPeration* - it does nothing. The instruction immediately below it is executed next.
|
||||
|
||||
For example, consider the following program:
|
||||
|
||||
```
|
||||
nop +0
|
||||
acc +1
|
||||
jmp +4
|
||||
acc +3
|
||||
jmp -3
|
||||
acc -99
|
||||
acc +1
|
||||
jmp -4
|
||||
acc +6
|
||||
|
||||
```
|
||||
|
||||
These instructions are visited in this order:
|
||||
|
||||
```
|
||||
nop +0 | 1
|
||||
acc +1 | 2, 8(!)
|
||||
jmp +4 | 3
|
||||
acc +3 | 6
|
||||
jmp -3 | 7
|
||||
acc -99 |
|
||||
acc +1 | 4
|
||||
jmp -4 | 5
|
||||
acc +6 |
|
||||
|
||||
```
|
||||
|
||||
First, the `nop +0` does nothing. Then, the accumulator is increased from 0 to 1 (`acc +1`) and `jmp +4` sets the next instruction to the other `acc +1` near the bottom. After it increases the accumulator from 1 to 2, `jmp -4` executes, setting the next instruction to the only `acc +3`. It sets the accumulator to 5, and `jmp -3` causes the program to continue back at the first `acc +1`.
|
||||
|
||||
This is an *infinite loop*: with this sequence of jumps, the program will run forever. The moment the program tries to run any instruction a second time, you know it will never terminate.
|
||||
|
||||
Immediately *before* the program would run an instruction a second time, the value in the accumulator is *`5`*.
|
||||
|
||||
Run your copy of the boot code. Immediately before any instruction is executed a second time, *what value is in the accumulator?*
|
||||
|
||||
Your puzzle answer was `2080`.
|
||||
|
||||
\--- Part Two ---
|
||||
----------
|
||||
|
||||
After some careful analysis, you believe that *exactly one instruction is corrupted*.
|
||||
|
||||
Somewhere in the program, *either* a `jmp` is supposed to be a `nop`, *or* a `nop` is supposed to be a `jmp`. (No `acc` instructions were harmed in the corruption of this boot code.)
|
||||
|
||||
The program is supposed to terminate by *attempting to execute an instruction immediately after the last instruction in the file*. By changing exactly one `jmp` or `nop`, you can repair the boot code and make it terminate correctly.
|
||||
|
||||
For example, consider the same program from above:
|
||||
|
||||
```
|
||||
nop +0
|
||||
acc +1
|
||||
jmp +4
|
||||
acc +3
|
||||
jmp -3
|
||||
acc -99
|
||||
acc +1
|
||||
jmp -4
|
||||
acc +6
|
||||
|
||||
```
|
||||
|
||||
If you change the first instruction from `nop +0` to `jmp +0`, it would create a single-instruction infinite loop, never leaving that instruction. If you change almost any of the `jmp` instructions, the program will still eventually find another `jmp` instruction and loop forever.
|
||||
|
||||
However, if you change the second-to-last instruction (from `jmp -4` to `nop -4`), the program terminates! The instructions are visited in this order:
|
||||
|
||||
```
|
||||
nop +0 | 1
|
||||
acc +1 | 2
|
||||
jmp +4 | 3
|
||||
acc +3 |
|
||||
jmp -3 |
|
||||
acc -99 |
|
||||
acc +1 | 4
|
||||
nop -4 | 5
|
||||
acc +6 | 6
|
||||
|
||||
```
|
||||
|
||||
After the last instruction (`acc +6`), the program terminates by attempting to run the instruction below the last instruction in the file. With this change, after the program terminates, the accumulator contains the value *`8`* (`acc +1`, `acc +1`, `acc +6`).
|
||||
|
||||
Fix the program so that it terminates normally by changing exactly one `jmp` (to `nop`) or `nop` (to `jmp`). *What is the value of the accumulator after the program terminates?*
|
||||
|
||||
Your puzzle answer was `2477`.
|
||||
|
||||
Both parts of this puzzle are complete! They provide two gold stars: \*\*
|
||||
|
||||
At this point, you should [return to your Advent calendar](/2020) and try another puzzle.
|
||||
|
||||
If you still want to see it, you can [get your puzzle input](8/input).
|
BIN
2020/day08_handheld_halting/day08_handheld_halt.core
Normal file
BIN
2020/day08_handheld_halting/day08_handheld_halt.core
Normal file
Binary file not shown.
133
2020/day08_handheld_halting/src/lib.rs
Normal file
133
2020/day08_handheld_halting/src/lib.rs
Normal file
|
@ -0,0 +1,133 @@
|
|||
use core::fmt::Display;
|
||||
use std::{num::ParseIntError, collections::HashSet};
|
||||
|
||||
#[derive(Debug, PartialEq, Eq)]
|
||||
pub enum ParseError {
|
||||
ParseIntError(std::num::ParseIntError),
|
||||
LineMalformed(String),
|
||||
}
|
||||
|
||||
impl From<ParseIntError> for ParseError {
|
||||
fn from(value: ParseIntError) -> Self {
|
||||
Self::ParseIntError(value)
|
||||
}
|
||||
}
|
||||
|
||||
impl Display for ParseError {
|
||||
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
|
||||
match self {
|
||||
Self::ParseIntError(e) => write!(f, "Unable to parse into integer: {e}"),
|
||||
Self::LineMalformed(v) => write!(f, "Line is malformed: {v}"),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Clone)]
|
||||
enum Instruction {
|
||||
Acc(isize),
|
||||
Jmp(isize),
|
||||
Nop(isize),
|
||||
}
|
||||
|
||||
impl TryFrom<&str> for Instruction {
|
||||
type Error = ParseError;
|
||||
|
||||
fn try_from(value: &str) -> Result<Self, Self::Error> {
|
||||
let parts: Vec<_> = value.split_whitespace().collect();
|
||||
if parts.len() == 2 {
|
||||
let argument = if parts[1].starts_with('+') {
|
||||
parts[1][1..].parse::<isize>()?
|
||||
} else {
|
||||
parts[1].parse::<isize>()?
|
||||
};
|
||||
match parts[0] {
|
||||
"acc" => Ok(Self::Acc(argument)),
|
||||
"jmp" => Ok(Self::Jmp(argument)),
|
||||
"nop" => Ok(Self::Nop(argument)),
|
||||
_ => Err(Self::Error::LineMalformed(value.to_string())),
|
||||
}
|
||||
} else {
|
||||
Err(Self::Error::LineMalformed(value.to_string()))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Default, Clone)]
|
||||
struct Cpu {
|
||||
program: Vec<Instruction>,
|
||||
next_instr: usize,
|
||||
accumulator: isize,
|
||||
visited: HashSet<usize>,
|
||||
}
|
||||
|
||||
impl TryFrom<&str> for Cpu {
|
||||
type Error = ParseError;
|
||||
|
||||
fn try_from(value: &str) -> Result<Self, Self::Error> {
|
||||
let program: Vec<_> = value.lines().map(Instruction::try_from).collect::<Result<Vec<_>, _>>()?;
|
||||
Ok(Self { program, ..Default::default() })
|
||||
}
|
||||
}
|
||||
|
||||
impl Cpu {
|
||||
fn run_until_loop(&mut self) -> Result<isize, isize> {
|
||||
match self.program[self.next_instr] {
|
||||
Instruction::Acc(i) => {
|
||||
self.accumulator += i;
|
||||
self.next_instr += 1;
|
||||
},
|
||||
Instruction::Jmp(p) if p >= 0 => self.next_instr += p.unsigned_abs(),
|
||||
Instruction::Jmp(n) => self.next_instr -= n.unsigned_abs(),
|
||||
Instruction::Nop(_) => self.next_instr += 1,
|
||||
}
|
||||
if self.visited.contains(&self.next_instr) {
|
||||
Err(self.accumulator)
|
||||
} else if self.next_instr == self.program.len() {
|
||||
Ok(self.accumulator)
|
||||
} else {
|
||||
self.visited.insert(self.next_instr);
|
||||
self.run_until_loop()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
pub fn run(input: &str) -> Result<(isize, isize), ParseError> {
|
||||
let cpu = Cpu::try_from(input)?;
|
||||
let mut cpu_1 = cpu.clone();
|
||||
let first = cpu_1.run_until_loop().err().unwrap();
|
||||
for i in 0..cpu.program.len() {
|
||||
let new = match cpu.program[i] {
|
||||
Instruction::Acc(_) => continue,
|
||||
Instruction::Jmp(i) => Instruction::Nop(i),
|
||||
Instruction::Nop(i) => Instruction::Jmp(i),
|
||||
};
|
||||
let mut cpu_2 = cpu.clone();
|
||||
cpu_2.program[i] = new;
|
||||
if let Ok(second) = cpu_2.run_until_loop() {
|
||||
return Ok((first, second));
|
||||
}
|
||||
}
|
||||
panic!("No way found to break the infinite loop");
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use super::*;
|
||||
use std::fs::read_to_string;
|
||||
|
||||
fn read_file(name: &str) -> String {
|
||||
read_to_string(name).expect(&format!("Unable to read file: {name}")[..]).trim().to_string()
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_sample() {
|
||||
let sample_input = read_file("tests/sample_input");
|
||||
assert_eq!(run(&sample_input), Ok((5, 8)));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_challenge() {
|
||||
let challenge_input = read_file("tests/challenge_input");
|
||||
assert_eq!(run(&challenge_input), Ok((2080, 2477)));
|
||||
}
|
||||
}
|
641
2020/day08_handheld_halting/tests/challenge_input
Normal file
641
2020/day08_handheld_halting/tests/challenge_input
Normal file
|
@ -0,0 +1,641 @@
|
|||
acc -8
|
||||
acc +19
|
||||
nop +178
|
||||
jmp +493
|
||||
acc +7
|
||||
jmp +267
|
||||
jmp +604
|
||||
acc +30
|
||||
acc +11
|
||||
acc -17
|
||||
nop +402
|
||||
jmp +81
|
||||
acc +20
|
||||
acc +19
|
||||
acc +36
|
||||
jmp +6
|
||||
acc +43
|
||||
acc +6
|
||||
acc +10
|
||||
nop +326
|
||||
jmp +228
|
||||
nop +371
|
||||
acc +49
|
||||
nop +140
|
||||
acc -11
|
||||
jmp +3
|
||||
nop +366
|
||||
jmp +74
|
||||
nop +229
|
||||
jmp +554
|
||||
acc +12
|
||||
acc +6
|
||||
jmp +163
|
||||
acc +43
|
||||
acc +23
|
||||
jmp +310
|
||||
acc -6
|
||||
nop +341
|
||||
acc +50
|
||||
acc +44
|
||||
jmp +378
|
||||
acc +28
|
||||
acc +29
|
||||
nop +76
|
||||
jmp +136
|
||||
nop +445
|
||||
acc +27
|
||||
acc -8
|
||||
acc +34
|
||||
jmp +199
|
||||
acc +39
|
||||
acc +25
|
||||
acc -14
|
||||
acc +1
|
||||
jmp +189
|
||||
acc +2
|
||||
acc -9
|
||||
jmp -7
|
||||
acc +28
|
||||
acc +28
|
||||
jmp +458
|
||||
jmp +1
|
||||
nop +299
|
||||
jmp +427
|
||||
acc +10
|
||||
acc +32
|
||||
jmp +340
|
||||
acc +26
|
||||
jmp +563
|
||||
jmp +1
|
||||
acc +9
|
||||
jmp +42
|
||||
acc +4
|
||||
jmp +468
|
||||
acc +1
|
||||
acc +3
|
||||
jmp +258
|
||||
acc +29
|
||||
acc +7
|
||||
acc -5
|
||||
jmp +288
|
||||
acc +22
|
||||
acc +32
|
||||
acc -6
|
||||
jmp +173
|
||||
acc +48
|
||||
acc +42
|
||||
acc +26
|
||||
jmp +380
|
||||
jmp +126
|
||||
acc +45
|
||||
jmp -27
|
||||
acc +50
|
||||
jmp +14
|
||||
jmp +472
|
||||
acc -19
|
||||
jmp +363
|
||||
acc +19
|
||||
acc -8
|
||||
acc +25
|
||||
jmp +450
|
||||
acc -7
|
||||
acc +27
|
||||
acc +44
|
||||
acc +17
|
||||
jmp +487
|
||||
jmp +89
|
||||
nop +216
|
||||
nop +345
|
||||
acc -1
|
||||
acc +37
|
||||
jmp +455
|
||||
jmp +294
|
||||
acc +20
|
||||
acc +38
|
||||
jmp +419
|
||||
acc +17
|
||||
acc +17
|
||||
jmp +125
|
||||
jmp +81
|
||||
acc +37
|
||||
acc -8
|
||||
acc +9
|
||||
acc +31
|
||||
jmp +218
|
||||
acc +24
|
||||
acc +28
|
||||
acc -4
|
||||
acc -12
|
||||
jmp -40
|
||||
acc +40
|
||||
nop +359
|
||||
nop +182
|
||||
nop +306
|
||||
jmp +296
|
||||
acc -8
|
||||
jmp +1
|
||||
nop +43
|
||||
acc -14
|
||||
jmp +239
|
||||
acc +13
|
||||
acc +10
|
||||
jmp +1
|
||||
jmp -36
|
||||
acc -16
|
||||
acc +2
|
||||
jmp +344
|
||||
jmp +442
|
||||
acc +35
|
||||
acc +2
|
||||
acc +27
|
||||
acc +17
|
||||
jmp -27
|
||||
nop +478
|
||||
acc +6
|
||||
acc +7
|
||||
jmp +454
|
||||
nop -145
|
||||
acc +20
|
||||
acc -6
|
||||
jmp +182
|
||||
nop +251
|
||||
jmp -37
|
||||
acc +26
|
||||
jmp +300
|
||||
acc +29
|
||||
acc +44
|
||||
acc +32
|
||||
nop +56
|
||||
jmp +31
|
||||
acc -16
|
||||
jmp +53
|
||||
acc -9
|
||||
jmp +84
|
||||
jmp +1
|
||||
nop +30
|
||||
acc -15
|
||||
jmp +262
|
||||
acc -19
|
||||
jmp +163
|
||||
jmp +441
|
||||
acc +27
|
||||
jmp +449
|
||||
acc +42
|
||||
acc +45
|
||||
acc +21
|
||||
acc +22
|
||||
jmp +338
|
||||
acc +24
|
||||
jmp +301
|
||||
acc +42
|
||||
acc +42
|
||||
acc +26
|
||||
jmp +348
|
||||
jmp +361
|
||||
acc -5
|
||||
acc -19
|
||||
acc +4
|
||||
jmp -117
|
||||
jmp +254
|
||||
jmp +1
|
||||
acc +47
|
||||
acc -3
|
||||
jmp +271
|
||||
jmp +388
|
||||
acc +2
|
||||
acc -17
|
||||
acc +37
|
||||
jmp -73
|
||||
acc +37
|
||||
acc +34
|
||||
jmp +1
|
||||
jmp -148
|
||||
jmp -56
|
||||
jmp +103
|
||||
acc -5
|
||||
acc +23
|
||||
acc +3
|
||||
jmp +405
|
||||
nop +255
|
||||
acc +14
|
||||
nop -41
|
||||
acc +12
|
||||
jmp +94
|
||||
acc +22
|
||||
acc +30
|
||||
jmp -107
|
||||
acc +12
|
||||
acc -2
|
||||
jmp +65
|
||||
acc +35
|
||||
acc -4
|
||||
jmp -174
|
||||
nop -159
|
||||
acc +47
|
||||
jmp -52
|
||||
acc +35
|
||||
jmp +73
|
||||
acc +1
|
||||
acc +19
|
||||
acc +35
|
||||
acc +15
|
||||
jmp -59
|
||||
jmp +312
|
||||
acc +20
|
||||
acc +25
|
||||
acc +45
|
||||
jmp -4
|
||||
acc -4
|
||||
nop -160
|
||||
acc -8
|
||||
acc +31
|
||||
jmp +166
|
||||
acc +20
|
||||
acc +16
|
||||
acc -1
|
||||
jmp +234
|
||||
acc +0
|
||||
jmp -45
|
||||
acc +47
|
||||
acc +17
|
||||
nop -187
|
||||
nop +206
|
||||
jmp +17
|
||||
acc +36
|
||||
acc +0
|
||||
acc +7
|
||||
jmp +263
|
||||
acc +32
|
||||
acc -6
|
||||
nop +35
|
||||
jmp -101
|
||||
acc +49
|
||||
nop -60
|
||||
jmp +118
|
||||
acc -1
|
||||
acc -7
|
||||
nop -94
|
||||
acc +21
|
||||
jmp +82
|
||||
nop +216
|
||||
acc +5
|
||||
nop -99
|
||||
jmp -47
|
||||
acc +31
|
||||
acc +2
|
||||
acc +26
|
||||
acc +27
|
||||
jmp -224
|
||||
acc +15
|
||||
acc +48
|
||||
jmp +220
|
||||
nop +152
|
||||
jmp -69
|
||||
acc +4
|
||||
acc +24
|
||||
jmp +200
|
||||
acc +14
|
||||
jmp +126
|
||||
acc +48
|
||||
acc +47
|
||||
acc +10
|
||||
jmp +26
|
||||
acc +16
|
||||
jmp -203
|
||||
acc +21
|
||||
jmp -158
|
||||
acc -15
|
||||
acc -13
|
||||
jmp -94
|
||||
jmp -136
|
||||
nop -247
|
||||
acc +16
|
||||
jmp -130
|
||||
acc +31
|
||||
jmp +115
|
||||
jmp -159
|
||||
acc +7
|
||||
acc +50
|
||||
jmp +52
|
||||
acc +22
|
||||
acc +26
|
||||
jmp +249
|
||||
acc -18
|
||||
jmp +1
|
||||
jmp -251
|
||||
nop +254
|
||||
jmp -127
|
||||
acc +37
|
||||
jmp -93
|
||||
nop +73
|
||||
acc +11
|
||||
acc +36
|
||||
jmp +277
|
||||
acc +29
|
||||
acc +16
|
||||
jmp -88
|
||||
nop +8
|
||||
acc +18
|
||||
acc +47
|
||||
acc -9
|
||||
jmp +184
|
||||
jmp -142
|
||||
acc +50
|
||||
jmp +287
|
||||
jmp -250
|
||||
jmp -296
|
||||
jmp -83
|
||||
acc +13
|
||||
acc +29
|
||||
acc +28
|
||||
acc +16
|
||||
jmp +40
|
||||
acc +33
|
||||
acc -13
|
||||
jmp +43
|
||||
nop +275
|
||||
acc +24
|
||||
nop -257
|
||||
nop -65
|
||||
jmp -112
|
||||
acc +4
|
||||
acc +38
|
||||
jmp -193
|
||||
jmp +1
|
||||
acc -18
|
||||
acc +15
|
||||
jmp -223
|
||||
acc -18
|
||||
jmp -55
|
||||
jmp -207
|
||||
acc -6
|
||||
jmp -215
|
||||
acc +16
|
||||
acc +44
|
||||
jmp +1
|
||||
acc +47
|
||||
jmp -35
|
||||
acc +47
|
||||
acc +47
|
||||
acc +35
|
||||
jmp +144
|
||||
jmp +1
|
||||
acc +45
|
||||
acc +25
|
||||
jmp -293
|
||||
acc +32
|
||||
jmp -381
|
||||
nop +65
|
||||
jmp +1
|
||||
acc +2
|
||||
jmp -74
|
||||
acc -13
|
||||
acc -9
|
||||
acc +4
|
||||
jmp -251
|
||||
jmp +1
|
||||
jmp +71
|
||||
acc -12
|
||||
acc +7
|
||||
acc +15
|
||||
jmp +11
|
||||
jmp -68
|
||||
acc +33
|
||||
jmp -330
|
||||
jmp +48
|
||||
acc -15
|
||||
acc -11
|
||||
jmp +97
|
||||
acc -9
|
||||
acc -10
|
||||
jmp +100
|
||||
acc +29
|
||||
acc +21
|
||||
jmp -134
|
||||
acc -18
|
||||
acc +38
|
||||
jmp +67
|
||||
jmp -12
|
||||
acc +27
|
||||
acc +26
|
||||
acc -8
|
||||
acc -2
|
||||
jmp -124
|
||||
jmp +165
|
||||
nop -245
|
||||
acc -16
|
||||
acc +25
|
||||
acc -19
|
||||
jmp -328
|
||||
nop -182
|
||||
acc -7
|
||||
acc +46
|
||||
jmp -250
|
||||
acc +45
|
||||
acc -7
|
||||
nop -256
|
||||
acc -2
|
||||
jmp +21
|
||||
acc +21
|
||||
acc +37
|
||||
jmp +156
|
||||
nop +32
|
||||
jmp -195
|
||||
nop -355
|
||||
acc -14
|
||||
nop -302
|
||||
acc +48
|
||||
jmp -407
|
||||
acc +50
|
||||
acc -9
|
||||
acc +47
|
||||
jmp -110
|
||||
acc +31
|
||||
acc +37
|
||||
acc +15
|
||||
jmp -162
|
||||
acc -14
|
||||
jmp -437
|
||||
acc +44
|
||||
jmp +1
|
||||
acc +24
|
||||
jmp -139
|
||||
jmp -362
|
||||
acc +40
|
||||
jmp -41
|
||||
acc +38
|
||||
jmp -231
|
||||
acc +31
|
||||
acc +23
|
||||
jmp +135
|
||||
acc -19
|
||||
acc +15
|
||||
jmp +148
|
||||
acc +16
|
||||
acc -18
|
||||
acc -3
|
||||
acc +1
|
||||
jmp -189
|
||||
acc -12
|
||||
acc -6
|
||||
acc -18
|
||||
nop -454
|
||||
jmp +83
|
||||
nop -190
|
||||
jmp -17
|
||||
acc -7
|
||||
acc +34
|
||||
acc -1
|
||||
jmp +94
|
||||
acc +42
|
||||
jmp +34
|
||||
nop -150
|
||||
nop +90
|
||||
nop -126
|
||||
jmp -161
|
||||
acc +5
|
||||
acc +11
|
||||
acc +20
|
||||
acc +38
|
||||
jmp -97
|
||||
acc +49
|
||||
acc +29
|
||||
acc +26
|
||||
jmp -36
|
||||
acc +4
|
||||
acc -14
|
||||
acc +30
|
||||
acc +42
|
||||
jmp -192
|
||||
jmp -336
|
||||
acc +34
|
||||
acc +31
|
||||
acc +2
|
||||
acc +33
|
||||
jmp +65
|
||||
acc +4
|
||||
jmp -459
|
||||
nop -399
|
||||
acc -6
|
||||
nop -256
|
||||
jmp -420
|
||||
acc -12
|
||||
acc -17
|
||||
jmp -276
|
||||
acc +45
|
||||
acc +40
|
||||
jmp -180
|
||||
acc +50
|
||||
jmp -501
|
||||
acc +17
|
||||
jmp -232
|
||||
acc +12
|
||||
jmp -109
|
||||
nop -291
|
||||
nop -345
|
||||
jmp +100
|
||||
acc +36
|
||||
acc +2
|
||||
acc -2
|
||||
jmp +1
|
||||
acc +23
|
||||
nop -299
|
||||
acc +24
|
||||
acc +30
|
||||
jmp -476
|
||||
acc +0
|
||||
acc +6
|
||||
acc +49
|
||||
jmp +6
|
||||
nop -461
|
||||
jmp -539
|
||||
nop -62
|
||||
acc +48
|
||||
jmp -526
|
||||
jmp -365
|
||||
acc +47
|
||||
acc +10
|
||||
acc +32
|
||||
jmp -490
|
||||
nop -148
|
||||
acc +42
|
||||
acc +5
|
||||
jmp -358
|
||||
acc -5
|
||||
jmp -101
|
||||
jmp -502
|
||||
acc +15
|
||||
acc +45
|
||||
nop -399
|
||||
jmp +1
|
||||
acc +31
|
||||
acc +47
|
||||
acc +49
|
||||
jmp -269
|
||||
acc +6
|
||||
acc +45
|
||||
acc -8
|
||||
acc -6
|
||||
jmp +36
|
||||
jmp +51
|
||||
acc +39
|
||||
jmp -64
|
||||
acc +47
|
||||
jmp +1
|
||||
acc -8
|
||||
jmp -102
|
||||
acc -8
|
||||
jmp -202
|
||||
jmp -18
|
||||
acc +1
|
||||
jmp -484
|
||||
acc +35
|
||||
acc +30
|
||||
acc +49
|
||||
jmp -562
|
||||
jmp -515
|
||||
acc -13
|
||||
nop -6
|
||||
jmp -369
|
||||
acc +27
|
||||
acc +18
|
||||
nop -477
|
||||
acc -10
|
||||
jmp -430
|
||||
jmp +1
|
||||
acc +7
|
||||
nop -111
|
||||
jmp -445
|
||||
jmp +12
|
||||
jmp -50
|
||||
acc +7
|
||||
acc +3
|
||||
nop -433
|
||||
jmp -390
|
||||
acc -5
|
||||
acc +50
|
||||
jmp -67
|
||||
acc +45
|
||||
acc -10
|
||||
jmp -446
|
||||
jmp -496
|
||||
jmp -17
|
||||
acc +14
|
||||
acc +33
|
||||
jmp -239
|
||||
acc +3
|
||||
acc -3
|
||||
acc +27
|
||||
acc -3
|
||||
jmp -162
|
||||
jmp -16
|
||||
acc +23
|
||||
acc +26
|
||||
acc +25
|
||||
jmp -346
|
||||
acc +40
|
||||
acc +45
|
||||
acc +42
|
||||
acc -4
|
||||
jmp +1
|
9
2020/day08_handheld_halting/tests/sample_input
Normal file
9
2020/day08_handheld_halting/tests/sample_input
Normal file
|
@ -0,0 +1,9 @@
|
|||
nop +0
|
||||
acc +1
|
||||
jmp +4
|
||||
acc +3
|
||||
jmp -3
|
||||
acc -99
|
||||
acc +1
|
||||
jmp -4
|
||||
acc +6
|
Loading…
Add table
Add a link
Reference in a new issue