只过第一个,求助
查看原帖
只过第一个,求助
415564
Yichuyu楼主2021/10/11 20:06
#include<bits/stdc++.h>
using namespace std;
long long n,m,a[10000010],maxn;
long long check(int x)
{
	int sum=0;
	for(long long i=1;i<=n;i++) 
	  if(a[i]-x>0)
	    sum+=a[i]-x;
	return sum;
}
int main()
{
	cin>>n>>m;
	for(long long i=1;i<=n;i++) 
	{
		cin>>a[i];
		if(a[i]>maxn) maxn=a[i];
	}
    
	long long l=0,r=maxn;
	while(l<=r)
	{
		long long mid=(l+r)/2;
		if(check(mid)>m) l=mid+1;
		else r=mid-1;
	}
	cout<<l;
	return 0;
}

样例两个都过了,但只过第一组数据是为什么啊?求大佬指点

2021/10/11 20:06
加载中...