From 4e3a081d08a79355219f8fcf78a9ae762d662b56 Mon Sep 17 00:00:00 2001 From: Leah Neukirchen Date: Tue, 11 Dec 2018 14:29:54 +0100 Subject: day09 --- day09 | 1 + day09.rs | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 34 insertions(+) create mode 100644 day09 create mode 100644 day09.rs diff --git a/day09 b/day09 new file mode 100644 index 0000000..fc88b57 --- /dev/null +++ b/day09 @@ -0,0 +1 @@ +466 players; last marble is worth 71436 points diff --git a/day09.rs b/day09.rs new file mode 100644 index 0000000..fe3fdc8 --- /dev/null +++ b/day09.rs @@ -0,0 +1,33 @@ +use std::collections::VecDeque; + +const mp : usize = 466; +const mr : usize = 71436; + +fn main() { + let mut s = VecDeque::new(); + s.push_back(0); + + let mut scores = [0usize; mp + 1]; + + for (n, p) in (1..mp+1).cycle().take(mr*100).enumerate() { + let m = n + 1; + if m % 23 == 0 { + scores[p] += m; + + for _ in 0..7 { + let x = s.pop_back().unwrap(); + s.push_front(x); + } + + scores[p] += s.pop_back().unwrap(); + let x = s.pop_front().unwrap(); + s.push_back(x); + } else { + let x = s.pop_front().unwrap(); + s.push_back(x); + s.push_back(m); + } + } + + println!("{}", scores.iter().max().unwrap()); +} -- cgit 1.4.1