Cod sursa(job #1811142)

Utilizator crion1999Anitei cristi crion1999 Data 20 noiembrie 2016 21:14:32
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda gym1_emag_mediu_2016 Marime 0.73 kb
#include <iostream>
#include <fstream>

using namespace std;
ifstream fi("ssm.in");
ofstream fo("ssm.out");

int main()
{
    int n,maxim=-1000000,stanga,dreapta,st=1,sumaCurenta=0,auxCitire;
    fi>>n;
    for(int i=1;i<=n;i++)
    {
        fi>>auxCitire;
        sumaCurenta+=auxCitire;
        if(sumaCurenta>maxim)
        {
            maxim=sumaCurenta;
            dreapta=i;
            stanga=st;
        }
        else if(sumaCurenta==maxim)
            if(dreapta-stanga>i-st)
            {
                dreapta=i;
                stanga=st;
            }
        if(sumaCurenta<0)
        {
            sumaCurenta=0;
            st=i+1;
        }

    }
    fo<<maxim<<" "<<stanga<<" "<<dreapta;
}