Skip to main content

aizu_online_judge/grl/
grl_5_a.rs

1use competitive::prelude::*;
2use competitive::{algebra::AdditiveOperation, graph::TreeGraphScanner};
3
4#[verify::aizu_online_judge("GRL_5_A")]
5pub fn grl_5_a(reader: impl Read, writer: impl Write) {
6    prepare_io!(reader, writer);
7    sc!(n, (graph, w): @TreeGraphScanner::<usize, u64>::new(n));
8    let d = graph.weighted_tree_depth::<AdditiveOperation<_>, _>(0, |eid| w[eid]);
9    let r = (0..n).max_by_key(|&u| d[u]).unwrap();
10    let ans = graph
11        .weighted_tree_depth::<AdditiveOperation<_>, _>(r, |eid| w[eid])
12        .into_iter()
13        .max()
14        .unwrap();
15    pp!(ans);
16}