#include <cstdio>
#include <iostream>
#include <algorithm>
#include <cmath>
using namespace std;
#define MOD 998244353
typedef long long ll;
const int N = 3e5+5;
int n, m, f[N], len = 1, lim;
int a[N], b[N], Ilen;
inline int qpow(int x, int y) {
int t = 1;
while (y) {
if (y & 1) t = 1ll * t * x % MOD;
x = 1ll * x * x % MOD, y >>= 1;
} return t;
}
inline int PLUS(int x, int y) {
x += y;
if (x >= MOD) x -= MOD;
if (x < 0) x += MOD;
return x;
}
void NTT(int *a, int n, bool op) {
for (int i=0; i<n; i++)
if (i < f[i]) swap(a[i], a[f[i]]);
for (int m=1; m<n; m<<=1) {
int omega = qpow(3, (MOD - 1) / (m << 1));
for (int i=0; i<n; i+=m<<1) {
int x = 1;
for (int j=0; j<m; j++, x=1ll*x*omega%MOD) {
int tmp = 1ll * x * a[i + j + m] % MOD;
a[i + j + m] = (a[i + j] - tmp + MOD) % MOD;
a[i + j] = (a[i + j] + tmp) % MOD;
}
}
}
if (op) reverse (a+1, a+n);
}
int main() {
cin >> n >> m;
for (int i=0; i<=n; i++)
scanf ("%d", &a[i]);
for (int i=0; i<=m; i++)
scanf ("%d", &b[i]);
n += m;
while (len <= n) ++lim, len <<= 1;
Ilen = qpow(len, MOD - 2);
for (int i=0; i<len; i++)
f[i] = f[i >> 1] >> 1 | (i & 1) << lim - 1;
NTT(a, len, 0), NTT(b, len, 0);
for (int i=0; i<len; i++)
a[i] = 1ll * a[i] * b[i] % MOD;
NTT(a, len, 1);
for (int i=0; i<=n; i++)
printf ("%d ", 1ll * a[i] * Ilen % MOD);
return 0;
}
| Compilation | N/A | N/A | Compile OK | Score: N/A | 显示更多 |
| Subtask #1 Testcase #1 | 38.83 us | 48 KB | Accepted | Score: 0 | 显示更多 |
| Subtask #1 Testcase #2 | 75.231 ms | 4 MB + 476 KB | Accepted | Score: 100 | 显示更多 |
| Subtask #1 Testcase #3 | 34.824 ms | 1 MB + 840 KB | Accepted | Score: 0 | 显示更多 |
| Subtask #1 Testcase #4 | 34.849 ms | 1 MB + 828 KB | Accepted | Score: 0 | 显示更多 |
| Subtask #1 Testcase #5 | 41.49 us | 48 KB | Accepted | Score: 0 | 显示更多 |
| Subtask #1 Testcase #6 | 39.11 us | 48 KB | Accepted | Score: 0 | 显示更多 |
| Subtask #1 Testcase #7 | 38.79 us | 48 KB | Accepted | Score: 0 | 显示更多 |
| Subtask #1 Testcase #8 | 69.488 ms | 4 MB + 208 KB | Accepted | Score: 0 | 显示更多 |
| Subtask #1 Testcase #9 | 69.494 ms | 4 MB + 208 KB | Accepted | Score: 0 | 显示更多 |
| Subtask #1 Testcase #10 | 63.761 ms | 3 MB + 964 KB | Accepted | Score: 0 | 显示更多 |
| Subtask #1 Testcase #11 | 75.348 ms | 4 MB + 556 KB | Accepted | Score: 0 | 显示更多 |
| Subtask #1 Testcase #12 | 75.498 ms | 3 MB + 436 KB | Accepted | Score: 0 | 显示更多 |
| Subtask #1 Testcase #13 | 37.72 us | 48 KB | Accepted | Score: 0 | 显示更多 |