Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
127831 | 梁思宸 | 切割金属棍 | C++ | 解答错误 | 0 | 0 MS | 188 KB | 710 | 2024-01-25 10:32:55 |
#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; }