#include<bits/stdc++.h>
using namespace std;
const int N=4e6+5;
const double PI=acos(-1);
int n,m,up;
complex<double> a[N],b[N];
inline void solve(const int n,complex<double> *a,const int op){
if(n==1) return;
int mid=(n>>1);
complex<double> a0[mid],a1[mid];
for(int i=0;i<mid;++i) a0[i]=a[i<<1],a1[i]=a[i<<1|1];
solve(mid,a0,op),solve(mid,a1,op);
for(int i=0;i<mid;++i){
complex<double> e(cos(op*i*2*PI/n),sin(op*i*2*PI/n));
a[i]=a0[i]+e*a1[i];
a[i+mid]=a0[i]-e*a1[i];
}
}
signed main(){
ios::sync_with_stdio(false);
cin.tie(0),cout.tie(0);
cin>>n>>m,++n,++m;
for(int i=0,x;i<n;++i) cin>>x,a[i].real(x);
for(int i=0,x;i<m;++i) cin>>x,b[i].real(x);
up=1;
while(up<n+m-1) up<<=1;
solve(up,a,1),solve(up,b,1);
for(int i=0;i<up;++i) a[i]*=b[i];
solve(up,a,-1);
for(int i=0;i<n+m-1;++i) cout<<int((a[i].real()+0.5+1e-6)/up)<<' ';//AC
cout<<endl;
return 0;
}
#include<bits/stdc++.h>
using namespace std;
const int N=4e6+5;
const double PI=acos(-1);
int n,m,up;
complex<double> a[N],b[N];
inline void solve(const int n,complex<double> *a,const int op){
if(n==1) return;
int mid=(n>>1);
complex<double> a0[mid],a1[mid];
for(int i=0;i<mid;++i) a0[i]=a[i<<1],a1[i]=a[i<<1|1];
solve(mid,a0,op),solve(mid,a1,op);
for(int i=0;i<mid;++i){
complex<double> e(cos(op*i*2*PI/n),sin(op*i*2*PI/n));
a[i]=a0[i]+e*a1[i];
a[i+mid]=a0[i]-e*a1[i];
}
}
signed main(){
ios::sync_with_stdio(false);
cin.tie(0),cout.tie(0);
cin>>n>>m,++n,++m;
for(int i=0,x;i<n;++i) cin>>x,a[i].real(x);
for(int i=0,x;i<m;++i) cin>>x,b[i].real(x);
up=1;
while(up<n+m-1) up<<=1;
solve(up,a,1),solve(up,b,1);
for(int i=0;i<up;++i) a[i]*=b[i];
solve(up,a,-1);
for(int i=0;i<n+m-1;++i) cout<<fixed<<setprecision(0)<<fabs(a[i].real())/up<<' ';//TLE
cout<<endl;
return 0;
}
只有输出不同。