Cod sursa(job #269538)

Utilizator dinuddinu dan dinud Data 2 martie 2009 23:30:21
Problema Subsecventa de suma maxima Scor 75
Compilator cpp Status done
Runda Arhiva educationala Marime 0.85 kb
#include<stdio.h>
#define DIM 6000002
int n,v[DIM],s[DIM],i,pi,pf,max,pmax;

int main() {
    FILE *f = fopen("ssm.in","r");
    FILE *g = fopen("ssm.out","w");
    
    fscanf(f,"%d",&n);
    for(i=1;i<=n;i++)
                     fscanf(f,"%d",&v[i]);
    
   s[1]=v[1];
   pi=1;
   pf=1;
   max=s[1];
   
   for(i=2;i<=n;i++){
          if(s[i-1]+v[i]>v[i])
                              s[i]=s[i-1]+v[i];
               else  { 
                              s[i]=v[i];
                              pi=i;
                              }      
           if(max<s[i]){
                       max=s[i];
                       pf=i;                                     
                         
                       }    
}
   fprintf(g,"%d %d %d",max,pi,pf); 
    
    
   fclose(f);
   fclose(g); 
    
    
return 0;
}