Cod sursa(job #3142284)

Utilizator tudtentiu28Tudor Tentiu tudtentiu28 Data 20 iulie 2023 13:59:51
Problema Subsecventa de suma maxima Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.69 kb
#include <iostream>
using namespace std;
const int INF=1e9;
const int NMAX=6000001;
int a[NMAX];
int dp[NMAX];
int start[NMAX];
int main()
{
    freopen("ssm.in","r",stdin);
    freopen("ssm.out","w",stdout);

    int n;
    cin>>n;
    int ans=-INF;
    int startAns,endAns;
    for(int i=1;i<=n;i++)
    {
        if(dp[i-1]+a[i]>=a[i])
        {
            start[i]=start[i-1];
            dp[i]=dp[i-1]+a[i];
        }
        else
        {
            start[i]=i;
            dp[i]=a[i];
        }
        if(ans<dp[i])
        {
            ans=dp[i];
            startAns=start[i];
            endAns=i;
        }
    }
    cout<<ans<<' '<<' '<<endAns<<'\n';
}