P4343 10pts 求助
  • 板块学术版
  • 楼主WD2c0mP
  • 当前回复2
  • 已保存回复2
  • 发布时间2023/1/1 09:53
  • 上次更新2023/10/24 05:56:36
查看原帖
P4343 10pts 求助
780641
WD2c0mP楼主2023/1/1 09:53

P4343 10pts 求助

#include <bits/stdc++.h>
using namespace std;
int L,k,x[114514],sm;
bool check(int m){
	int cnt = 0,sum = 0;
	for (int i = 1;i <= L;i ++){
		sum += x[i];
		if (sum < 0) sum = 0;
		if (sum >= m) cnt ++,sum = 0;
	}
	return cnt == k;
}
int main(){
	ios::sync_with_stdio(false);
	cin.tie(NULL);
	cout.tie(NULL);
	cin >> L >> k;
	for (int i = 1;i <= L;i ++){
		cin >> x[i];
		sm += x[i];
	}
	int l = 1,r = sm,mid,ret1 = -1,ret2 = -1;
	while (l <= r){
		mid = (l + r) >> 1;	
		if (check(mid)) ret1 = mid,r = mid - 1;
		else l = mid + 1;
	} 
	l = 1,r = sm;
	while (l <= r){
		mid = (l + r) >> 1;
		if (check(mid)) ret2 = mid,l = mid + 1;
		else r = mid - 1;
	}
	cout << ret1 << " " << ret2 << endl;
	return 0;
}
2023/1/1 09:53
加载中...