70分求助,能不能看下哪里有问题
查看原帖
70分求助,能不能看下哪里有问题
472695
睡眼惺忪楼主2021/2/4 22:34
#include <stdio.h>
int n,m,a[1000009];
int check(int limit)
{
	int sum=0,i;
	for(i=0;i<n;i++)
	{
		if(limit<a[i])
		{
			sum=sum+a[i]-limit;
		}
	}
	return sum>=m;
}
int main()
{
	int i,max=0;
	scanf("%d %d",&n,&m);
	for(i=0;i<n;i++)
	{
		scanf("%d",&a[i]);
	}
	for(i=0;i<n;i++)
	{
		if(max<a[i])
		{
			max=a[i];
		}
	}
	int l=0,r=max,mid,ans=0;
	while(l<=r)
	{
		mid=(l+r)/2;
		if(check(mid))
		{
           l=mid+1;
		   ans=mid;	
		}
		else
		{
			r=mid-1;
		}
	}
	printf("%d",ans);
	return 0;
}
2021/2/4 22:34
加载中...