library_checker/graph/
general_weighted_matching.rs1use 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}