P1404 平均数 57分!求调!!
  • 板块学术版
  • 楼主credente
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/8/27 10:20
  • 上次更新2024/8/27 12:33:12
查看原帖
P1404 平均数 57分!求调!!
1285014
credente楼主2024/8/27 10:20

下面代码

#include<bits/stdc++.h>
using namespace std;

long long a[100005];
long long s[100005];

int main()
{
	int n,m;
	cin >> n >> m;
	long long maxn=-0x7fffffff;
	for(int i=1;i<=n;i++)
	{
		cin >> a[i];
		a[i]*=1000;
		maxn=max(maxn,a[i]);
	}
	long long l=1,r=maxn;
	long long mid;
	while(l<=r)
	{
		mid=(l+r)>>1;
		long long minn=0;
		bool f=false;
		for(int i=1;i<=n;i++)
		{
			s[i]=s[i-1]+(a[i]-mid);
			if(i>m)
			{
				minn=min(s[i-m],minn);
				if(minn<s[i])
				{
					f=true;
					break;
				}
			}
		}
		if(f!=0)
			l=mid+1;
		else
			r=mid-1;
	}
	cout << (int)(l+0.1);
    return 0;
}
2024/8/27 10:20
加载中...