Cod sursa(job #23340)

Utilizator AdixSuciu Adrian Adix Data 28 februarie 2007 18:07:04
Problema Secventa 2 Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.06 kb
#include <stdio.h>
#include <math.h>
#include <values.h>
int a[50000],n,k,st=0,dr;
long smax;
long max(long value1,long value2){
		 if(value1>value2) return value1;
		 else return value2;
		 }
void citire(){
     int i;
     FILE *in;
     in=fopen("secv2.in","r");
     fscanf(in,"%d %d",&n,&k);
     dr=k;
		 for(i=1;i<=n;i++){fscanf(in,"%d",&a[i]);
                      }
		 }
long sum(int st1,int dr1){ long s=0;int i;for(i=st1;i<=dr1;i++){s+=a[i];}return s;}
long procesare(int st2,int dr2){
     int st1,dr1;long x;
     /*
		 for(i=0;i<n-k;i++){if(sum(st,dr)>}*/
		 x=sum(st2,dr2);
		 if(dr2<=n&&st2<=dr2-k+1&&dr2>st2) {
		 if(x>smax){ smax=x; st=st2,dr=dr2;}
		 return max(procesare(st2,dr2+1),procesare(st2+1,dr2));  }
		 else return 0;

    
     
     
     }
void scriere(){
     FILE *out;
     out=fopen("secv2.out","w");
		 fprintf(out,"%d %d %ld",st,dr,sum(st,dr));
     fclose(out);
     }
int main(){
    citire();
		st=1;
    smax=-2000000000;
    dr=k;
    smax=procesare(st,dr);
    scriere();
    
 return 0;   
}