Pagini recente » Cod sursa (job #98328) | Cod sursa (job #1957300) | Cod sursa (job #241989) | Cod sursa (job #254654) | Cod sursa (job #2513592)
#include <iostream>
#include <cstdio>
#include <deque>
using namespace std;
int n, k;
long long s;
deque<int> minime, nr;
int main() {
freopen("deque.in", "r", stdin);
freopen("deque.out", "w", stdout);
int x;
scanf("%d %d ", &n, &k);
for(int i = 1; i < k; i++) {
scanf("%d", &x);
while(!minime.empty() && minime.back() > x)
minime.pop_back();
minime.push_back(x);
nr.push_back(x);
}
for(int i = k; i <= n; i++) {
scanf("%d", &x);
while(!minime.empty() && minime.back() > x)
minime.pop_back();
minime.push_back(x);
nr.push_back(x);
s += minime.front();
if(nr.front() == minime.front())
minime.pop_front();
nr.pop_front();
}
printf("%lld", s);
return 0;
}