Cod sursa(job #2042509)

Utilizator pSergiuPatras Sergiu pSergiu Data 18 octombrie 2017 18:58:00
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.65 kb
#include <fstream>
#define nmax 6000001
using namespace std;

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

int ssm[nmax];

int main()
{
    int n,a,i=1,ci=1,resi=1,resj=1;
    fin>>n;
    fin>>a;
    ssm[i] = a;
    int rez = ssm[i];
    i++;
    while(fin>>a){
        if(ssm[i-1] >= 0)
            ssm[i] = ssm[i-1] + a;
        else {
            ssm[i] = a;
            ci = i;
        }
        if(ssm[i] > rez || (ssm[i] == rez && (i-ci) < (resj-resi))){
            rez = ssm[i];
            resj = i;
            resi = ci;
        }
        i++;
    }
    fout<<rez;
    fout<<" "<<resi<<" "<<resj;
    return 0;
}