Submission #952939

#TimeUsernameProblemLanguageResultExecution timeMemory
952939ezzzayBigger segments (IZhO19_segments)C++14
0 / 100
2 ms348 KiB
#include<bits/stdc++.h>
using namespace std;
#define int long long
#define ff frist
#define ss second
#define pb push_back
const int N=505;
int a[N];
int dp[N][N];
int ps[N];
signed main(){
    int ans=0;
    int n;
    cin>>n;
    for(int i=1;i<=n;i++)cin>>a[i];
    for(int i=1;i<=n;i++){
        ps[i]=ps[i-1]+a[i];
    }
    for(int i=1;i<=n;i++)dp[i][1]=1;
    
    for(int i=1;i<=n;i++){
        for(int r=1;r<=i;r++){
            
            for(int l=1;l<r;l++){
                
                if(ps[i]-ps[r-1]>=ps[r-1]-ps[l-1]) {
                    dp[i][r]=max( dp[i][r], dp[r-1][l]+1 );
                }
            }
            
        }
    }
    for(int l=1;l<=n;l++){
        for(int r=1;r<=l;r++){
           // cout<<r<<" : "<<l<< " :: " << dp[r][l]<<endl;
        }
    }
    for(int i=0;i<=n;i++){
        ans=max(ans,dp[n][i]);
    }
    cout<<ans;
}
#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...