Submission #842692

#TimeUsernameProblemLanguageResultExecution timeMemory
842692adaawfBigger segments (IZhO19_segments)C++14
100 / 100
66 ms16212 KiB
#include <iostream>
using namespace std;
long long int a[500005], c[500005], d[500005], res[500005];
int main() {
    ios_base::sync_with_stdio(0);
    cin.tie(0); cout.tie(0);
    int n;
    cin >> n;
    for (int i = 1; i <= n; i++) {
        cin >> a[i];
        c[i] = c[i - 1] + a[i];
    }
    for (int i = 1; i <= n; i++) {
        d[i] = max(d[i], d[i - 1]);
        res[i] = res[d[i]] + 1;
        int h = lower_bound(c + 1, c + n + 1, c[i] * 2 - c[d[i]]) - c;
        if (h <= n) d[h] = i;
    }
    cout << res[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...