Cod sursa(job #1963895)

Utilizator Marina23Oprea Marina Marina23 Data 12 aprilie 2017 21:25:40
Problema Subsecventa de suma maxima Scor 80
Compilator cpp Status done
Runda Arhiva educationala Marime 1.08 kb
#include <fstream>
#include <climits>
using namespace std;
int N,i,inc,sf,Inceput[6000001];
long long int S1,Smax,X;
int main()
{
    ifstream fin("ssm.in");
    ofstream fout("ssm.out");

    fin>>N;
    S1=0;
    Smax=LLONG_MIN;
    for(i=1;i<=N;i++)
    {
        fin>>X;
        if(S1>0)
        {
            S1=S1+X;
            Inceput[i]=Inceput[i-1];
        }//if
        else
        {
            S1=X;
            Inceput[i]=i;
        }//else
        if(S1>Smax)
        {
            Smax=S1;
            inc=Inceput[i];
            sf=i;
        }//if
        else
            if(S1==Smax and Inceput[i]<inc)
            {
                Smax=S1;
                inc=Inceput[i];
                sf=i;
            }//if
            else
                if(S1==Smax and Inceput[i]==inc and sf-inc>i-Inceput[i])
                {
                    Smax=S1;
                    inc=Inceput[i];
                    sf=i;
                }//if
    }//for i
    fout<<Smax<<' '<<inc<<' '<<sf;

    fin.close ();
    fout.close();
    return 0;
}