aizu_online_judge/grl/
grl_5_a.rs1use 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}