Submission #1181655

#TimeUsernameProblemLanguageResultExecution timeMemory
1181655NomioBigger segments (IZhO19_segments)C++20
0 / 100
0 ms328 KiB
#include<bits/stdc++.h>
using namespace std;
using ll = long long;
int main() {
	ios::sync_with_stdio(0);
	cin.tie(0);
	int n;
	cin >> n;
	vector<ll> a(n + 1), p(n + 1, 0);
	for(int i = 1; i <= n; i++) {
		cin >> a[i];
	}
	for(int i = 1; i <= n; i++) {
		p[i] = p[i - 1] + a[i];
	}
	int mx = 1;
	for(int i = 1; i <= n; i++) {
		vector<ll> v;
		v.push_back(p[i]);
		int id = i, pid = 0, cnt = 0;
		while(id < n && pid < n && pid < id) {
			if(p.back() < p[id] * 2 - p[pid]) break;
			int x = lower_bound(p.begin(), p.end(), p[id] * 2 - p[pid]) - p.begin();
			pid = id;
			id = x;
			if(p[id] - p[pid] >= v.back()) v.push_back(p[id] - p[pid]);
			cnt++;
		}
		mx = max((int)v.size(), mx);
	}
	cout << mx << '\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...