0分求助
查看原帖
0分求助
813578
www_win楼主2024/10/13 09:13
#include <iostream>
using namespace std;
int a[100010], n, m;
bool check(int mid) {
	int sum = 0, ans = 0;
	for(int i = 0; i < n; i++) {
		if(ans + a[i] <= mid) {
			ans += a[i];
		}else {
			sum++;
			ans = a[i];
		}
	}
	if(sum <= m) return true;
	else return false;
}
int main() {
	cin >> n >> m;
	for(int i = 0; i < n; i++) cin >> a[i];
	int l = 0, r = 1e9 + 1;
	while(l < r) {
		int mid = l + r >> 1;
		if(check(mid)) {
			r = mid;
		}else {
			l = mid + 1;
		}
	}
	cout << l;
	return 0;
} 
2024/10/13 09:13
加载中...