Pagini recente » Cod sursa (job #29075) | Cod sursa (job #382268) | Cod sursa (job #1663326) | Cod sursa (job #2388385) | Cod sursa (job #1182724)
#include<stdio.h>
const int Max=5000001;
int d[Max],v[Max],st,dr,k;
void inline stanga(int i){
if(d[st]==i-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;
}