Cod sursa(job #1573118)

Utilizator MAlexandruMatei Alexandru MAlexandru Data 19 ianuarie 2016 13:35:33
Problema Subsecventa de suma maxima Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.53 kb
#include <stdio.h>

using namespace std;
FILE*fin=fopen("ssm.in","r");
FILE*fout=fopen("ssm.out","w");

    int stt,enn,sm,i,st,en,s,n,a[6000001];
int main()
{
    fscanf(fin,"%d",&n);
    for (i=1;i<=n;i++)fscanf(fin,"%d",&a[i]);
    for (i=1;i<=n;i++)
    {
    s+=a[i];
    if (s<0){s=0;st=i+1;en=i+1;}
    else {en++;if (s>sm){sm=s;stt=st;enn=en;}
    else if (s==sm && (enn-stt)>(en-st)){sm=s;stt=st;enn=en-1;}}
    }
    fprintf(fout,"%d %d %d", sm , stt , enn);
    fclose(fin);
    fclose(fout);
    return 0;
}