WA on #3
查看原帖
WA on #3
1427535
DongXD楼主2024/10/25 16:28
#include <bits/stdc++.h>
#include<algorithm>
using namespace std;
#define ll unsigned long long
ll cut(ll wood[],ll n,ll h){
    int ans=0;
    for(int i=0;i<n;i++){
        if(wood[i]>h){
            ans+=wood[i]-h;
        }
    }
    return ans;
}
int main(){
    ll n,m,wood[1000005],min,max;
    cin>>n>>m;
    for(int i=0;i<n;i++){
        cin>>wood[i];
    }
    sort(wood,wood+n);
    min=wood[0];
    max=wood[n-1];
    ll h=(min+max)/2+1;
    while(max-min>3){
        if(cut(wood,n,h)>m){
            min=h;
            h=(min+max)/2;
        }
        else{
            max=h;
            h=(min+max)/2;
        }
    }
    h=max;
    while(cut(wood,n,h)<m) h--;
    if(h<0) h=1;
    cout<<h<<endl;
    return 0;
}
2024/10/25 16:28
加载中...