80 分qwq
查看原帖
80 分qwq
726139
残阳如血楼主2023/10/28 19:58
#include <iostream>
const int MAXN = 1e5 + 10;

int N, M, l, r, mid, ans, a[MAXN];

bool check(int k) {
	int cnt = 1, sum = 0;
	for (int i = 1; i <= N; ++i) {
		if (sum + a[i] <= k) {
			sum += a[i];
			continue;
		}
		++cnt, sum = a[i];
		if (cnt > M) return false;
	}
	return cnt <= M && sum <= k;
}

int main() {
	std::cin >> N >> M;
	for (int i = 1; i <= N; ++i)
		std::cin >> a[i], r += a[i];
	while (l <= r) {
		mid = (l + r) / 2;
		if (check(mid)) r = mid - 1, ans = mid;
		else l = mid + 1;
	}
	std::cout << ans;
	return 0;
}

WA on #4

2023/10/28 19:58
加载中...