能过样例只有10分
查看原帖
能过样例只有10分
884864
akakakkakakakk楼主2024/11/29 11:40
#include<bits/stdc++.h>

using namespace std;
long long a[1000010];
long long n,m;
int main() {

    scanf("%lld%lld",&n,&m);
    long long right =0,left = 0;
    for(long long i=1; i<=n; i++) {
        scanf("%lld",&a[i]);
        right =max(right,a[i]);
    }

    while(left<right) {
        long long mid = (left+right)>>1;
        long long sum=0;
        for(int i=1; i<=n; i++) {
            if(a[i]>mid)sum+=a[i]-mid;
        }
        if(sum<=m) {
            right=mid;
        } else {
            left=mid+1;
        }
    }
    printf("%lld",right);

    return 0;
}
2024/11/29 11:40
加载中...