#include<cstdio>
#include<cmath>
const double PI=acos(-1);
const int N=262151;
struct C{
double x,y;
inline C operator+(C a)const{return{x+a.x,y+a.y};}
inline C operator-(C a)const{return{x-a.x,y-a.y};}
inline C operator*(C a)const{return{x*a.x-y*a.y,x*a.y+y*a.x};}
}a[N],b[N];
int n,r[N];
void fft(C*a,int b){
C u,v,x,y;
int i,j,k,l,p;
for(i=0;i<n;++i)if(i<r[i])u=a[i],a[i]=a[r[i]],a[r[i]]=u;
for(i=1;i<n;i<<=1)
for(u={cos(PI/i),sin(PI/i)*b},j=0,l=i<<1;j<n;j+=l)
for(v={1,0},k=j,p=j+i;k<p;++k,v=v*u)
x=a[k],y=v*a[i+k],a[k]=x+y,a[i+k]=x-y;
}
int main(){
int m,i,l=-1;
scanf("%d%d",&n,&m);
for(i=0;i<=n;++i)scanf("%lf",&a[i].x);
for(i=0;i<=m;++i)scanf("%lf",&b[i].x);
for(m+=n,n=1;n<=m;n<<=1)++l;
for(i=0;i<n;++i)r[i]=(r[i>>1]>>1)|((i&1)<<l);
fft(a,1),fft(b,1);
for(i=0;i<n;++i)a[i]=a[i]*b[i];
fft(a,-1);
for(i=0;i<=m;++i)printf("%d ",int(a[i].x/n+0.5));
return 0;
}
| Compilation | N/A | N/A | Compile OK | Score: N/A | 显示更多 |
| Subtask #1 Testcase #1 | 11.04 us | 36 KB | Accepted | Score: 0 | 显示更多 |
| Subtask #1 Testcase #2 | 64.959 ms | 10 MB + 452 KB | Accepted | Score: 100 | 显示更多 |
| Subtask #1 Testcase #3 | 29.587 ms | 4 MB + 828 KB | Accepted | Score: 0 | 显示更多 |
| Subtask #1 Testcase #4 | 29.568 ms | 4 MB + 816 KB | Accepted | Score: 0 | 显示更多 |
| Subtask #1 Testcase #5 | 12.38 us | 36 KB | Accepted | Score: 0 | 显示更多 |
| Subtask #1 Testcase #6 | 11.61 us | 36 KB | Accepted | Score: 0 | 显示更多 |
| Subtask #1 Testcase #7 | 11.56 us | 36 KB | Accepted | Score: 0 | 显示更多 |
| Subtask #1 Testcase #8 | 58.926 ms | 10 MB + 184 KB | Accepted | Score: 0 | 显示更多 |
| Subtask #1 Testcase #9 | 58.842 ms | 10 MB + 184 KB | Accepted | Score: 0 | 显示更多 |
| Subtask #1 Testcase #10 | 52.78 ms | 9 MB + 940 KB | Accepted | Score: 0 | 显示更多 |
| Subtask #1 Testcase #11 | 65.14 ms | 10 MB + 532 KB | Accepted | Score: 0 | 显示更多 |
| Subtask #1 Testcase #12 | 65.139 ms | 9 MB + 412 KB | Accepted | Score: 0 | 显示更多 |
| Subtask #1 Testcase #13 | 10.41 us | 36 KB | Accepted | Score: 0 | 显示更多 |