Skip to main content

aizu_online_judge/grl/
grl_5_b.rs

1use competitive::prelude::*;
2use competitive::{algebra::MaxOperation, graph::TreeGraphScanner, tree::ReRooting};
3
4#[verify::aizu_online_judge("GRL_5_B")]
5pub fn grl_5_b(reader: impl Read, writer: impl Write) {
6    prepare_io!(reader, writer);
7    sc!(n, (graph, w): @TreeGraphScanner::<usize, u64>::new(n));
8    let re = ReRooting::<MaxOperation<u64>, _>::new(&graph, |d, _vid, eid_opt| {
9        d + eid_opt.map_or(0, |eid| w[eid])
10    });
11    pp!(@lf @it re.dp);
12}