无力吐槽…
题解见
http://doc.okbase.net/nike0good/archive/124322.html
AC code:
c++
#include <cstdio>
#include <algorithm>
using namespace std;
typedef double llf;
const int N=100010;
int n;
llf a;
llf M[N],S[N],F[N];
int main(){
scanf("%d%lf",&n,&a);
for(int i=1;i<=n;i++){
scanf("%lf",&M[i]);
S[i]=S[i-1]+M[i];
}
for(int i=1;i<=min(1500,n);i++){
int k=(int)(a*i+(1e-6));
for(int j=1;j<=k;j++) F[i]+=M[i]*M[j]/(i-j);
}
for(int i=1501;i<=n;i++){
int k=(int)(a*i),mid=(1+k)>>1;
F[i]=M[i]*S[k]/(i-mid);
}
for(int i=1;i<=n;i++) printf("%lf\n",F[i]);
return 0;
}