Example #1
0
 vl conv(vl a, vl b) {
     int s = sz(a)+sz(b)-1, L = get(s), n = 1<<L;
     if (s <= 0) return {};
     if (s <= 200) return brute(a,b);
     
     a.resize(n); a = ntt(a);
     b.resize(n); b = ntt(b);
     
     F0R(i,n) a[i] = a[i]*b[i] % mod;
     a = ntt_rev(a);
     
     a.resize(s);
     return a;
 }