求助!为什么四个wa?
查看原帖
求助!为什么四个wa?
339978
大白菜ac楼主2020/5/22 17:27
#include <iostream>
using namespace std;
int n, m;
bool check(int mid, int* x) {
	int count = 0, sum = 0;
	for (int i = 1; i <= n; i++) {
		sum += x[i];
		if (sum >= mid) {
			if (sum > mid)
				i--;
			count++; sum = 0;
		}
		if (count > m)
			return false;
	}
	return true;
}

int main() {
	cin >> n >> m;
	int* x = new int[n + 1];
	long right = 0, left = 0;
	for (int i = 1; i <= n; i++) {
		cin >> x[i];
		/*if (x[i] > left)
			left = x[i];*/
		right += x[i];
	}
	if (n == 1) {
		cout << right; return 0;
	}
	while (left+1 < right) {
		long mid = (left + right) / 2;
		if (check(mid, x))
			right = mid;
		else
			left = mid;
	}
	cout << right;
	return 0;
}
2020/5/22 17:27
加载中...