提交时间:2024-01-25 10:32:55

运行 ID: 127831

#include <cstdio> using namespace std; int countSticks(int ans[], int len, int sep) { int total = 0; for (int i = 0; i < len; i++) { total += ans[i] / sep; } return total; } int main() { int n, k, ans[1010], max = 0; scanf("%d%d", &n, &k); for (int i = 0; i < n; i++) { scanf("%d", &ans[i]); if (ans[i] > max) { max = ans[i]; } } int mid, left = 1, right = max; while (left < right) { mid = (left + right) / 2; if (countSticks(ans, n, mid) < k) { right = mid; } else { left = mid + 1; } }; printf("%d\n", --left); return 0; }