记录编号 92676 评测结果 AAAAAAAAAA
题目名称 帮忙 最终得分 100
用户昵称 Gravatarbigmingod 是否通过 通过
代码语言 C++ 运行时间 0.366 s
提交时间 2014-03-21 22:25:28 内存使用 1.82 MiB
显示代码纯文本
#include<cstdio>
#include<cstdlib>
#include<cmath>
using namespace std;
double ans;
double a[100001],b[100001];
int n,m;
bool ok(double x)
{
	int i;
	double min=0;
	for(i=1;i<=n;i++) b[i]=b[i-1]+a[i]-x;
	if(b[m]>=0) return true;
	for(i=m+1;i<=n;i++) 
	{
		if(b[i-m]<min) min=b[i-m];
		if(b[i]-min>=0) return true;
	}
	return false;
}
double find(double l,double r)
{
	if(r-l<=0.00001) return l;
	double mid=(l+r)/2.0;
	if(ok(mid)) return find(mid,r); else return find(l,mid);
}
int main()
{
	freopen("helpz.in","r",stdin);
	freopen("helpz.out","w",stdout);
	int i;
	scanf("%d%d",&n,&m);
	for(i=1;i<=n;i++) scanf("%lf",&a[i]);
	ans=find(0,200000000);
	ans=ans*1000;
	printf("%0.0lf",floor(ans));
	return 0;
}