先DFT再IDFT
struct Com
{
double x,y;
Com(double _x=0,double _y=0){x=_x,y=_y;}
Com operator + (const Com &t) const{return Com(x+t.x,y+t.y);}
Com operator - (const Com &t) const{return Com(x-t.x,y-t.y);}
Com operator * (const Com &t) const{return Com(x*t.x-y*t.y,x*t.y+y*t.x);}
};
const double pi=acos(-1);
int BIT,R[MAXN],lsn;
void fft(Com *a,int n,int inv)
{
if(lsn!=n&&(lsn=n))
for(int i=0;i<n;i++)R[i]=(R[i>>1]>>1)|((i&1)<<(BIT-1));
for(int i=0;i<n;i++)if(i<R[i])std::swap(a[i],a[R[i]]);
for(int i=1;i<n;i<<=1)
{
Com mi(cos(pi/i),sin(pi/i)*inv);
for(int j=0;j<n;j+=(i<<1))
{
Com x(1,0);
for(int k=0;k<i;k++,x=x*mi)
{
Com t1=a[j+k],t2=x*a[j+k+i];
a[j+k]=t1+t2,a[j+k+i]=t1-t2;
}
}
}
if(inv==-1)for(int i=0;i<n;i++)a[i].x/=n;
}
double v[MAXN];
int n,m;
Com a[MAXN],b[MAXN],c[MAXN],d[MAXN];
int main()
{
cin>>n;n--;
for(int i=0;i<=n;i++)scanf("%lf",&v[i]);
for(int i=0;i<=n;i++)a[i].x=v[i];
for(int i=1;i<=n;i++)b[i].x=1.0/i/i;
for(int i=0;i<=n;i++)c[i].x=v[n-i];
m=2*n-1;for(n=1;n<m;n<<=1,BIT++);
fft(a,n,1),fft(b,n,1),fft(c,n,1);
for(int i=0;i<n;i++)a[i]=a[i]*b[i],b[i]=b[i]*c[i];
fft(a,n,-1),fft(b,n,-1);
for(int i=0;i<=m/2;i++)
printf("%.10f\n",a[i].x-b[m/2-i].x);
return 0;
}