Skip to main content

library_checker/graph/
general_weighted_matching.rs

1use competitive::graph::GeneralWeightedMatching;
2use competitive::prelude::*;
3
4#[verify::library_checker("general_weighted_matching")]
5pub fn general_weighted_matching(reader: impl Read, writer: impl Write) {
6    prepare_io!(reader, writer);
7    sc!(n, m, uvw: [(usize, usize, i64); iter m]);
8    let mut gm = GeneralWeightedMatching::new(n);
9    for (u, v, w) in uvw {
10        gm.add_edge(u, v, w);
11    }
12    let (w, matching) = gm.maximum_weight_matching();
13    pp!(matching.len(), w; @ittup matching);
14}