dustin
/
aoc2021
Archived
1
0
Fork 0

Day 1, part 2

master
Dustin 2021-12-01 20:25:11 -06:00
parent 3442af1c78
commit c378851aed
3 changed files with 20 additions and 2 deletions

9
Cargo.lock generated
View File

@ -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"

View File

@ -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"

View File

@ -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<String> = env::args().collect();
let f = File::open(&args[1])?;
let buf = io::BufReader::new(f);
let mut deque: BoundedVecDeque<i32> = 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;
}
}
}