Submission #861428

#TimeUsernameProblemLanguageResultExecution timeMemory
861428Halym2007Bigger segments (IZhO19_segments)C++11
13 / 100
1 ms2484 KiB
#include<bits/stdc++.h>
#define ll long long
using namespace std;
const int N = 5e5 + 5;
ll dp[N], p[N], a[N], val[N];

int main () {
//	freopen("input.txt", "r", stdin);
	int n;
	cin >> n;
	for (int i = 1; i <= n; ++i) {
		cin >> a[i];
		p[i] = a[i] + p[i - 1];
	}
	for (int i = 1; i <= n; ++i) {
		int l = 1;
		int r = i;
		int jog = 0;
		while (l <= r) {
			int md = (l + r) / 2;
			if (p[i] - p[md - 1] >= val[md - 1]) {
				jog = md;
				l = md + 1;
			}
			else r = md - 1;
		}
		dp[i] = dp[jog - 1] + 1;
		val[i] = p[i] - p[jog - 1];
	}
	cout << dp[n];
}
#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...