求助,只A了第一个点,其它全wa
查看原帖
求助,只A了第一个点,其它全wa
551373
li1341853575楼主2022/3/5 15:10
#include <iostream>
#include <algorithm>
using namespace std;
bool check(int mid);
int n;
long long m;
int p[1500000];

int bsearch(long long l,long long r)
{
	while(l<r)
	{
		long long mid=l+r>>1;
		if(check(mid))
		r=mid;
		else
		l=mid+1;
	}
	return l;
}


bool check(int mid)
{
	long long sum=0;
	for(int i=0;i<n;i++)
	{
		if(p[i]>mid)
		sum+=(p[i]-mid);
	}
	return sum<=m;
}

int main(void)
{
	cin>>n>>m;
	for(int i=0;i<n;i++)
	scanf("%d",&p[i]);
	sort(p,p+n);
	cout<<bsearch(0,p[n-1]);
	return 0;
}

2022/3/5 15:10
加载中...