#include <iostream>
#include<complex>
#include<math.h>
using namespace std;
int main() {
int n;
const double PI=3.14;
cin>>n;
double sign[n];
complex<double> dft[n];
for(int i=0;i<n;i++)
{
cin>>sign[i];
}
complex<double> mat[n][n];
cout<<"Kernel"<<endl;
for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++)
{
mat[i][j]= complex<double> ((cos(2*PI*i*j/n)*10000/10000),-1*(sin(2*PI*i*j/n)*10000/10000));
cout<<mat[i][j].real();
cout<<"+j";
cout<<mat[i][j].imag()<<" ";
}
cout<<endl;
}
for(int i=0;i<n;i++)
{
for(int k=0;k<n;k++)
dft[i]+=complex<double>(mat[i][k].real()*sign[k],mat[i][k].imag()*sign[k]);
}
cout<<"DFT \n";
for(int i=0;i<n;i++){
cout<<dft[i].real();
cout<<"+j";
cout<<dft[i].imag()<<"\n";
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZTxjb21wbGV4PgojaW5jbHVkZTxtYXRoLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgbWFpbigpIHsKCWludCBuOwoJY29uc3QgZG91YmxlIFBJPTMuMTQ7CgljaW4+Pm47Cglkb3VibGUgc2lnbltuXTsKCWNvbXBsZXg8ZG91YmxlPiBkZnRbbl07Cglmb3IoaW50IGk9MDtpPG47aSsrKQoJewoJCWNpbj4+c2lnbltpXTsKCX0KCWNvbXBsZXg8ZG91YmxlPiBtYXRbbl1bbl07Cgljb3V0PDwiS2VybmVsIjw8ZW5kbDsKCWZvcihpbnQgaT0wO2k8bjtpKyspCgl7CgkJZm9yKGludCBqPTA7ajxuO2orKykKCQl7CgkJCW1hdFtpXVtqXT0gY29tcGxleDxkb3VibGU+ICgoY29zKDIqUEkqaSpqL24pKjEwMDAwLzEwMDAwKSwtMSooc2luKDIqUEkqaSpqL24pKjEwMDAwLzEwMDAwKSk7CgkJCWNvdXQ8PG1hdFtpXVtqXS5yZWFsKCk7CgkJCWNvdXQ8PCIraiI7CgkJCWNvdXQ8PG1hdFtpXVtqXS5pbWFnKCk8PCIgIjsKCQl9CgkJY291dDw8ZW5kbDsKCX0KCWZvcihpbnQgaT0wO2k8bjtpKyspCgl7CgkJCWZvcihpbnQgaz0wO2s8bjtrKyspCgkJCWRmdFtpXSs9Y29tcGxleDxkb3VibGU+KG1hdFtpXVtrXS5yZWFsKCkqc2lnbltrXSxtYXRbaV1ba10uaW1hZygpKnNpZ25ba10pOwoJfQoJY291dDw8IkRGVCBcbiI7Cglmb3IoaW50IGk9MDtpPG47aSsrKXsKCWNvdXQ8PGRmdFtpXS5yZWFsKCk7Cgljb3V0PDwiK2oiOwoJY291dDw8ZGZ0W2ldLmltYWcoKTw8IlxuIjsKCX0KCQlyZXR1cm4gMDsKfQ==