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