library_checker/linear_algebra/inverse_matrix.rs
1use competitive::prelude::*;
2use competitive::{algebra::AddMulOperation, math::Matrix, num::mint_basic::MInt998244353 as M};
3
4#[verify::library_checker("inverse_matrix")]
5pub fn inverse_matrix(reader: impl Read, writer: impl Write) {
6 prepare_io!(reader, writer);
7 sc!(n, a: [[M; n]; n]);
8 let a = Matrix::<AddMulOperation<_>>::from_vec(a);
9 if let Some(b) = a.inverse() {
10 pp!(@it2d b.data);
11 } else {
12 pp!("-1");
13 }
14}