只能对一个点,不过其他九个是WA
查看原帖
只能对一个点,不过其他九个是WA
535356
Forgetful楼主2023/6/22 15:31
#include <iostream>
#include <cstring>
#include <cstdio>
#include <algorithm>
using namespace std;
long long a[1000100],n,m,ax=0;
int read()
{
	int f=1,k=0;
	char c=getchar();
	while(c<'0'||c>'9')
	{
		if(c=='-')
		{
			f=-1;
		}
		c=getchar();
	}
	while(c>='0'&&c<='9')
	{
		k=k*10+c-'0';
		c=getchar();
	}
	return f*k;
}
int ef()
{
	long long l=1,r=ax;
	while(l<r)
	{
		long long ans=0;
		long long mid=(l+r)/2;
		for(long long i=1;i<=n;i++)
		{
			if(a[i]>mid)
			{
				ans+=a[i]-mid;
			}
		}
		if(ans>m)
		{
			l=mid+1;
		}
		else r=mid;
	}
	return l;
}
int main()
{
	n=read();m=read();
	for(long long i=1;i<=n;i++)
	{
		cin>>a[i];
		ax=max(a[i],ax);
	}
	cout<<ef();
}
2023/6/22 15:31
加载中...