제출 #210181

#제출 시각아이디문제언어결과실행 시간메모리
210181super_j6Bigger segments (IZhO19_segments)C++14
0 / 100
5 ms380 KiB
#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std;
#define endl '\n'
#define pi pair<int, int>

const int maxn = 100000;
int n;
long long a[maxn], sum[maxn];

int solve(long long x){
	long long ret = 1, s = 0;
	x = sum[x];
	for(int i = 0; i < n; i++){
		if(s >= x){
			x = s;
			s = 0;
			ret++;
		}
		s += a[i];
	}
	return ret -= (s < x);
}

int main(){
	ios::sync_with_stdio(false);
	cin.tie(NULL);
	
	cin >> n;
	
	for(int i = 0; i < n; i++){
		cin >> a[i];
		sum[i] = a[i] + (i ? sum[i - 1] : 0);
	} 
	
	int l = 0, r = n;
	while(r - l > 1){
		int mid = (l + r) / 2;
		if(solve(mid - 1) < solve(mid)) l = mid;
		else r = mid;
	}
	
	cout << solve(l) << endl;

	return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...