Day 1, part 2
parent
3442af1c78
commit
c378851aed
|
@ -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"
|
||||
|
|
|
@ -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"
|
||||
|
|
12
src/main.rs
12
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<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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Reference in New Issue