就对第一个检查点十分,问题出在哪呢,求求求求T T
查看原帖
就对第一个检查点十分,问题出在哪呢,求求求求T T
1324382
Alizarin楼主2024/11/5 21:22
#include<bits/stdc++.h>
using namespace std;
int main(){
	long long n,m;
	cin >> n >> m;
	long long a[n + 100];
	long long mx = 0;
	for(int i = 1;i <= n;i++){
		cin >> a[i];
		mx = max(mx,a[i]);
	}
	long long l = 1;
	long long r = mx;
	while(l < r){
		long long mid = l + r >> 1;
		long long total = 0;
		for(int i = 1;i <= n;i++){
			if(a[i] > mid)
				total += (a[i] - mid);
		}
		if(total > m)
			l = mid + 1;
		else 
			r = mid;
	}
	cout << l;
	return 0;
}
2024/11/5 21:22
加载中...