제출 #384298

#제출 시각아이디문제언어결과실행 시간메모리
384298vanicBigger segments (IZhO19_segments)C++14
0 / 100
2 ms364 KiB
#include <iostream>
#include <cmath>
#include <algorithm>
#include <vector>

using namespace std;

const int maxn=5e5+5;

vector < int > ind;
vector < int > val;
int a[maxn];

void siftaj(){
	int i=val.size()-2;
	bool p=1;
	while(p && i>=0){
		p=0;
		while(val[i]+a[ind[i]]<=val[i+1]-a[ind[i]]){
			p=1;
			val[i]+=a[ind[i]];
			val[i+1]-=a[ind[i]];
			ind[i]++;
		}
		i--;
	}
}

int main(){
	ios_base::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
	int n;
	cin >> n;
	for(int i=0; i<n; i++){
		cin >> a[i];
	}
	ind.push_back(1);
	val.push_back(a[0]);
	int sad=0;
	for(int i=1; i<n; i++){
		sad+=a[i];
		if(val.back()<=sad){
			val.push_back(sad);
			ind.push_back(i+1);
			siftaj();
			sad=0;
		}
	}
	cout << val.size() << '\n';
	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...