Cod sursa(job #1529687)

Utilizator VasilescuVasilescu Eliza Vasilescu Data 21 noiembrie 2015 10:33:36
Problema Subsecventa de suma maxima Scor 100
Compilator c Status done
Runda Arhiva educationala Marime 0.84 kb
#include <stdio.h>

int main(){
    FILE *fin, *fout;
    fin=fopen("ssm.in", "r");
    fout=fopen("ssm.out", "w");

    int n, i, sc, smax, nr, ind, insf, indmax, insfmax, max, indn, insfn;

    fscanf(fin, "%d", &n);

    sc=0;
    smax=0;
    ind=1;
    max=-1000000;
    for(i=0; i<n; i++){
        fscanf(fin, "%d", &nr);
        if(nr<0 && nr>max){
            max=nr;
            indn=i+1;
            insfn=i+1;
        }
        sc+=nr;
        if(sc<0){
            sc=0;
            ind=i+2;
        }
        if(sc>smax){
            smax=sc;
            insfmax=i+1;
            indmax=ind;
        }

    }

    if(smax!=0){
        fprintf(fout, "%d %d %d", smax, indmax, insfmax);
    }
    else
        fprintf(fout, "%d %d %d", max, indn, insfn);

    fclose(fin);
    fclose(fout);

    return 0;
}