题解
#include <bits/stdc++.h>
using namespace std;
long long n,k,arr[1000010],l = 0,r,cnt;
bool abc(long long mid)
{
long long num = 0;
for (int i = 1; i <= n; i++)
{
num += arr[i] / mid;
}
return num >= k;
}
int main()
{
cin >> n >> k;
int max = -1;
for (long long i = 1; i <= n; i++)
{
cin >> arr[i];
if (arr[i] > max)
{
max = arr[i];
}
}
r = max;
while (l <= r)
{
long long mid = (l + r) / 2;
if (mid == 0)
{
cout << cnt;
return 0;
}
if (abc(mid))
{
cnt = mid;
l = mid + 1;
}
else
{
r = mid - 1;
}
}
cout << cnt;
return 0;
}