mirror of
https://github.com/bertptrs/adventofcode.git
synced 2025-12-25 21:00:31 +01:00
Implement day 25.
This commit is contained in:
30
2016/inputs/25.txt
Normal file
30
2016/inputs/25.txt
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
cpy a d
|
||||||
|
cpy 7 c
|
||||||
|
cpy 362 b
|
||||||
|
inc d
|
||||||
|
dec b
|
||||||
|
jnz b -2
|
||||||
|
dec c
|
||||||
|
jnz c -5
|
||||||
|
cpy d a
|
||||||
|
jnz 0 0
|
||||||
|
cpy a b
|
||||||
|
cpy 0 a
|
||||||
|
cpy 2 c
|
||||||
|
jnz b 2
|
||||||
|
jnz 1 6
|
||||||
|
dec b
|
||||||
|
dec c
|
||||||
|
jnz c -4
|
||||||
|
inc a
|
||||||
|
jnz 1 -7
|
||||||
|
cpy 2 b
|
||||||
|
jnz c 2
|
||||||
|
jnz 1 4
|
||||||
|
dec b
|
||||||
|
dec c
|
||||||
|
jnz 1 -4
|
||||||
|
jnz 0 0
|
||||||
|
out b
|
||||||
|
jnz a -19
|
||||||
|
jnz 1 -21
|
||||||
43
2016/src/day25.rs
Normal file
43
2016/src/day25.rs
Normal file
@@ -0,0 +1,43 @@
|
|||||||
|
use std::io;
|
||||||
|
use common;
|
||||||
|
|
||||||
|
#[derive(Default)]
|
||||||
|
pub struct Day25 {
|
||||||
|
}
|
||||||
|
|
||||||
|
impl Day25 {
|
||||||
|
|
||||||
|
pub fn new() -> Day25 {
|
||||||
|
Default::default()
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
impl common::Solution for Day25 {
|
||||||
|
|
||||||
|
fn part1(&mut self, _input: &mut io::Read) -> String {
|
||||||
|
let initial = 0b101010101010 - 362 * 7;
|
||||||
|
println!("Initial value: {}", initial);
|
||||||
|
sender_program(initial);
|
||||||
|
unreachable!();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// This function is an approximation of what the original code is doing.
|
||||||
|
pub fn sender_program(mut a: i32) {
|
||||||
|
// Placeholder variables
|
||||||
|
let mut b = 0;
|
||||||
|
let mut d = 0;
|
||||||
|
|
||||||
|
d = a;
|
||||||
|
d += 362 * 7;
|
||||||
|
loop {
|
||||||
|
if a == 0 {
|
||||||
|
a = d;
|
||||||
|
}
|
||||||
|
b = a;
|
||||||
|
a = b / 2;
|
||||||
|
b = b % 2;
|
||||||
|
println!("{}", b);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -13,6 +13,7 @@ pub mod day15;
|
|||||||
pub mod day16;
|
pub mod day16;
|
||||||
pub mod day23;
|
pub mod day23;
|
||||||
pub mod day24;
|
pub mod day24;
|
||||||
|
pub mod day25;
|
||||||
|
|
||||||
fn get_impl(day: &str) -> Box<common::Solution> {
|
fn get_impl(day: &str) -> Box<common::Solution> {
|
||||||
match day.parse() {
|
match day.parse() {
|
||||||
@@ -22,6 +23,7 @@ fn get_impl(day: &str) -> Box<common::Solution> {
|
|||||||
Ok(16) => { Box::new(day16::Day16::new()) }
|
Ok(16) => { Box::new(day16::Day16::new()) }
|
||||||
Ok(23) => { Box::new(day23::Day23::new()) }
|
Ok(23) => { Box::new(day23::Day23::new()) }
|
||||||
Ok(24) => { Box::new(day24::Day24::new()) }
|
Ok(24) => { Box::new(day24::Day24::new()) }
|
||||||
|
Ok(25) => { Box::new(day25::Day25::new()) }
|
||||||
Ok(val) => {
|
Ok(val) => {
|
||||||
panic!("Unimplemented day {}", val)
|
panic!("Unimplemented day {}", val)
|
||||||
},
|
},
|
||||||
|
|||||||
Reference in New Issue
Block a user