Cod sursa(job #1810486)

Utilizator dranoellenTurica Leonard-Petru dranoellen Data 20 noiembrie 2016 04:46:50
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.54 kb
#include <cstdio>
using namespace std;

int main()
{
    FILE *f=fopen("ssm.in","r");
    int n,x,sc,i,li=1,smax,limax=1,lfmax=1;
    fscanf(f,"%d%d",&n,&x);
    sc=smax=x;
    for(i=2;i<=n;i++)
    {
        fscanf(f,"%d",&x);
        if(sc<0){sc=x;li=i;}
        else if(sc+x>=0) sc+=x;
             else {sc=x;li=i;}
        if(sc>smax){smax=sc;limax=li;lfmax=i;}
        else if(sc==smax && i-li<lfmax-limax){limax=li;lfmax=i;}
    }
    fclose(f);f=fopen("ssm.out","w");
    fprintf(f,"%d %d %d",smax,limax,lfmax);
    return 0;
}