Pagini recente » Cod sursa (job #2974326) | Cod sursa (job #2826323) | Cod sursa (job #2713163) | Cod sursa (job #2980669) | Cod sursa (job #23427)
Cod sursa(job #23427)
#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);
sum1i=sum(1,k-1);
for(i=k;i<=n;i++){
sum1i=sum1i+a[i];
if(sum1i>sum1dr){
dr=i;
sum1dr=sum1i;
}
}
sumidr=sum(dr-k+1,dr);
sumstdr=sum(st,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;
}