Cod sursa(job #23378)

Utilizator AdixSuciu Adrian Adix Data 28 februarie 2007 18:43:18
Problema Secventa 2 Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.25 kb
#include <stdio.h>
#include <math.h>
#include <values.h>
int a[50002],n,k,st=0,dr;
long smax,sdr,sst;
long max(long value1,long value2){
		 if(value1>value2) return value1;
		 else return value2;
		 }

long sum(int st1,int dr1){ long s=0;int i;for(i=st1;i<=dr1;i++){s+=a[i];}return s;}
void citire(){
     int i;
     FILE *in;
     in=fopen("secv2.in","r");
     fscanf(in,"%d %d",&n,&k);
		 dr=n;
		 for(i=1;i<=n;i++){fscanf(in,"%d",&a[i]);
                           
                      }
		 }

long procesare(int st2,int dr2){
		 int i;
		 long sum1i,sum1dr,sumidr,sumstdr;
         sum1dr=sum(1,dr);
		 for(i=k;i<=n;i++){
		 sum1i=sum(1,i);
		 if(sum1i>sum1dr)
                         dr=i;
                         sum1dr=sum(1,dr);
										 }
         sumstdr=sum(st,dr);
         st=1;
		 for(i=dr-k;i>=1;i--){
		 sumidr=sum(i,dr);
		
		 if(sumidr>sumstdr){ 
                             sumstdr=sum(st,dr);
		                     st=i;}
     }

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