Cod sursa(job #1543316)

Utilizator AnaRaduAna-Maria Radu AnaRadu Data 6 decembrie 2015 10:32:49
Problema Subsecventa de suma maxima Scor 100
Compilator c Status done
Runda Arhiva educationala Marime 0.81 kb
#include <stdio.h>
int s,max;
int verif(int j,int i,int st,int dr){
    int pp=0;
    if(s==max){
        if(j==st&&i-j<dr-st)
            pp=1;
        if(j<st)
            pp=1;
    }
    if(s>max)
        pp=1;
    return pp;
}
int main(){
    FILE *fin,*fout;
    fin=fopen("ssm.in","r");
    fout=fopen("ssm.out","w");
    int i,j,st,dr,n,val;
    fscanf(fin,"%d%d",&n,&val);
    j=1;
    s=val;
    max=s;
    st=1;
    dr=1;
    for(i=2;i<=n;i++){
        fscanf(fin,"%d",&val);
        if(s+val>=val)
            s+=val;
        else{
            j=i;
            s=val;
        }
        if(verif(j,i,st,dr)==1){
            max=s;
            st=j;
            dr=i;
        }
    }
    fprintf(fout,"%d %d %d",max,st,dr);
    fclose(fin);
    fclose(fout);
    return 0;
}