Submission #842659

#TimeUsernameProblemLanguageResultExecution timeMemory
842659PacybwoahBigger segments (IZhO19_segments)C++17
100 / 100
69 ms16980 KiB
#include<iostream>
#include<vector>
#include<algorithm>
#define ll long long
using namespace std;
int main(){
    ios::sync_with_stdio(false);
    cin.tie(0);
    int n;
    cin>>n;
    vector<ll> vec(n+1),pre(n+1);
    for(int i=1;i<=n;i++) cin>>vec[i];
    for(int i=1;i<=n;i++) pre[i]=pre[i-1]+vec[i];
    vector<int> dp(n+1),from(n+1);
    for(int i=1;i<=n;i++){
        from[i]=max(from[i],from[i-1]);
        dp[i]=dp[from[i]]+1;
        auto iter=lower_bound(pre.begin(),pre.end(),pre[i]*2-pre[from[i]]);
        from[iter-pre.begin()]=max(from[iter-pre.begin()],i);
    }
    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...