Cod sursa(job #23420)

Utilizator AdixSuciu Adrian Adix Data 28 februarie 2007 19:19:09
Problema Secventa 2 Scor 10
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 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;
         st=1;
         sum1dr=sum(1,dr);
         sumstdr=sum(st,dr);
         sum1i=sum(1,i);
         


		 for(i=k;i<=n;i++){
		 sum1i=sum1i+a[i];
		 if(sum1i>sum1dr){
                         dr=i;
                         sum1dr=sum1i;
                         }
		 }
		 sumidr=sum(i,dr);
		 
		 for(i=dr-k;i>=1;i--){
		 sumidr=sumidr+a[i];
		 		
		 if(sumidr>sumstdr){ 
		                     st=i;
                             sumstdr=sumidr;
                             }
     }

     return sumstdr;

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