#include <cstdio>
#include <algorithm>
#include <vector>
#include <cmath>
#define UP(i, s, e) for(auto i=s; i!=e; ++i)
namespace m{ // }
constexpr double pi = 3.1415926535897932;
struct CC{
double real, imag;
CC(double r=0, double i=0){ real = r, imag = i; }
CC operator=(CC b){
CC& a = *this;
a.real = b.real, a.imag = b.imag;
return a;
}
CC operator+(CC b){
CC& a = *this;
return CC(a.real+b.real, a.imag+b.imag);
}
CC operator-(CC b){
CC& a = *this;
return CC(a.real-b.real, a.imag-b.imag);
}
CC operator*(CC b){
CC& a = *this;
return CC(a.real*b.real-a.imag*b.imag, a.real*b.imag+a.imag*b.real);
}
};
void change(CC *y, int len){
std::vector<int> rev;
rev.reserve(len);
rev[0] = 0;
UP(i, 1, len){
rev[i] = rev[i>>1] >> 1;
if(i&1) rev[i] |= len>>1;
}
UP(i, 0, len) if(i<rev[i]) std::swap(y[i], y[rev[i]]);
}
void fft(CC *y, int len, int on){
change(y, len);
for(int h=2; h<=len; h<<=1){
CC wn(cos(2*pi/h), on*sin(2*pi/h));
for(int j=0; j<len; j+=h){
CC w(1);
UP(k, j, j+h/2){
CC u = y[k], v = w * y[k+h/2];
y[k] = u+v, y[k+h/2] = u-v;
w = w * wn;
}
}
}
if(on == -1) UP(i, 0, len){
y[i].real /= len;
}
}
CC ia[1<<21], ib[1<<21], ic[1<<21];
int in, im;
void work(){
scanf("%d%d", &in, &im);
UP(i, 0, in+1) scanf("%lf", &ia[i].real);
UP(i, 0, im+1) scanf("%lf", &ib[i].real);
int len = 1;
while(len < in+im+1) len<<=1;
fft(ia, len, 1);
fft(ib, len, 1);
UP(i, 0, len){
ic[i] = ia[i] * ib[i];
}
fft(ic, len, -1);
UP(i, 0, in+im+1){
printf("%d ", (int)(ic[i].real+0.5));
}
}
}
int main(){m::work(); return 0;}
Compilation | N/A | N/A | Compile OK | Score: N/A | 显示更多 |
Subtask #1 Testcase #1 | 10.729 ms | 96 MB + 32 KB | Accepted | Score: 0 | 显示更多 |
Subtask #1 Testcase #2 | 75.973 ms | 98 MB + 460 KB | Accepted | Score: 0 | 显示更多 |
Subtask #1 Testcase #3 | 40.44 ms | 96 MB + 824 KB | Accepted | Score: 100 | 显示更多 |
Subtask #1 Testcase #4 | 40.773 ms | 96 MB + 812 KB | Accepted | Score: 0 | 显示更多 |
Subtask #1 Testcase #5 | 11.081 ms | 96 MB + 32 KB | Accepted | Score: 0 | 显示更多 |
Subtask #1 Testcase #6 | 10.899 ms | 96 MB + 32 KB | Accepted | Score: 0 | 显示更多 |
Subtask #1 Testcase #7 | 11.032 ms | 96 MB + 32 KB | Accepted | Score: 0 | 显示更多 |
Subtask #1 Testcase #8 | 69.131 ms | 98 MB + 192 KB | Accepted | Score: 0 | 显示更多 |
Subtask #1 Testcase #9 | 69.211 ms | 98 MB + 192 KB | Accepted | Score: 0 | 显示更多 |
Subtask #1 Testcase #10 | 63.186 ms | 97 MB + 948 KB | Accepted | Score: 0 | 显示更多 |
Subtask #1 Testcase #11 | 75.734 ms | 98 MB + 540 KB | Accepted | Score: 0 | 显示更多 |
Subtask #1 Testcase #12 | 75.402 ms | 97 MB + 420 KB | Accepted | Score: 0 | 显示更多 |
Subtask #1 Testcase #13 | 11.289 ms | 96 MB + 32 KB | Accepted | Score: 0 | 显示更多 |