Pagini recente » Cod sursa (job #3271461) | Cod sursa (job #2931499) | Cod sursa (job #815306) | Cod sursa (job #2871978) | Cod sursa (job #514696)
Cod sursa(job #514696)
#include<stdio.h>
FILE *fin, *fout;
int deque[5000001],i,n,v[5000001],p,u,k;
long long s;
int main(){
fin=fopen("deque.in","r");
fout=fopen("deque.out","w");
p=1;
u=1;
fscanf(fin,"%d %d",&n,&k);
for(i=1;i<=n;i++){
fscanf(fin,"%d",&v[i]);
}
deque[1]=1;
s=0;
for(i=2;i<=n;i++){
while(p<=u && v[i]<=v[deque[u]] ){
u--;
}
u++;
deque[u]=i;
while(p<=u && i-deque[p]+1>k ){
p++;
}
if(i>=k) s+=v[deque[p]];
}
fprintf(fout,"%lld",s);
fclose(fout);
fclose(fin);
return 0;
}