Pagini recente » Cod sursa (job #1136845) | Cod sursa (job #2340833) | Cod sursa (job #2203757) | Cod sursa (job #2955488) | Cod sursa (job #203374)
Cod sursa(job #203374)
#include <stdio.h>
#define MAX 50001
FILE *f,*g;
long n,k;
int v[MAX];
long s[MAX],miny[MAX],maxy[MAX];
long min(long a,long b){
if(s[a]<s[b])return a;
return b;
}
long max(long a,long b){
if(s[a]<s[b])return b;
return a;
}
long maxim(long a,long b){
if(a<b)return b;
return a;
}
void citire(){
long i;
fscanf(f,"%ld %ld",&n,&k);
for(i=1;i<=n;i++)fscanf(f,"%d",&v[i]);
}
int main(){
f=fopen("secv2.in","r");
g=fopen("secv2.out","w");
long i;
citire();
for(i=1;i<=n;i++)s[i]=s[i-1]+v[i];
miny[1]=1;
maxy[n]=n;
for(i=2;i<=n;i++){
miny[i]=min(miny[i-1],i);
maxy[n-i+1]=max(n-i+1,maxy[n-i+2]);
}
long d1,d2,dif;
d1=1;
d2=k;
dif=s[k];
for(i=2;i<=n-k+1;i++)
if(s[maxy[i+k-1] ]-s[miny[i-1]]>dif){
dif=s[maxy[i+k-1]]-s[miny[i-1]];
d1=miny[i-1];
d2=maxy[i+k-1];
}
fprintf(g,"%ld %ld %ld",d1,d2,dif);
fclose(f);
fclose(g);
return 0;
}