Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
127127 | 廖悦扬 | 花费 | C++ | 通过 | 100 | 0 MS | 252 KB | 648 | 2024-01-25 07:57:26 |
#include <bits/stdc++.h> using namespace std; int a[1005]; int n, m, s; bool check(int sum) { int id = 1, tot = 0; for (int i=1; i<=n; i++) { if (sum-tot >= a[i]) tot += a[i]; else if (a[i] > sum) return false; else { id++; if (id > m) return false; tot = a[i]; } } return true; } signed main() { scanf("%d%d", &n, &m); for (int i=1; i<=n; i++) scanf("%d", &a[i]), s += a[i]; int l = 1, r = s; while (l < r) { int mid = l + r >> 1; if (!check(mid)) { l = mid + 1; } else r = mid; } printf("%d", l); return 0; }