Submission #1295605

#TimeUsernameProblemLanguageResultExecution timeMemory
1295605k12_khoiBigger segments (IZhO19_segments)C++17
0 / 100
1 ms580 KiB
#include <bits/stdc++.h>
using namespace std;

#define ll long long
#define pii pair<int,ll>
#define X first
#define Y second

const int N=5e5+5;

int n,x,l;
ll pre[N];
pii dp[N];

int main()
{
    ios_base::sync_with_stdio(NULL);
    cin.tie(NULL); cout.tie(NULL);

    cin >> n;
    pre[0]=0;
    for (int i=1;i<=n;i++)
    {
        cin >> x;
        pre[i]=pre[i-1]+x;
    }

    dp[0]=make_pair(0,0);
    dp[1]=make_pair(1,0);

    l=1;
    for (int i=1;i<=n;i++)
    {
        dp[i]=max(dp[i],dp[i-1]);
        while (l<=n and pre[i]*2-dp[i].Y>pre[l]) l++;

        if (l<=n) dp[l]=max(dp[l],make_pair(dp[i].X+1,pre[i]));
    }

    cout << dp[n].X;
}
#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...