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

运行 ID: 127829

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; }