From c378851aedb925ab12fd80542628e0223655bc6c Mon Sep 17 00:00:00 2001 From: "Dustin C. Hatch" Date: Wed, 1 Dec 2021 20:25:11 -0600 Subject: [PATCH] Day 1, part 2 --- Cargo.lock | 9 +++++++++ Cargo.toml | 1 + src/main.rs | 12 ++++++++++-- 3 files changed, 20 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 7baa389..f25a28a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -5,3 +5,12 @@ version = 3 [[package]] name = "aoc2021" version = "0.1.0" +dependencies = [ + "bounded-vec-deque", +] + +[[package]] +name = "bounded-vec-deque" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2225b558afc76c596898f5f1b3fc35cfce0eb1b13635cbd7d1b2a7177dc10ccd" diff --git a/Cargo.toml b/Cargo.toml index a028c28..b6ab0e5 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -6,3 +6,4 @@ edition = "2018" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] +bounded-vec-deque = "0.1.1" diff --git a/src/main.rs b/src/main.rs index 55dbcb5..afa12de 100644 --- a/src/main.rs +++ b/src/main.rs @@ -3,20 +3,28 @@ use std::io::prelude::*; use std::env; use std::fs::File; +use bounded_vec_deque::BoundedVecDeque; + fn main() -> io::Result<()> { let args: Vec = env::args().collect(); let f = File::open(&args[1])?; let buf = io::BufReader::new(f); + let mut deque: BoundedVecDeque = BoundedVecDeque::with_capacity(3, 3); let mut last = -1; let mut count_incr = 0; for line in buf.lines() { if let Ok(l) = line { if let Ok(value) = i32::from_str_radix(&l, 10) { - if last > 0 && value > last { + deque.push_back(value); + } + if deque.is_full() { + eprintln!("{:?}", deque); + let sum = deque.iter().sum(); + if last > -1 && sum > last { count_incr += 1; } - last = value; + last = sum; } } }