Cod sursa(job #612875)

Utilizator preda_alexandruPreda Alexandru preda_alexandru Data 12 septembrie 2011 15:56:16
Problema Subsecventa de suma maxima Scor 65
Compilator c Status done
Runda Arhiva educationala Marime 0.73 kb
#include <stdio.h>

int main()
{
    FILE *fin, *fout;
    int n, x, i, smax, scur, st, sf, stm, sfm;

    fin = fopen("ssm.in", "rt");
    fout = fopen("ssm.out", "wt");

    fscanf(fin, "%d %d", &n, &x);
    scur = smax = x;
    stm = sfm = st = sf = 1;

    for(i=2; i<=n; i++)
    {
        fscanf(fin, "%d", &x);
        if(scur<0)
        {
            scur = x;
            st = i;
        }
        else
        {
            scur = scur+x;
            sf = i;
        }
        if(scur > smax)
        {
            smax = scur;
            stm = st;
            sfm = sf;
        }
    }

    fprintf(fout, "%d %d %d\n", smax, stm, sfm);

    fclose(fin);
    fclose(fout);

    return 0;
}