Pagini recente » Cod sursa (job #2863624) | Cod sursa (job #2966856) | Cod sursa (job #279468) | Cod sursa (job #1583341) | Cod sursa (job #1182720)
#include<stdio.h>
const int Max=5000001;
int d[Max],v[Max],st,dr,k;
void inline stanga(int i){
if(i-d[st]==k)
st++;
}
void inline dreapta(int i){
while(st<=dr&&v[i]<=v[d[dr]])
dr--;
d[++dr]=i;
}
int main(){
freopen("deque.in","r",stdin);
freopen("deque.out","w",stdout);
int a,i,sum=0,n;
scanf("%d%d",&n,&k);
for(i=1;i<=n;i++){
scanf("%d",&v[i]);
stanga(i);
dreapta(i);
if(i>=k){
sum=sum+v[d[st]];
}
}
printf("%d",sum);
return 0;
}