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