Pagini recente » Cod sursa (job #2964752) | Cod sursa (job #2094381) | Cod sursa (job #1108253) | Cod sursa (job #2749966) | Cod sursa (job #932066)
Cod sursa(job #932066)
#include <stdio.h>
int deq[5000001];
int v[5000001];
int st=1;
int dr=0;
int n,k;
long long sum=0;
void stanga(int i){
if (i-deq[st]==k)
st++;
}
void dreapta(int i){
while (st<=dr && v[i]<=v[deq[dr]])
dr--;
}
int main(){
freopen("deque.in","r",stdin);
freopen("deque.out","w",stdout);
scanf("%d %d",&n,&k);
for (int i=1;i<=n;i++){
scanf("%d",&v[i]);
if (i>k)stanga(i);
dreapta(i);
deq[++dr]=i;
if (i>=k) sum+=v[deq[st]];
}
printf("%lld",sum);
return 0;
}