Garrit Franke
3 years ago
4 changed files with 695 additions and 0 deletions
@ -0,0 +1,5 @@
|
||||
# This file is automatically @generated by Cargo. |
||||
# It is not intended for manual editing. |
||||
[[package]] |
||||
name = "Day8" |
||||
version = "0.1.0" |
@ -0,0 +1,9 @@
|
||||
[package] |
||||
name = "Day8" |
||||
version = "0.1.0" |
||||
authors = ["Garrit Franke <garritfranke@gmail.com>"] |
||||
edition = "2018" |
||||
|
||||
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html |
||||
|
||||
[dependencies] |
@ -0,0 +1,623 @@
|
||||
acc -17 |
||||
nop +318 |
||||
jmp +1 |
||||
acc -10 |
||||
jmp +394 |
||||
acc +43 |
||||
acc +47 |
||||
nop +570 |
||||
jmp +176 |
||||
acc -9 |
||||
jmp +322 |
||||
jmp +73 |
||||
acc +4 |
||||
acc -4 |
||||
jmp +460 |
||||
jmp +228 |
||||
acc +25 |
||||
acc +39 |
||||
jmp +50 |
||||
acc -12 |
||||
acc -14 |
||||
nop +275 |
||||
jmp +489 |
||||
acc -11 |
||||
jmp +338 |
||||
acc +21 |
||||
acc +10 |
||||
jmp +1 |
||||
acc +20 |
||||
jmp +445 |
||||
acc +7 |
||||
jmp +419 |
||||
acc -8 |
||||
acc +32 |
||||
jmp +181 |
||||
acc +19 |
||||
acc +5 |
||||
acc +46 |
||||
jmp +417 |
||||
acc +28 |
||||
acc +23 |
||||
acc +16 |
||||
jmp +225 |
||||
jmp +317 |
||||
jmp +309 |
||||
jmp +69 |
||||
acc -6 |
||||
acc -6 |
||||
jmp +127 |
||||
acc +49 |
||||
nop -38 |
||||
jmp +467 |
||||
acc +0 |
||||
acc -12 |
||||
acc -14 |
||||
jmp -46 |
||||
acc +14 |
||||
acc +2 |
||||
acc +2 |
||||
jmp +311 |
||||
acc +33 |
||||
jmp +364 |
||||
nop +234 |
||||
acc +24 |
||||
acc +37 |
||||
acc +18 |
||||
jmp +22 |
||||
jmp +303 |
||||
jmp +414 |
||||
jmp +318 |
||||
acc +22 |
||||
acc +27 |
||||
jmp +1 |
||||
jmp +150 |
||||
acc +34 |
||||
acc +15 |
||||
nop +200 |
||||
acc +6 |
||||
jmp +320 |
||||
nop +534 |
||||
acc +29 |
||||
jmp +147 |
||||
nop -20 |
||||
jmp +255 |
||||
jmp +10 |
||||
acc -15 |
||||
acc +3 |
||||
jmp +338 |
||||
nop +362 |
||||
acc -4 |
||||
jmp +1 |
||||
jmp +286 |
||||
acc -1 |
||||
jmp +497 |
||||
acc -4 |
||||
acc +23 |
||||
acc +4 |
||||
jmp +400 |
||||
acc +35 |
||||
acc +50 |
||||
jmp +133 |
||||
acc -17 |
||||
jmp -90 |
||||
jmp +7 |
||||
acc -17 |
||||
jmp +472 |
||||
acc +20 |
||||
jmp +280 |
||||
jmp +133 |
||||
jmp -15 |
||||
jmp +16 |
||||
acc -19 |
||||
acc -2 |
||||
jmp -64 |
||||
acc -17 |
||||
jmp +1 |
||||
jmp +385 |
||||
acc -5 |
||||
acc +34 |
||||
jmp +382 |
||||
acc +24 |
||||
acc -17 |
||||
acc +0 |
||||
acc +15 |
||||
jmp +466 |
||||
jmp +300 |
||||
acc +16 |
||||
jmp +302 |
||||
nop +479 |
||||
acc +16 |
||||
jmp +71 |
||||
acc +23 |
||||
jmp +1 |
||||
acc +8 |
||||
jmp +154 |
||||
jmp +410 |
||||
acc -8 |
||||
jmp +402 |
||||
acc +48 |
||||
acc +42 |
||||
acc +22 |
||||
acc +35 |
||||
jmp +50 |
||||
jmp -7 |
||||
acc -13 |
||||
acc +37 |
||||
acc +24 |
||||
jmp +243 |
||||
jmp +410 |
||||
acc -3 |
||||
acc +45 |
||||
jmp +416 |
||||
acc +2 |
||||
acc +25 |
||||
jmp -109 |
||||
jmp -41 |
||||
jmp +318 |
||||
acc -8 |
||||
acc -12 |
||||
jmp +169 |
||||
nop +393 |
||||
acc +7 |
||||
acc -12 |
||||
acc +35 |
||||
jmp +381 |
||||
acc +41 |
||||
nop -98 |
||||
acc +15 |
||||
acc -19 |
||||
jmp +218 |
||||
acc +24 |
||||
acc +47 |
||||
jmp +65 |
||||
acc +29 |
||||
jmp -129 |
||||
acc +23 |
||||
acc -13 |
||||
nop +60 |
||||
jmp -26 |
||||
nop -4 |
||||
acc -5 |
||||
acc +13 |
||||
nop -12 |
||||
jmp -13 |
||||
jmp -53 |
||||
acc +21 |
||||
jmp +276 |
||||
nop -27 |
||||
jmp +165 |
||||
acc +42 |
||||
nop +43 |
||||
jmp +1 |
||||
acc +26 |
||||
acc +22 |
||||
acc -3 |
||||
jmp +405 |
||||
acc +29 |
||||
nop -118 |
||||
acc +21 |
||||
nop -190 |
||||
jmp +217 |
||||
acc -1 |
||||
nop +223 |
||||
acc -8 |
||||
acc +45 |
||||
jmp +49 |
||||
acc +8 |
||||
acc +22 |
||||
jmp +209 |
||||
acc +44 |
||||
jmp +66 |
||||
acc +7 |
||||
acc -7 |
||||
acc +48 |
||||
jmp +318 |
||||
nop +398 |
||||
acc +2 |
||||
jmp +16 |
||||
nop +207 |
||||
nop +358 |
||||
acc +45 |
||||
acc +48 |
||||
jmp +267 |
||||
nop +248 |
||||
acc +26 |
||||
jmp +307 |
||||
acc +27 |
||||
jmp -197 |
||||
jmp -68 |
||||
acc +34 |
||||
acc +25 |
||||
acc -13 |
||||
jmp +133 |
||||
jmp -77 |
||||
acc -13 |
||||
acc +10 |
||||
jmp -193 |
||||
jmp -62 |
||||
acc +4 |
||||
acc -14 |
||||
jmp +261 |
||||
jmp +151 |
||||
jmp +208 |
||||
acc -10 |
||||
jmp +40 |
||||
acc +31 |
||||
jmp -216 |
||||
acc +23 |
||||
acc +34 |
||||
jmp +364 |
||||
nop +205 |
||||
acc -3 |
||||
acc +14 |
||||
jmp +59 |
||||
nop +359 |
||||
acc -4 |
||||
jmp +1 |
||||
jmp -248 |
||||
acc +47 |
||||
acc +35 |
||||
jmp +184 |
||||
acc +16 |
||||
nop -92 |
||||
acc -12 |
||||
jmp +354 |
||||
acc +27 |
||||
jmp -152 |
||||
acc -14 |
||||
acc -16 |
||||
acc +43 |
||||
jmp +147 |
||||
acc +45 |
||||
acc +24 |
||||
acc +6 |
||||
nop -46 |
||||
jmp +21 |
||||
acc +26 |
||||
jmp +1 |
||||
jmp +293 |
||||
acc -8 |
||||
acc +12 |
||||
acc -19 |
||||
acc -9 |
||||
jmp +94 |
||||
jmp +299 |
||||
acc +10 |
||||
acc -2 |
||||
jmp +75 |
||||
acc -7 |
||||
acc +3 |
||||
acc +47 |
||||
jmp +171 |
||||
acc +16 |
||||
acc +44 |
||||
acc -3 |
||||
jmp +14 |
||||
acc +30 |
||||
acc +34 |
||||
jmp -178 |
||||
acc +35 |
||||
nop -238 |
||||
acc +39 |
||||
jmp +1 |
||||
jmp -133 |
||||
acc +34 |
||||
acc -6 |
||||
jmp -276 |
||||
acc +1 |
||||
jmp -207 |
||||
acc +10 |
||||
jmp -43 |
||||
jmp -302 |
||||
acc -1 |
||||
nop -29 |
||||
jmp +1 |
||||
acc +17 |
||||
jmp -281 |
||||
acc +17 |
||||
jmp -109 |
||||
jmp +1 |
||||
acc +13 |
||||
nop -9 |
||||
jmp +245 |
||||
acc +5 |
||||
nop -15 |
||||
acc +3 |
||||
acc +7 |
||||
jmp +65 |
||||
acc -11 |
||||
jmp -313 |
||||
acc +47 |
||||
jmp +29 |
||||
jmp -289 |
||||
acc +18 |
||||
acc -17 |
||||
nop +73 |
||||
acc -12 |
||||
jmp +80 |
||||
acc +32 |
||||
acc -4 |
||||
acc +3 |
||||
jmp -126 |
||||
acc +16 |
||||
jmp -275 |
||||
nop -188 |
||||
acc -3 |
||||
acc +14 |
||||
jmp -155 |
||||
acc +33 |
||||
acc -19 |
||||
nop -166 |
||||
acc +20 |
||||
jmp +30 |
||||
nop -169 |
||||
acc +49 |
||||
nop +168 |
||||
jmp -24 |
||||
nop -345 |
||||
acc +34 |
||||
jmp -40 |
||||
jmp -56 |
||||
jmp +29 |
||||
jmp +191 |
||||
acc +24 |
||||
jmp +219 |
||||
acc +34 |
||||
acc +27 |
||||
acc +11 |
||||
jmp -260 |
||||
jmp -339 |
||||
acc +15 |
||||
nop +16 |
||||
jmp +1 |
||||
jmp +138 |
||||
jmp +1 |
||||
jmp +1 |
||||
jmp +14 |
||||
acc -11 |
||||
acc +45 |
||||
jmp -19 |
||||
acc +0 |
||||
jmp +27 |
||||
acc +0 |
||||
nop +128 |
||||
jmp -65 |
||||
nop -23 |
||||
jmp -318 |
||||
jmp -325 |
||||
jmp +1 |
||||
jmp -229 |
||||
jmp -270 |
||||
jmp -137 |
||||
acc +34 |
||||
acc +7 |
||||
jmp +1 |
||||
jmp -346 |
||||
acc +18 |
||||
jmp +37 |
||||
acc +40 |
||||
acc -16 |
||||
nop -146 |
||||
acc +35 |
||||
jmp -12 |
||||
acc +1 |
||||
acc +27 |
||||
acc +44 |
||||
acc +8 |
||||
jmp -276 |
||||
acc +16 |
||||
acc +42 |
||||
nop -342 |
||||
acc +13 |
||||
jmp -165 |
||||
acc -11 |
||||
acc -17 |
||||
acc -10 |
||||
jmp -26 |
||||
acc +10 |
||||
acc +43 |
||||
jmp -276 |
||||
acc +5 |
||||
acc +34 |
||||
acc +17 |
||||
acc -9 |
||||
jmp +99 |
||||
acc +29 |
||||
jmp -370 |
||||
acc -11 |
||||
jmp -412 |
||||
acc +47 |
||||
acc +21 |
||||
acc -12 |
||||
jmp -136 |
||||
jmp -124 |
||||
acc +12 |
||||
acc +0 |
||||
acc +25 |
||||
acc +27 |
||||
jmp -290 |
||||
acc +5 |
||||
acc +49 |
||||
acc +32 |
||||
nop +29 |
||||
jmp -202 |
||||
nop -296 |
||||
acc -12 |
||||
acc +9 |
||||
acc +21 |
||||
jmp +23 |
||||
jmp -345 |
||||
acc +26 |
||||
nop -123 |
||||
jmp -373 |
||||
nop +118 |
||||
jmp +43 |
||||
acc -15 |
||||
jmp -386 |
||||
jmp +1 |
||||
nop -370 |
||||
acc +47 |
||||
nop -141 |
||||
jmp -426 |
||||
acc +42 |
||||
acc +12 |
||||
acc +4 |
||||
nop -103 |
||||
jmp -122 |
||||
acc +23 |
||||
acc -4 |
||||
acc +11 |
||||
jmp -314 |
||||
jmp -73 |
||||
nop -1 |
||||
jmp -411 |
||||
acc +13 |
||||
acc +9 |
||||
nop -372 |
||||
jmp -293 |
||||
acc +46 |
||||
acc +3 |
||||
acc -1 |
||||
jmp +86 |
||||
acc +36 |
||||
jmp +100 |
||||
acc +27 |
||||
acc +49 |
||||
nop -4 |
||||
acc +47 |
||||
jmp -445 |
||||
acc +31 |
||||
acc +47 |
||||
acc -11 |
||||
acc +14 |
||||
jmp -181 |
||||
nop -438 |
||||
acc +31 |
||||
jmp -428 |
||||
nop -115 |
||||
nop -244 |
||||
jmp -464 |
||||
jmp -29 |
||||
nop -240 |
||||
jmp -241 |
||||
acc -12 |
||||
jmp -329 |
||||
nop +78 |
||||
acc +6 |
||||
jmp +1 |
||||
acc +49 |
||||
jmp -322 |
||||
jmp -133 |
||||
acc +20 |
||||
nop -83 |
||||
acc +35 |
||||
acc +29 |
||||
jmp -41 |
||||
acc +15 |
||||
jmp -46 |
||||
jmp -29 |
||||
acc +45 |
||||
acc -14 |
||||
acc +21 |
||||
jmp -366 |
||||
nop +84 |
||||
acc -6 |
||||
acc +25 |
||||
acc -17 |
||||
jmp -326 |
||||
acc -5 |
||||
nop -159 |
||||
acc +5 |
||||
jmp -171 |
||||
acc +42 |
||||
jmp -28 |
||||
acc +42 |
||||
acc -11 |
||||
acc +45 |
||||
acc +19 |
||||
jmp -305 |
||||
acc +38 |
||||
acc -13 |
||||
acc -16 |
||||
jmp -134 |
||||
acc +45 |
||||
jmp -256 |
||||
acc -15 |
||||
acc -18 |
||||
acc +28 |
||||
jmp -114 |
||||
acc -11 |
||||
acc +47 |
||||
nop -420 |
||||
jmp -90 |
||||
nop -330 |
||||
jmp +13 |
||||
acc -15 |
||||
acc +9 |
||||
jmp -159 |
||||
acc -12 |
||||
acc +0 |
||||
acc +0 |
||||
jmp -538 |
||||
acc +31 |
||||
acc +24 |
||||
acc +32 |
||||
acc -16 |
||||
jmp -95 |
||||
jmp -466 |
||||
acc +19 |
||||
acc +2 |
||||
jmp -172 |
||||
acc -12 |
||||
jmp -207 |
||||
acc +39 |
||||
acc +18 |
||||
acc +5 |
||||
jmp -211 |
||||
nop -507 |
||||
jmp +1 |
||||
jmp -197 |
||||
nop -227 |
||||
acc +28 |
||||
jmp -494 |
||||
acc +22 |
||||
acc +2 |
||||
acc -14 |
||||
jmp -377 |
||||
acc +8 |
||||
acc +29 |
||||
jmp -573 |
||||
acc -17 |
||||
acc +14 |
||||
acc +29 |
||||
acc +11 |
||||
jmp -351 |
||||
acc +9 |
||||
nop -540 |
||||
acc +30 |
||||
nop -344 |
||||
jmp -564 |
||||
acc -4 |
||||
nop -465 |
||||
jmp -293 |
||||
acc -18 |
||||
acc +5 |
||||
acc +29 |
||||
jmp -302 |
||||
acc -17 |
||||
acc +14 |
||||
acc +2 |
||||
acc -11 |
||||
jmp -527 |
||||
jmp -563 |
||||
acc +14 |
||||
acc +10 |
||||
jmp -505 |
||||
acc +43 |
||||
jmp -188 |
||||
nop -448 |
||||
acc +44 |
||||
acc +3 |
||||
acc +16 |
||||
jmp +1 |
@ -0,0 +1,58 @@
|
||||
use std::collections::HashSet; |
||||
|
||||
fn main() { |
||||
let contents = |
||||
std::fs::read_to_string("input.txt").expect("Something went wrong reading the file"); |
||||
let lines: Vec<String> = contents.lines().map(|x| x.to_string()).collect(); |
||||
|
||||
println!("Part 1: {:?}", first(lines.clone())); |
||||
println!("Part 1: {:?}", first(lines.clone())); |
||||
} |
||||
|
||||
fn first(lines: Vec<String>) -> i32 { |
||||
let mut accumulator: i32 = 0; |
||||
let mut seen = HashSet::new(); |
||||
|
||||
let mut bp = 0; |
||||
|
||||
loop { |
||||
let line = &lines[bp]; |
||||
if seen.contains(&bp) { |
||||
return accumulator; |
||||
} |
||||
seen.insert(bp); |
||||
|
||||
let components = line.chars(); |
||||
let instruction: String = components.clone().take(3).collect(); |
||||
let op: String = components.clone().skip(4).take(1).collect(); |
||||
let value: String = components |
||||
.clone() |
||||
.skip(5) |
||||
.take_while(|x| x != &' ') |
||||
.collect(); |
||||
|
||||
println!("{} {} {}", instruction, op, value); |
||||
|
||||
match instruction.as_ref() { |
||||
"nop" => bp += 1, |
||||
"acc" => { |
||||
match op.as_str() { |
||||
"+" => accumulator += value.parse::<i32>().unwrap(), |
||||
"-" => accumulator -= value.parse::<i32>().unwrap(), |
||||
_ => panic!(), |
||||
}; |
||||
bp += 1 |
||||
} |
||||
"jmp" => match op.as_str() { |
||||
"+" => bp += value.parse::<usize>().unwrap(), |
||||
"-" => bp -= value.parse::<usize>().unwrap(), |
||||
_ => panic!(), |
||||
}, |
||||
_ => panic!("Should not occur"), |
||||
} |
||||
} |
||||
} |
||||
|
||||
fn second(lines: Vec<String>) -> usize { |
||||
0 |
||||
} |
Loading…
Reference in new issue