Cod sursa(job #1283985)

Utilizator PopoviciRobertPopovici Robert PopoviciRobert Data 6 decembrie 2014 10:02:28
Problema Subsecventa de suma maxima Scor 95
Compilator c Status done
Runda Arhiva educationala Marime 0.7 kb
#include <stdio.h>
#include <stdlib.h>
int s[6000001];
int main()
{   FILE*fi,*fout;
    int nr,ultim,i,max,n;
    fi=fopen("ssm.in" ,"r");
    fout=fopen("ssm.out" ,"w");
    fscanf(fi,"%d" ,&n);
    ultim=0;
    max=0;
    for(i=1;i<=n;i++){
       fscanf(fi,"%d" ,&nr);
       if(s[i-1]+nr>max){
           ultim=i;
           max=s[i-1]+nr;
       }
       else
          if(s[i]>max){
             ultim=i;
             max=s[i];
          }
       if(s[i-1]+nr>nr)
         s[i]=s[i-1]+nr;
       else
         s[i]=nr;
    }
    nr=ultim;
    while(nr>0&&s[nr]>=0)
      nr--;
    fprintf(fout,"%d %d %d" ,max,nr+1,ultim);
    fclose(fi);
    fclose(fout);
    return 0;
}