Cod sursa(job #402215)

Utilizator KoniacDocea Andrei Koniac Data 23 februarie 2010 17:33:50
Problema Subsecventa de suma maxima Scor 85
Compilator cpp Status done
Runda Arhiva educationala Marime 0.71 kb
#include <stdio.h>
FILE*f=fopen("ssm.in","r");
FILE*g=fopen("ssm.out","w");
int s,i,j,x,y,v[6000001],a[6000001],n;
int main() {
   fscanf(f,"%d",&n);
   fscanf(f,"%d",&v[1]);
   a[1]=v[1];                                  
   x=1;
   j=1;
   s=v[1];
   for(i=2;i<=n;i++){
	   fscanf(f,"%d",&v[i]); 
	   if(a[i-1]+v[i]>=v[i]){
            a[i]=a[i-1]+v[i];
            if(s<a[i]){
                s=a[i];
                x=i;
                y=j;
            }
        }
        else{
            a[i]=v[i];
			j=i;
			if(s<a[i]){
                s=a[i];
                x=i;
				y=j;
			}          
		}
        
   }
   fprintf(g,"%d %d %d",s,y,x);
	
   fclose(g);
   fclose(f);
   return 0;
}