蒟蒻92分,错最后一个点,求调!
查看原帖
蒟蒻92分,错最后一个点,求调!
895690
gghack_Nythix楼主2022/12/29 20:07

rt

#include <bits/stdc++.h>
#define int long long
using namespace std;
double a[1000005],tmp[1000005];
inline bool check(double x,int n,int m)
{
	memset(tmp,0,sizeof(tmp));
	double s = 1e8 + 5;
	for(int i = 1;i <= n;i ++)
	{
		tmp[i] = tmp[i - 1] + a[i] - x;
		if(i >= m)
		{
			s = min(s,tmp[i - m]);
			if(tmp[i] >= s)
			{
				return true;
			}
		}
	}
	return false;
}
signed main()
{
	int n,m;
	cin >> n >> m;
	for(int i = 1;i <= n;i ++)
	{
		cin >> a[i];
	}
	double l = 1e-7,r = 2000010,mid,ans = 0;
	while(r - l > 1e-7)
	{
		mid = (l + r) / 2;
		if(check(mid,n,m))
		{
			ans = mid;
			l = mid;
		}
		else
		{
			r = mid;
		}
	}
	cout << fixed << setprecision(0) << ans * 1000;
}
2022/12/29 20:07
加载中...