数据得到不合理答案
5 5
1 7 4 0 9 4
8 8 2 4 5 5
#include<bits/stdc++.h>
using namespace std;
using ll=long long;
const int N=1e6+3,P=998244353,G=3,INVG=332748118;
ll fp(ll a,ll b=P-2){ll ans=1;for(;b;b>>=1,a=a*a%P)if(b&1)ans=ans*a%P;return ans;}
int n,m;
vector<ll>a,b;
void NTT(vector<ll>&a,int n,bool typ){
if(n==1)return;
int m=n>>1;
vector<ll>a0(m),a1(m);
for(int i=0;i<m;++i){
a0[i]=a[i<<1];
a1[i]=a[i<<1|1];
}
NTT(a0,m,typ);NTT(a1,m,typ);
ll del=fp(typ?G:INVG,(P-1)/m),at=1;
for(int i=0;i<m;++i){
a[i]=(a0[i]+at*a1[i]%P)%P;
a[i+m]=(a0[i]-at*a1[i]%P+P)%P;
at=at*del%P;
}
}
void INTT(vector<ll>&a,int sz){
NTT(a,sz,0);ll inv=fp(sz);
reverse(&a[0],&a[sz-1]);
for(int i=0;i<=sz;++i)
a[i]=a[i]*inv%P;
}
int main(){
int x,y,z,u,v,w;
ios::sync_with_stdio(0);
cin.tie(0);cout.tie(0);
cin>>n>>m;
int sz=1<<__lg(n+m)+1;
a.resize(sz+3);b.resize(sz+3);
for(int i=0;i<=n;++i)cin>>a[i];
for(int i=0;i<=m;++i)cin>>b[i];
NTT(a,sz,1);NTT(b,sz,1);
for(int i=0;i<=sz;++i)
a[i]=a[i]*b[i]%P;
INTT(a,sz);
for(int i=0;i<=n+m;++i)
printf("%lld ",a[i]);
puts("");
return 0;
}