Cod sursa(job #2322049)

Utilizator miha5092mihai mitrea miha5092 Data 17 ianuarie 2019 09:19:43
Problema Subsecventa de suma maxima Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.87 kb
#include <fstream>

using namespace std;

ifstream in("ssm.in");
ofstream out("ssm.out");

int v[6000005];
int d[6000005];

int main()
{
    int n,st=1,fn,stmax,fnmax,maxi;
    in>> n ;
    for(int i=1; i<=n; i++)
        in>> v[i] ;
    d[0] = 0 ;
    maxi = v[1]-1 ;
    for(int i=1; i<=n; i++)
    {
        if(v[i] > d[i-1]+v[i])
        {
            d[i] = v[i] ;
            fn = i-1 ;
            if(d[i] > maxi)
            {
                stmax = i;
                fnmax = i;
                maxi = d[i] ;
            }
            st = i ;
        }
        else
        {
            d[i] = d[i-1]+v[i] ;
            if(d[i] > maxi)
            {
                stmax = st ;
                fnmax = i ;
                maxi = d[i] ;
            }
        }
    }
    out<< maxi << " " << stmax << " " << fnmax ;
    return 0;
}