#include <bits/stdc++.h>
using namespace std;
int n,k,a[100010],l,r=100000010,mid,ans;
bool check(int x)
{
long long sum=0;
for (int i=1; i<=n; i++)
{
sum+=a[i]/x;
}
return sum>=k;
}
int main()
{
cin>>n>>k;
for (int i=1; i<=n; i++)
{
cin>>a[n];
}
while (l<=r)
{
mid=l+(r-l)/2;
if (check(mid))
{
ans=mid;
l=mid+1;
}
else
{
r=mid-1;
}
//cout<<l<<" "<<mid<<" "<<r<<endl;
}
cout<<ans;
return 0;
}
其中,二分变量 l mid r 经检查正确。