Submission #1335682

#TimeUsernameProblemLanguageResultExecution timeMemory
1335682nguyenkhangninh99Bigger segments (IZhO19_segments)C++20
100 / 100
66 ms12160 KiB
#include<bits/stdc++.h>
using namespace std;
 
#define int long long
const int maxn = 5e5 + 5;
int a[maxn];
pair<int, int> f[maxn];
signed main(){
    ios_base::sync_with_stdio(false);
    cin.tie(0); cout.tie(0);
 
    int n; cin >> n;
    for(int i = 1; i <= n; i++) cin >> a[i];
    for(int i = 1; i <= n; i++) a[i] += a[i - 1];
    f[1] = {1, 0}; 
    for(int i = 1; i <= n; i++){
        f[i] = max(f[i], f[i - 1]);
        int j = lower_bound(a + 1, a + 1 + n, a[i] * 2 - f[i].second) - a;
        f[j] = max(f[j], {f[i].first + 1, a[i]});
    }    
    cout << f[n].first;
}
#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...