From fe31ed565b9bc5c4a5b74d6898f4f93c523c5b13 Mon Sep 17 00:00:00 2001 From: Curtis McEnroe Date: Sat, 23 Dec 2017 17:33:41 -0500 Subject: Day 13, part 2 --- 2017/src/bin/day13.rs | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/2017/src/bin/day13.rs b/2017/src/bin/day13.rs index 360e266..6765488 100644 --- a/2017/src/bin/day13.rs +++ b/2017/src/bin/day13.rs @@ -48,11 +48,47 @@ fn solve1(input: &str) -> usize { severity } +fn solve2(input: &str) -> usize { + let mut init_layers = vec![]; + for line in input.lines() { + let mut iter = line.split(": "); + let index: usize = iter.next().unwrap().parse().unwrap(); + let range = iter.next().unwrap().parse().unwrap(); + init_layers.resize(index + 1, None); + init_layers[index] = Some(Layer::new(range)); + } + + 'delay: for delay in 0.. { + if delay > 0 { + for layer in &mut init_layers { + layer.as_mut().map(Layer::step); + } + } + + let mut layers = init_layers.clone(); + for i in 0..layers.len() { + if let Some(ref layer) = layers[i] { + if layer.scanner == 0 { + continue 'delay; + } + } + + for layer in &mut layers { + layer.as_mut().map(Layer::step); + } + } + + return delay; + } + unreachable!() +} + fn main() { let mut input = String::new(); io::stdin().read_to_string(&mut input).unwrap(); println!("Part 1: {}", solve1(&input)); + println!("Part 2: {}", solve2(&input)); } #[test] @@ -66,3 +102,15 @@ fn part1() { " )); } + +#[test] +fn part2() { + assert_eq!(10, solve2( +"\ +0: 3 +1: 2 +4: 4 +6: 4 +" + )); +} -- cgit 1.4.1 option value='committer'>committer
path: root/bin/1sh/libedit/vi.c (unfollow)
Commit message (Collapse)Author
2019-11-01Add Hobo Johnson and The Lovemakers Tiny DeskJune McEnroe
2019-10-30Use braces in causal.agency MakefileJune McEnroe
2019-10-30Add scheme "screenshot" to causal.agencyJune McEnroe
2019-10-30Add pounce to causal.agencyJune McEnroe
2019-10-28Mark ' for \aJune McEnroe
2019-10-23Add The Book of the Unnamed MidwifeJune McEnroe
2019-10-22Add ConcreteJune McEnroe
Fun.
2019-10-14Set the write variable for nvim man modeJune McEnroe
Embarrassing...
2019-10-13Add All Systems RedJune McEnroe
2019-10-10Add The Book of PhoenixJune McEnroe
2019-10-03Add two Kim Petras songsJune McEnroe
2019-10-02Update neovim 0.4.2June McEnroe
Finally a release with my man mode fix... Meanwhile neovim itself has probably gotten worse.
2019-10-02Claim to be curl(1) in titleJune McEnroe
IMDB serves a page to our dumb User-Agent whose <title> is past the 8K boundary but serves something normal to curl(1).
2019-10-02Add The Red Threads of FortuneJune McEnroe
2019-09-28Add The Black Tides of HeavenJune McEnroe
2019-09-27Fail on HTTP failure status in titleJune McEnroe
2019-09-23Add Trail of LightningJune McEnroe
2019-09-22Revert "Enable cookies in title"June McEnroe
This reverts commit 3231fe21d3b389448c9a5ca7b4c91fdd25c9e677.
2019-09-20Enable cookies in titleJune McEnroe
Perhaps this will make it less suspicious to Google. Who knows.
2019-09-16Use sensitivity aliases in TF2June McEnroe
2019-09-16Add The Just CityJune McEnroe
2019-09-12Only GET the final redirect locationJune McEnroe
2019-09-12Consume entire bodyJune McEnroe
Aborting the request and leaving data around may be causing intermittent errors. Just discard the rest of the data.
2019-09-10Add title -v flagJune McEnroe
2019-09-10Use curl error bufferJune McEnroe
2019-09-10Set Accept-Encoding in titleJune McEnroe
Because apparently it's fine for servers to respond with Content-Encoding you didn't ask for, and curl won't decode it if you didn't ask for it.
2019-09-08Set title User-AgentJune McEnroe
Some things don't like you if you don't send one.
2019-09-07Add -x flag to titleJune McEnroe
2019-09-07Ignore SIGPIPE in relayJune McEnroe
Allows restarting consumers safely.
2019-09-07Add A Memory Called EmpireJune McEnroe
2019-09-05Handle lack of Content-TypeJune McEnroe
2019-09-05Use CURLINFO_CONTENT_TYPEJune McEnroe
Oops, didn't see this.
2019-09-05Decode entities in titlesJune McEnroe
2019-09-05Print title as soon as it's availableJune McEnroe
2019-09-05Use CURL_PREFIX to set flagsJune McEnroe
2019-09-05Add titleJune McEnroe
2019-09-04Add Avorter n'est pas tuerJune McEnroe
2019-08-29Unset executable on shell scriptsJune McEnroe
2019-08-29Add long-missing setopt to bin.7June McEnroe
2019-08-29Add editJune McEnroe