Submission #1335505

#TimeUsernameProblemLanguageResultExecution timeMemory
1335505WarinchaiBigger segments (IZhO19_segments)C++20
37 / 100
1595 ms3448 KiB
#include<bits/stdc++.h>
#define int long long
using namespace std;

int ar[500005];
int mn[500005];
int inf=1e18;
int rans[500005];
int sum[500005];

int32_t main(){
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    int n;cin>>n;
    for(int i=1;i<=n;i++){
        cin>>ar[i];
        sum[i]=sum[i-1]+ar[i];
        mn[i]=inf;
    }
    for(int i=1;i<=n;i++){
        int st=0,en=i-1,ans=0;
        pair<int,int>temp={-inf,-inf};
        for(int j=st;j<=en;j++){
            int m=(st+en)/2;
            if(sum[i]-sum[j]>=mn[j]){
                temp=max(temp,{rans[j]+1,-(sum[i]-sum[j])});
            }
        }
        mn[i]=-temp.second;
        rans[i]=temp.first;
    }
    cout<<rans[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...