Submission #171378

#TimeUsernameProblemLanguageResultExecution timeMemory
171378donentsetoBigger segments (IZhO19_segments)C++14
100 / 100
124 ms13176 KiB
#include <bits/stdc++.h>
using namespace std;
long long n, a [500005], b [500005];
int main (){

    ios::sync_with_stdio (false);
    cin.tie (0);

    cin >> n;
    for (int i = 1; i <= n; i ++){
        cin >> a [i];
        a [i] += a [i - 1];
    }
    for (int i = 1; i <= n; i ++){
        b [i] = max (b [i - 1], b [i]);
        long long x = a [i] - a [b [i]];
        int idx = lower_bound (a, a + n + 1, a [i] + x) - a;
        b [idx] = i;
    }
    int ans = 0;
    for (int i = n; i > 0; i = b [i]) ans ++;
    cout << ans << '\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...