#include<cstdio>
#include<cmath>
#pragma GCC optimize("Ofast",3,2,1)
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 | 10.43 us | 36 KB | Accepted | Score: 0 | 显示更多 |
| Subtask #1 Testcase #2 | 66.347 ms | 10 MB + 452 KB | Accepted | Score: 100 | 显示更多 |
| Subtask #1 Testcase #3 | 30.229 ms | 4 MB + 828 KB | Accepted | Score: 0 | 显示更多 |
| Subtask #1 Testcase #4 | 30.352 ms | 4 MB + 816 KB | Accepted | Score: 0 | 显示更多 |
| Subtask #1 Testcase #5 | 11.93 us | 36 KB | Accepted | Score: 0 | 显示更多 |
| Subtask #1 Testcase #6 | 11.51 us | 36 KB | Accepted | Score: 0 | 显示更多 |
| Subtask #1 Testcase #7 | 10.61 us | 36 KB | Accepted | Score: 0 | 显示更多 |
| Subtask #1 Testcase #8 | 60.256 ms | 10 MB + 184 KB | Accepted | Score: 0 | 显示更多 |
| Subtask #1 Testcase #9 | 60.152 ms | 10 MB + 184 KB | Accepted | Score: 0 | 显示更多 |
| Subtask #1 Testcase #10 | 54.14 ms | 9 MB + 940 KB | Accepted | Score: 0 | 显示更多 |
| Subtask #1 Testcase #11 | 66.628 ms | 10 MB + 532 KB | Accepted | Score: 0 | 显示更多 |
| Subtask #1 Testcase #12 | 66.247 ms | 9 MB + 412 KB | Accepted | Score: 0 | 显示更多 |
| Subtask #1 Testcase #13 | 10.26 us | 36 KB | Accepted | Score: 0 | 显示更多 |