求助!为啥70分(
查看原帖
求助!为啥70分(
744070
qyf1374478722楼主2022/9/22 14:00
#include<bits/stdc++.h>
using namespace std;
int a[1000002];
int maxs;
int n,m;
bool find(int x)
{
	int suma=0;
	for(int i=1;i<=n;i++)
	{
		if(a[i]>x)
			suma+=a[i]-x;
	}
	return m<=suma;
}
int main()
{
	cin>>n>>m;
	for(int i=1;i<=n;i++)
	{
		cin>>a[i];
		if(a[i]>maxs)
		    maxs=a[i];
	}
	int l=1,r=maxs,mid;
	while(l<r)
	{
		mid=l+(r-l)/2;
		if(find(mid))//mid超了,应该变高 
		{
			l=mid+1;
		}
		else
		{
			r=mid;
		}
	}
	cout<<l-1;
}
2022/9/22 14:00
加载中...