Cod sursa(job #501018)

Utilizator vanciokCiouca Eugen Alexandru vanciok Data 14 noiembrie 2010 03:48:49
Problema Subsecventa de suma maxima Scor 80
Compilator c Status done
Runda Arhiva educationala Marime 0.78 kb
#include <stdio.h>
#include <stdlib.h>

int main()
{
    int i, j;
    float n;
    int *a;
    int inc = 0, sf = 0;
    FILE *f, *g;

    f = fopen("ssm.in", "r");
    g = fopen("ssm.out", "w");
    fscanf(f, "%f", &n);
    a = (int*) malloc ((n+1) * sizeof(int));
    int max = 0, peon = 0;
    float sol = -2e20;

    for (i = 0; i < n; i++)
    {
        fscanf(f, "%d", &a[i]);
        if (max < 0)
        {
            max = a[i];
            peon = i;

        }
        else
        {
            max = max + a[i];
        }
        if (max > sol)
        {
            sol = max;
            inc = peon;
            sf = i;
        }
    }
    fprintf(g, "%.f %d %d", sol, inc + 1, sf + 1);

    fclose(f);
    fclose(g);

    return 0;
}