70分求调
查看原帖
70分求调
1142439
ZXmax2005楼主2024/9/18 19:21
#include<iostream>
#include<algorithm>

using namespace std;
typedef long long ll;

const int N = 1e6 + 10;
ll n, a[N],big,m;


int main()
{
	scanf("%lld%lld", &n, &m);
	for (int i = 0; i < n; i++) 
	{
	    scanf("%lld", &a[i]);
	    if(a[i] > big) big = a[i];
    }

	int l = 0, r =big;
	int cnt = 0;
	while (l < r)
	{
	    cnt = 0;
		int mid = l + r + 1 >> 1;
		for (int i = n - 1;i >= 0; i--)
		{
			if (a[i] >= mid) cnt += (a[i] - mid);
		}
		if (cnt >= m) l = mid;
		else r = mid - 1;
	}
	cout << r;
	
	system("pause");
	return 0;

}
```
2024/9/18 19:21
加载中...