分享一种不用二分的方法
查看原帖
分享一种不用二分的方法
1413101
RN_GH楼主2024/9/8 17:14

#include <bits/stdc++.h>
using namespace std;
int main() {
    long long n,m;
    cin >> n >> m;
    vector<long long> a(n + 1,0);
    for (int i = 1; i <= n; i++){
        cin >> a[i];
    }
    sort(a.begin(),a.end());
    for (int i = 1; i <= n; i++){
        a[i] += a[i - 1];
    }
    for (int i = n; i >= 1; i--){
        long long sum = a[n] - a[i - 1] - m;
        int len = n - i + 1;
        sum /= len;
        if (sum <= a[i] - a[i - 1] && sum > a[i - 1] - a[i - 2]){
            cout << sum;
            return 0;
        }
    }
    return 0;
}
2024/9/8 17:14
加载中...