1
0
Fork 0
advent-of-code/src/bin/p01.rs

36 lines
910 B
Rust

use std::collections::BTreeSet;
use std::fs;
use std::io::{self, BufRead};
fn main() {
let filename = "etc/p01.txt";
let file = fs::File::open(filename).expect("Can't open file");
let lines = io::BufReader::new(file).lines();
let mut set = BTreeSet::new();
let mut cur_cals: u32 = 0;
for l in lines {
match l.expect("Can't read line.").parse::<u32>() {
Ok(cals) => {
cur_cals += cals;
}
_ => {
set.insert(cur_cals);
println!(
"new cals: {}, max so far: {}",
cur_cals,
set.last().unwrap()
);
cur_cals = 0;
}
}
}
if cur_cals > 0 {
set.insert(cur_cals);
}
let total: u32 = set.iter().rev().take(3).sum();
println!("calories of top 3 are: {}", total);
}