#include<iostream>
#include<cstring>
#include<vector>
#define N 10000005
using namespace std;
typedef long long ll;
ll n,k,ans;
ll a[N];
ll l=0,r=100000001;
ll check(ll mid) {
ll cnt=0;
for(ll i=1; i<=n; i++)
cnt+=a[i]/mid;
if(cnt>=k) return 1;
else return 0;
}
signed main() {
cin>>n>>k;
for(ll i=1; i<=n; i++) cin>>a[i];
while(l<=r) {
ll mid=l+r>>1;
if(check(mid)) {
ans=mid;
l=mid+1;
} else r=mid-1;
}
cout<<ans;
return 0;
}
这样子while(l<=r)就会re
但是改成while(l<r)就AC了,不是很理解,有dalao解释一下吗蒟蒻的疑惑