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

36 lines
910 B
Rust
Raw Normal View History

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