Pagini recente » Cod sursa (job #1578203) | Cod sursa (job #1864352) | Cod sursa (job #632514) | Cod sursa (job #1598657) | Cod sursa (job #2119029)
#include <bits/stdc++.h>
using namespace std;
int n, k;
int a[5000005];
int dq[5000005];
int main(){
freopen("deque.in", "r", stdin);
freopen("deque.out", "w", stdout);
scanf("%d%d", &n, &k);
int Front = 1, Back = 0;
long long Sum = 0;
for(int i = 1; i < k ; ++i){
scanf("%d", &a[i]);
while(Back >= Front && a[dq[Back]] > a[i]) --Back;
dq[++Back] = i;
}
for(int i = k; i <= n ; ++i){
scanf("%d", &a[i]);
while(Back >= Front && a[dq[Back]] > a[i]) --Back;
dq[++Back] = i;
Sum = Sum + a[dq[Front]];
if(dq[Front] <= i - k + 1) ++Front;
}
printf("%lld", Sum);
return 0;
}