最后一个点老是过不去,记录在这,请问能帮我寻找问题么?
代码如下:
#include<bits/stdc++.h>
using namespace std;
const int N=100010;
int a[N],n,k,maxlen;
long long sum;
int check(int x) {
long long s=0;
for(int i=1; i<=n; i++) s += a[i] / x;
return s ;
}
int main() {
cin >> n >> k;
for(int i=1; i<=n; i++) {
cin >> a[i];
maxlen = max(maxlen, a[i]) ;
sum += a[i];
}
if(maxlen < k) cout<< 0 <<endl;
else {
int l = 1, r = maxlen;
while(l<r) {
int mid = l+r+1>>1;
if(check(mid)>=k) l = mid;
else r = mid - 1;
}
cout<< l <<endl;
}
return 0;
}