wuzhexu @ 2024-11-25 21:57:10
感谢大佬们的纠正……!
#include<bits/stdc++.h>
using namespace std;
#define int long long
int n,k,s=INT_MAX;
int dis[100000010];
int ans=0;
int l,r;
bool check(int x){
int cnt=0;
for(int i=1;i<=n;i++){
cnt+=dis[i]/x;
}
if(cnt>k) return 1;
return 0;
}
int find(int l,int r){
if(l>r) return ans;
int mid=l+(r-l)/2;
if(check(mid)){
ans=mid;
return find(mid+1,r);
}
else{
return find(l,mid-1);
}
}
signed main(){
cin>>n>>k;
for(int i=1;i<=n;i++){
cin>>dis[i];
s=min(s,dis[i]);
}
int l=1;
int r=s;
cout<<find(l,r)<<endl;
return 0;
}