记录编号 |
92897 |
评测结果 |
AAAAAAAAAA |
题目名称 |
帮忙 |
最终得分 |
100 |
用户昵称 |
Chenyao2333 |
是否通过 |
通过 |
代码语言 |
C++ |
运行时间 |
0.347 s |
提交时间 |
2014-03-23 13:40:14 |
内存使用 |
1.46 MiB |
显示代码纯文本
#include<stdio.h>
#include<iostream>
#include<algorithm>
#include<math.h>
const int MAXN=100000+10;
using namespace std;
int sum[MAXN]={0};
double num[MAXN]={0};
int main(){
freopen("helpz.in","r",stdin);
freopen("helpz.out","w",stdout);
int m,k;
scanf("%d %d",&m,&k);
for(int i=1;i<=m;i++){
scanf("%d",&sum[i]);
sum[i]+=sum[i-1];
}
double left,right;
left=0;right=2000000000;
while(fabs(right-left)>=0.000001){
double mid=(left+right)/2;
for(int i=1;i<=m;i++){
num[i]=sum[i]-i*mid;
}
double min_n=2000000000;
double ans=num[k];
for(int i=k+1;i<=m;i++){
min_n=min(min_n,num[i-k]);
ans=max(ans,num[i]-min_n);
}
if(ans>0)left=mid;
else right=mid;
}
int ans_=right*1000;
printf("%d",ans_);
return 0;
}