是儿子就来看

牢大  •  18天前


include <bits/stdc++.h>

using namespace std; int a[5005]; int n, m;

int solve(int mid) {

int cnt = 0, sum = 0;
for (int i = 1; i <= n; i++) {
	if (sum + a[i] <= mid)
		sum += a[i];
	else {
		cnt++;
		sum = a[i];
	}
}
return cnt + 1;

}

int main() {

cin >> n >> m;
int left = 0, right = 0;
for (int i = 1; i <= n; i++) {
	cin >> a[i];
	left = max(left, a[i]);
	right += a[i];
}
int ans = 2147483647;
while (left <= right) {
	int mid = (left + right) / 2;
	if (solve(mid) > m) {
		left = mid + 1;

	} else {
		right = mid - 1;
		ans = min(ans, mid);
	}
}
cout << ans;

return 0;

}


评论:

请先登录,才能进行评论