Skip to main content

aizu_online_judge/grl/
grl_2_a.rs

1use competitive::graph::EdgeListGraphScanner;
2use competitive::prelude::*;
3
4#[verify::aizu_online_judge("GRL_2_A")]
5pub fn grl_2_a(reader: impl Read, writer: impl Write) {
6    prepare_io!(reader, writer);
7    sc!(vs, es, (graph, w): @EdgeListGraphScanner::<usize, u32>::new(vs, es));
8    let span = graph.minimum_spanning_tree(|&eid| w[eid]);
9    let ans = (0..es)
10        .map(|eid| u64::from(w[eid]) * span[eid] as u64)
11        .sum::<u64>();
12    pp!(ans);
13}