Cod sursa(job #270061)

Utilizator n3msizN3msiz n3msiz Data 3 martie 2009 18:48:56
Problema Subsecventa de suma maxima Scor 85
Compilator cpp Status done
Runda Arhiva educationala Marime 0.57 kb
#include<stdio.h>
int v[6000002],n,i,s[6000002],pmax,imax,pi,pimax,max;

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];
 max = s[1];
 imax = 1;
 pi = 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 (s[i]>=max) {
      max = s[i];
      imax = i;
      pimax = pi;
    }
 }


 
 fprintf(g,"%d %d %d",max,pimax,imax);
 fclose(g);
 fclose(f);
 return 0;
}