Cod sursa(job #1288069)

Utilizator cella.florescuCella Florescu cella.florescu Data 8 decembrie 2014 15:54:12
Problema Subsecventa de suma maxima Scor 100
Compilator c Status done
Runda Arhiva educationala Marime 0.61 kb
#include <stdio.h>
#include <stdlib.h>

int main()
{
    FILE *fin, *fout;
    int n, i, smax, stmax, drmax, sc, stc, x;
    fin=fopen("ssm.in", "r");
    fscanf(fin, "%d", &n);
    sc=-1; smax=-1;
    for(i=0; i<n; i++){
      if(sc<0){
        sc=0;
        stc=i;
      }
      fscanf(fin, "%d", &x);
      sc+=x;
      if(sc>smax){
        smax=sc;
        stmax=stc;
        drmax=i;
      } else if(sc==smax && drmax-stmax>i-stc){
        stmax=stc;
        drmax=i;
      }
    }
    fclose(fin);
    fout=fopen("ssm.out", "w");
    fprintf(fout, "%d %d %d\n", smax, stmax+1, drmax+1);
    fclose(fout);
    return 0;
}