10pts求调
查看原帖
10pts求调
1593174
wanjunyu2013楼主2025/8/3 08:49

(2分)

#include <bits/stdc++.h>
using namespace std;
#define int long long
int n, k;
vector<int> a(1e6+1);
bool check(int s) {
    int sum=0;
    int l=s*k;
    for (int num:a) {
        int ad=s-num+1;
        if (ad>0) {
            sum+=ad;
            if (sum>l) {
                return 0;
            }
        }
    }
    return sum <= l;
}
signed main() {
	ios::sync_with_stdio(0);
	cin.tie(0),cout.tie(0);
    cin>>n>>k;
    for (int i=0;i<n;i++) {
        cin>>a[i];
    }
    int l=0,r=LLONG_MAX;
    int ans=0;
    while (l<=r) {
        int mid=l+(r-l)/2;
        if (check(mid)){
            ans=mid;
            l=mid+1;
        } else {
            r=mid-1;
        }
    }
    
    cout<<ans<<endl;
    return 0;
}
2025/8/3 08:49
加载中...