返回题解分享
讨论 / 题解分享/ 帖子详情

砍树 - 题解

#include <bits/stdc++.h>
using namespace std;
const int N=1e6+10;
int n,m;
int a[N];

int main(){
    cin>>n>>m;
    for(int i=1;i<=n;i++){
        cin>>a[i];
    }
    int l=0,r=2e9;
    while(l<r){
        int mid=(l+r+1)/2;
        long long sum=0;
        for(int i=1;i<=n;i++){
            if(a[i]-mid>0) sum+=a[i]-mid;
        }
        if(sum>=m) l=mid;
        else r=mid-1;
    }
    cout<<l<<endl;
}
0 回复 0 转发 0 喜欢 11 阅读
回复 (0)
默认 最新
暂无回复,快来抢沙发!