Pagini recente » Cod sursa (job #2942799) | Cod sursa (job #1513455) | Cod sursa (job #2103687) | Istoria paginii runda/bulangandit3 | Cod sursa (job #1768199)
#include <iostream>
#include <cstdio>
#include <deque>
#include <vector>
using namespace std;
vector<int> str;
deque<int> dq;
int main() {
freopen("deque.in", "r", stdin);
freopen("deque.out", "w", stdout);
int N, K, d;
int min = 0;
scanf("%d %d", &N, &K);
for(int i = 0; i < N; i++) {
scanf("%d", &d);
str.push_back(d);
if(i >= K) {
min += dq.front();
if(str[i-K] == dq.front()) {
dq.pop_front();
}
}
while(!dq.empty() && dq.back() > str[i]) {
dq.pop_back();
}
dq.push_back(str[i]);
}
min += dq.front();
printf("%d", min);
return 0;
}