Pagini recente » Cod sursa (job #820918) | Cod sursa (job #2037968) | Cod sursa (job #1274138) | Cod sursa (job #1849567) | Cod sursa (job #1768536)
#include <iostream>
#include <cstdio>
#include <deque>
#include <vector>
using namespace std;
typedef long long ll;
vector<int> str;
deque<int> dq;
int main() {
freopen("deque.in", "r", stdin);
freopen("deque.out", "w", stdout);
int N, K, d;
ll 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 += str[dq.front()];
if(str[i-K] == str[dq.front()]) {
dq.pop_front();
}
}
while(!dq.empty() && str[dq.back()] > str[i]) {
dq.pop_back();
}
dq.push_back(i);
}
min += str[dq.front()];
printf("%lld", min);
return 0;
}