Skip to main content

library_checker/polynomial/
sqrt_of_formal_power_series.rs

1use competitive::prelude::*;
2use competitive::{math::Fps998244353, num::montgomery::MInt998244353 as M};
3
4#[verify::library_checker("sqrt_of_formal_power_series")]
5pub fn sqrt_of_formal_power_series(reader: impl Read, writer: impl Write) {
6    prepare_io!(reader, writer);
7    sc!(n, a: [M; n]);
8    let f = Fps998244353::from_vec(a);
9    if let Some(g) = f.sqrt(n) {
10        pp!(@it g.data);
11    } else {
12        pp!("-1");
13    }
14}