| 12 | using ull = unsigned long long; |
| 13 | |
| 14 | std::vector<ll> conv_ll_naive(std::vector<ll> a, std::vector<ll> b) { |
| 15 | int n = int(a.size()), m = int(b.size()); |
| 16 | std::vector<ll> c(n + m - 1); |
| 17 | for (int i = 0; i < n; i++) { |
| 18 | for (int j = 0; j < m; j++) { |
| 19 | c[i + j] += a[i] * b[j]; |
| 20 | } |
| 21 | } |
| 22 | return c; |
| 23 | } |
| 24 | |
| 25 | template <class mint, internal::is_static_modint_t<mint>* = nullptr> |
| 26 | std::vector<mint> conv_naive(std::vector<mint> a, std::vector<mint> b) { |