记录编号 92897 评测结果 AAAAAAAAAA
题目名称 帮忙 最终得分 100
用户昵称 GravatarChenyao2333 是否通过 通过
代码语言 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;
}