From 4cc719c9b2b4a7ef4066c8435c6b1480eb9e309f Mon Sep 17 00:00:00 2001 From: June McEnroe Date: Sat, 17 Dec 2016 00:59:00 -0500 Subject: Day 15 part 2 --- src/bin/day15.rs | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/src/bin/day15.rs b/src/bin/day15.rs index c7006eb..ec9df7a 100644 --- a/src/bin/day15.rs +++ b/src/bin/day15.rs @@ -64,7 +64,7 @@ impl<'a> From<&'a str> for Sculpture { } } -fn solve(input: &str) -> u32 { +fn solve1(input: &str) -> u32 { let mut sculpture = Sculpture::from(input); loop { if sculpture.clone().drop_capsule() { @@ -74,11 +74,23 @@ fn solve(input: &str) -> u32 { } } +fn solve2(input: &str) -> u32 { + let mut sculpture = Sculpture::from(input); + sculpture.discs.push(Disc { positions: 11, position: 0 }); + loop { + if sculpture.clone().drop_capsule() { + return sculpture.time; + } + sculpture.tick(); + } +} + fn main() { let mut input = String::new(); io::stdin().read_to_string(&mut input).unwrap(); - println!("Part 1: {}", solve(&input)); + println!("Part 1: {}", solve1(&input)); + println!("Part 2: {}", solve2(&input)); } #[test] @@ -87,5 +99,5 @@ fn part1() { Disc #1 has 5 positions; at time=0, it is at position 4. Disc #2 has 2 positions; at time=0, it is at position 1. "; - assert_eq!(5, solve(input.trim())); + assert_eq!(5, solve1(input.trim())); } -- cgit 1.4.1 f='/catgirl/tree/input.c?h=somasis/tokipona&id=aacee60ce63c1497681eb712718241c2f6aad84e'>tree commit diff
path: root/input.c (unfollow)
Commit message (Expand)Author
2019-02-22Rename global tags with angle bracketsJune McEnroe
2019-02-22Show status window while connectingJune McEnroe
2019-02-22Reorganize UI code for the umpteenth timeJune McEnroe
2019-02-21Replace "view" with "window"June McEnroe
2019-02-21Remove ROT13June McEnroe
2019-02-21Clean up man pageJune McEnroe
2019-01-26Draw UI before connectingJune McEnroe
2019-01-25Avoid unused variable warnings with getyxJune McEnroe
2019-01-25Add GNU/Linux build instructionsJune McEnroe