题解
2025-07-14 14:39:05
发布于:北京
0阅读
0回复
0点赞
#include<bits/stdc++.h>
using namespace std;
int n,k,m,l=1,r=INT_MIN;
int a[114514];
int ren=0;
bool chk(int len) {
int dun=0;
for(int i=1;i<=n;i++) {
dun+=a[i]/len;
}
return dun >=k;
}
int fod(int l,int r) {
int re=0;
while(l<=r) {
int mid = l+r >>1;
if(chk(mid)) {
re=mid;
l=mid+1;
}else{
r=mid-1;
}
}
return re;
}
int main() {
cin >> n >> k;
for(int i=1;i<=n;i++) {
cin >> a[i];
r=max(a[i],r);
}
cout << fod(1,r);
return 0;
}
这里空空如也
有帮助,赞一个