为啥就过了第一个样例,只有十分
查看原帖
为啥就过了第一个样例,只有十分
1068867
ll12313123123楼主2024/1/27 21:59
using namespace std;
const int N=1000010;
long long a[N],n,m;
long long sum;
int check(int mid)
{
	sum=0;
	for(long long i=n;i>=1;i--)
	{
		if(mid>=a[i]) break;
		sum+=a[i]-mid;
	}
	if(sum<=m)
	return 1;
	else return 0;
}
int main()
{
	cin>>n>>m;
	long long sum=0;
	for(long long i=1;i<=n;i++)
	{
		cin>>a[i];
	}
	sort(a+1,a+n+1);
	long long l=0,r=a[n];
	while(l<r)
	{
		long long mid=l+r>>1;
		
		if(check(mid)) r=mid;
		else l=mid+1;
	}
	cout<<l;
	return 0;
}```
2024/1/27 21:59
加载中...