Skip to main content

library_checker/linear_algebra/
inverse_matrix_mod_2.rs

1use competitive::prelude::*;
2use competitive::{data_structure::BitSet, math::BitMatrix};
3
4#[verify::library_checker("inverse_matrix_mod_2")]
5pub fn inverse_matrix_mod_2(reader: impl Read, writer: impl Write) {
6    prepare_io!(reader, writer);
7    sc!(n, a: [@BitSet::from_binary; n]);
8    let a = BitMatrix::from_vec(a);
9    if let Some(b) = a.inverse() {
10        for row in b.data {
11            pp!(row.to_binary());
12        }
13    } else {
14        pp!(-1);
15    }
16}