Submission #1166376

#TimeUsernameProblemLanguageResultExecution timeMemory
1166376DangKhoizzzzBigger segments (IZhO19_segments)C++20
In queue
0 ms0 KiB
#include <bits/stdc++.h>
#define int long long
#define fi first
#define se second

using namespace std;
typedef pair<int,int> pii;

const int maxn = 1e5 + 7;

int n , a[maxn];
pair <int ,int> f[maxn];


void solve()
{
    cin >> n;
    for(int i = 1; i <= n; i++) cin >> a[i];

    f[n+1].fi = 0;
    f[n+1].se = 0;

    for(int i = n; i > 0; i--)
    {
        int sum = 0ll;

        for(int j = i; j <= n; j++)
        {
            sum += a[j];

            if(sum >= f[j+1].se)
            {
                if(f[i].fi < f[j+1].fi + 1)
                {
                    f[i].fi = f[j+1].fi + 1;
                    f[i].se = sum;
                }
                break;
            }
        }
    }
    cout << f[1].fi << '\n';
}


signed main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(0); cout.tie(0);
    solve();
    return 0;
}