Submission #869072

#TimeUsernameProblemLanguageResultExecution timeMemory
86907212345678Bigger segments (IZhO19_segments)C++17
27 / 100
1575 ms71004 KiB
#include <bits/stdc++.h>

using namespace std;

#define ll long long

const int nx=3e3+5;
ll dp[nx][nx], a[nx], qs[nx], n;

int main()
{
    cin.tie(NULL)->sync_with_stdio(false);
    cin>>n;
    for (int i=1; i<=n; i++) cin>>a[i], qs[i]=qs[i-1]+a[i];
    for (int i=0; i<=n; i++) for (int j=0; j<=n; j++) dp[i][j]=LLONG_MAX;
    dp[0][0]=0;
    for (int i=1; i<=n; i++)
    {
        for (int j=1; j<=n; j++)
        {
            for (int k=i; k>=1; k--)
            {
                if (qs[i]-qs[k-1]>=dp[k-1][j-1])
                {
                    dp[i][j]=qs[i]-qs[k-1];
                    //cout<<i<<' '<<j<<' '<<dp[i][j]<<'\n';
                    break;
                }
            }
        }
    }
    for (int i=n; i>=0; i--)
    {
        if (dp[n][i]!=LLONG_MAX)
        {
            cout<<i;
            return 0;
        }
    }
}
#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...