Files
aoc22/src/bin/d7p2.rs
2022-12-14 13:32:05 +01:00

27 lines
760 B
Rust

use aoc22::{day7, util};
const TOTAL_SPACE: usize = 70000000;
const REQUIRED_SPACE: usize = 30000000;
pub fn main() {
let root = day7::parse_cmdline(&util::parse_input());
let r = &*root.borrow();
let free_space = TOTAL_SPACE - r.size();
assert!(free_space < REQUIRED_SPACE);
let required_deletion = REQUIRED_SPACE - free_space;
let mut min_sufficient = usize::MAX;
for child in root.borrow().all_children() {
let c = &*child.borrow();
if let day7::Node::Dir { .. } = c {
let size = c.size();
if size >= required_deletion && size <= min_sufficient {
min_sufficient = size;
}
}
}
println!("Size of min sufficient dir is {}", min_sufficient);
}