70分 求大佬调😭😭😭
查看原帖
70分 求大佬调😭😭😭
1468080
_1234y61楼主2024/11/24 18:38
#include<iostream>
using namespace std;
void sort(int a[],int l,int r)
{

	if(l>=r)
	{
		return ;
	}
	int x=a[l],i=l-1,j=r+1;
	while(i<j)
	{
		do i++; while(a[i]<x);
		do j--; while(a[j]>x);
		if(i<j) swap(a[i],a[j]);
	}
	sort(a,l,j);
	sort(a,j+1,r);
}
int shu(int a[],int n,int x)
{
	int sum=0;
	for(int i=0;i<n;i++)
	{
		if(a[i]>x)
		{
			sum+=a[i]-x;
		}
	}
	return sum;
}
int main()
{
	int n,m;
	scanf("%d %d",&n,&m);
	int a[n];
	for(int i=0;i<n;i++)
	{
		scanf("%d",&a[i]);
	}
    sort(a,0,n-1);
	int l=0;
	int r=a[n-1];
	int ret=0;
	while(l<=r)
	{
		int mid=(r+l)/2;
		if(shu(a,n,mid)>=m)
		{
			ret=mid;
			l=mid+1;
		}else 
		{
			r=mid-1;
		}
	}
	printf("%d",ret);
	
	return 0;
}
2024/11/24 18:38
加载中...