#include<bits/stdc++.h>
using namespace std;
const int N=21e5+3,P=998244353;
int n,r[N],a[N],b[N],w[N];
int qp(int a,int b){
int r=1;
for(;b;b>>=1,a=a*1ll*a%P)if(b&1)r=r*1ll*a%P;
return r;
}
void pre(int m){
int i,j,l=-1,g;
for(n=1;n<=m;n<<=1)++l;
for(i=0;i<n;++i)r[i]=(r[i>>1]>>1)|((i&1)<<l);
for(w[j=n>>1]=1,i=j+1,g=qp(3,(P-1)/n);i<n;++i)w[i]=w[i-1]*1ll*g%P;
for(i=j-1;i;--i)w[i]=w[i<<1];
}
void ntt(int*a,bool b=0){
int i,j,k,x,*g,*u,*v;
for(i=0;i<n;++i)if(i<r[i])swap(a[i],a[r[i]]);
for(i=1;i<n;i<<=1)for(j=0;j<n;j+=i<<1)for(k=0,g=w+i,u=a+j,v=u+i;k<i;++k)
x=g[k]*1ll*v[k]%P,v[k]=u[k]<x?u[k]-x+P:u[k]-x,u[k]=(u[k]+=x)<P?u[k]:u[k]-P;
if(b)for(i=0,reverse(a+1,a+n),j=P-(P-1)/n;i<n;++i)a[i]=a[i]*1ll*j%P;
}
int main(){
int m,i;
scanf("%d%d",&n,&m);
for(i=0;i<=n;++i)scanf("%d",a+i);
for(i=0;i<=m;++i)scanf("%d",b+i);
pre(m+=n),ntt(a),ntt(b);
for(i=0;i<n;++i)a[i]=a[i]*1ll*b[i]%P;
ntt(a,1);
for(i=0;i<=m;++i)printf("%d ",a[i]);
return 0;
}
| Compilation | N/A | N/A | Compile OK | Score: N/A | 显示更多 |
| Subtask #1 Testcase #1 | 37.35 us | 52 KB | Accepted | Score: 0 | 显示更多 |
| Subtask #1 Testcase #2 | 55.401 ms | 5 MB + 480 KB | Accepted | Score: 100 | 显示更多 |
| Subtask #1 Testcase #3 | 25.365 ms | 2 MB + 332 KB | Accepted | Score: 0 | 显示更多 |
| Subtask #1 Testcase #4 | 25.394 ms | 2 MB + 320 KB | Accepted | Score: 0 | 显示更多 |
| Subtask #1 Testcase #5 | 39 us | 52 KB | Accepted | Score: 0 | 显示更多 |
| Subtask #1 Testcase #6 | 38.39 us | 52 KB | Accepted | Score: 0 | 显示更多 |
| Subtask #1 Testcase #7 | 37.79 us | 52 KB | Accepted | Score: 0 | 显示更多 |
| Subtask #1 Testcase #8 | 49.737 ms | 5 MB + 212 KB | Accepted | Score: 0 | 显示更多 |
| Subtask #1 Testcase #9 | 49.62 ms | 5 MB + 212 KB | Accepted | Score: 0 | 显示更多 |
| Subtask #1 Testcase #10 | 44.022 ms | 4 MB + 968 KB | Accepted | Score: 0 | 显示更多 |
| Subtask #1 Testcase #11 | 55.686 ms | 5 MB + 560 KB | Accepted | Score: 0 | 显示更多 |
| Subtask #1 Testcase #12 | 56.008 ms | 4 MB + 440 KB | Accepted | Score: 0 | 显示更多 |
| Subtask #1 Testcase #13 | 43.59 us | 80 KB | Runtime Error | Score: -100 | 显示更多 |