写了一遍但不能输出,TLE,看了一点题解感觉思路一样,但是??悬赏关注
查看原帖
写了一遍但不能输出,TLE,看了一点题解感觉思路一样,但是??悬赏关注
1034242
RingTouSou楼主2023/10/26 19:37
#include<bits/stdc++.h>
using namespace std;
using ll=long long;
ll n,m;
const int N=1000010;
ll a[N];

bool check(int x)
{
	ll ans=0;
	for(int i=1;i<=n;++i)
	{
		if(a[i]>=x)
		{
			ans+= a[i]-x;
		}
		if(ans>=m)
	{
		return true;
	}
	}
	return false;	
}

int main()
{
	cin>>n>>m;
	ll r=0;
	for(int i=1;i<=n;++i)
	{
		cin>>a[i];
		if(a[i]>r) r=a[i];
	}
	ll l=0;
	while(l+1<r)
	{
		ll mid=(l+r)>>2;
		if(check(mid))
		{
			l=mid;
		} 
		else
		{
			r=mid;
		}
	}
	cout<<l<<endl;
	return 0;
}
2023/10/26 19:37
加载中...