求助
查看原帖
求助
1252609
jinitaimei11楼主2024/12/22 11:36

改AC就关注,AC1个点,TLE9个点

#include <bits/stdc++.h>
using namespace std;
long long M,N,H[1000010];
long long countsum(long long midd){
    long long sum = 0;
    for(int i = 1;i<=N;i++){
            if(H[i]>midd) sum+=H[i]-midd;
    }
    return sum;
}
int main(){
    cin >> N >> M;
    for(int i = 1;i <= N;i++){
        cin >> H[i];
    }
    long long maxx,minn,midd,sum;
    sort(H+1,H+N+1);
    minn = H[0];
    maxx = H[N];
    while(1){
        midd = minn + (maxx-minn) / 2;
        sum=countsum(midd);
        if(sum == M){
            cout << midd;
            return 0;
        }else if(sum < M){
            maxx = midd;
        }else{
            minn = midd;
        }
    }
}

救救蒟蒻吧!!!

2024/12/22 11:36
加载中...