Cod sursa(job #2686160)

Utilizator tudor10Serban Tudor Alexandru tudor10 Data 18 decembrie 2020 16:52:40
Problema Subsecventa de suma maxima Scor 60
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.87 kb
#include <fstream>

using namespace std;
int n,i;
int dp[6000010],v[6000010];
int first,last;
int ft,lt;
int summax;

ifstream cin("ssm.in");
ofstream cout("ssm.out");
int main()
{
    cin>>n;
    for(i=1;i<=n;i++)
    {
        cin>>v[i];
    }
    dp[1]=v[1];
    first=1;
    for(i=2;i<=n;i++)
    {
        if(dp[i-1]+v[i]>=0)
        {
            dp[i]=dp[i-1]+v[i];
            last=i;
        }
        if(dp[i-1]+v[i]<0)
        {
            //if(dp[i-1]>summax)
            //{
            //    summax=dp[i-1];
            //    ft=first;
            //    lt=last;
            //}
            dp[i]=v[i];
            first=i;
            last=i;
        }
        if(dp[i]>summax)
        {
            summax=dp[i];
            ft=first;
            lt=last;
        }
    }
    cout<<summax<<" "<<ft<<" "<<lt;
    return 0;
}