aizu_online_judge/grl/grl_2_b.rs
1use competitive::prelude::*;
2use competitive::{algebra::AdditiveOperation, graph::EdgeListGraphScanner};
3
4#[verify::aizu_online_judge("GRL_2_B")]
5pub fn grl_2_b(reader: impl Read, writer: impl Write) {
6 prepare_io!(reader, writer);
7 sc!(vs, es, root, (graph, w): @EdgeListGraphScanner::<usize, i64>::new(vs, es));
8 let res = graph.minimum_spanning_arborescence::<AdditiveOperation<_>, _>(root, |u| w[u]);
9 pp!(res.unwrap().0);
10}