https://ac.nowcoder.com/acm/problem/23049

典型的二分答案模板题
二分一个长度,检查答案是否大于等于K即可,若可以增大长度,不可以缩小长度

#include<bits/stdc++.h>
using namespace std;
#define N 200010
int num[N];int k;int n;
int check(int len){
    int cnt=0;
    for(int i=1;i<=n;++i){
        cnt+=num[i]/len;
    }
    return cnt>=k;
}
int main(){
    cin>>n>>k;
    int mx=0;
    for(int i=1;i<=n;++i){
        cin>>num[i];
    }
    int le=1;
    int ri=1e9;
    int ans=0;
    while(ri>=le){
        int mid=le+(ri-le)/2;
        if(check(mid)){
            ans=mid;
            le=mid+1;
        }else {
            ri=mid-1;
        }
    }
    cout<<ans<<endl;
    return 0;
}