为啥UKE
查看原帖
为啥UKE
1048576
New_Void楼主2025/1/12 16:09
#include <bits/stdc++.h>
using namespace std;
const int N=2e5+10;
long long a[N];
int n,k;
bool check(long long x){ //假设能形成x个项目
    long long sum=x*k; //需要的人数
    long long cnt=0;
    for (int i=1;i<=n;i++){
        cnt+=min(a[i],x);
    }
    return cnt>=sum;
}
int main(){
    cin>>n>>k;
    long long t=0;
    for (int i=1;i<=n;i++){
        cin>>a[i];
        t+=a[i];
    }
    long long l=1,r=t/k;
    long long mid=0;
    long long ans=0;
    while (l<=r){
        mid=l+(r-l)/2;
        if (check(mid)){
            ans=mid;
            l=mid+1;
        }
        else{
            r=mid-1;
        }
    }
    cout<<ans<<endl;
    return 0;
}
2025/1/12 16:09
加载中...