Cod sursa(job #1529691)

Utilizator andrei20003Ionescu Andrei andrei20003 Data 21 noiembrie 2015 10:35:15
Problema Subsecventa de suma maxima Scor 0
Compilator c Status done
Runda Arhiva educationala Marime 0.72 kb
#include <stdio.h>

int main()
{
    FILE *fin,*fout;
    int n,i,s,max,nr,i2,x,x1,x3,max2,ok;
    fin=fopen("p1.in","r");
    fout=fopen("p1.out","w");
    fscanf(fin,"%d", &n);
    s=max=ok=0;
    max2=-10000;
    i2=1;
    for (i=0;i<n;i++) {
        fscanf(fin,"%d", &nr);
        if (nr>0)
            ok=1;
        if (nr>max2) {
            x3=i+1;
            max2=nr;
        }
        s=s+nr;
        if (s<0) {
            s=0;
            i2=i+2;
        }
        if (s>max) {
            max=s;
            x1=i+1;
            x=i2;
        }
    }
    if (ok==1)
        fprintf(fout,"%d %d %d", max, x, x1);
    else
        fprintf(fout,"%d %d %d", max2, x3, x3);
    return 0;
}