43分,求助
查看原帖
43分,求助
263594
寻逍遥2006楼主2021/5/1 11:16
#include <bits/stdc++.h>
using namespace std;
int n,m,i;
double l,r,mid,ans=-1,minn,x[100010],s[100010];
int main()
{
	cin>>n>>m;
	cin>>x[1];
	r=l=x[1];
	for(i=2;i<=n;i++)
	{
		cin>>x[i];
		if(x[i]<l) l=x[i];
		if(x[i]>r) r=x[i];
	}
	while(r-l>1e-5)
	{
		mid=(l+r)/2,ans=-1,minn=x[i]-mid;
	    for(i=1;i<=n;i++)
	        s[i]=s[i-1]+x[i]-mid;
	    for(i=m+1;i<=n;i++)
	    {
		    if(minn>s[i-m]) minn=s[i-m];
		    if(ans<s[i]-minn) ans=s[i]-minn;
	    }
		if(ans>=0) l=mid;
		else r=mid;
	}
	cout<<floor(l*1000);
	return 0;
}
2021/5/1 11:16
加载中...