https://www.luogu.com.cn/problem/P2440
#include <stdio.h>
#define int long long
int n, k, len[1000000];
signed main() {
int i, left, right, mid;
scanf("%d%d", &n, &k);
for (i = 0; i < n; ++i) {
scanf("%d", &len[i]);
if (right < len[i]) right = len[i];
}
right--;
left = 0;
while (left <= right) {
mid = (left + right + 1) / 2;
int s = 0;
for (int i = 0; i < n; ++i)
s += len[i] / mid;
if (s >= k) left = mid + 1;
else right = mid - 1;
}
printf("%d\n", left - 1);
}