显示代码纯文本
#include<cstdio>
const int maxn=800050;
double v[maxn];
double f1[maxn],f2[maxn];
double max(double a,double b){
return a>b?a:b;
}
int main(){
freopen("neko.in","r",stdin);
freopen("neko.out","w",stdout);
int n;scanf("%d",&n);
for(int i=1;i<=n;++i){
scanf("%lf",v+i);
}
for(int i=1;i<=n;++i){
f1[i]=f2[i-1]+v[i]*v[i];
f2[i]=max(f1[i-1],max(f2[i-1]+v[i],f2[i-1]));
}
printf("%.4lf",max(f1[n],f2[n]));
fclose(stdin);fclose(stdout);
return 0;
}
/*
10
-12 327 0.26 -0.12 0.22 65 20 0.11 0 -1 12
*/