Skip to main content

aizu_online_judge/grl/
grl_6_b.rs

1use competitive::graph::PrimalDualBuilder;
2use competitive::prelude::*;
3
4#[verify::aizu_online_judge("GRL_6_B")]
5pub fn grl_6_b(reader: impl Read, writer: impl Write) {
6    prepare_io!(reader, writer);
7    sc!(vs, es, f: u64, edges: [(usize, usize, u64, i64); iter es]);
8    let mut builder = PrimalDualBuilder::new(vs, es);
9    builder.extend(edges);
10    let graph = builder.gen_graph();
11    let mut pd = builder.build(&graph);
12    let (flow, cost) = pd.minimum_cost_flow_limited(0, vs - 1, f);
13    pp!(if flow < f { -1 } else { cost });
14}