Pagini recente » Cod sursa (job #1897890) | Cod sursa (job #2215181) | Cod sursa (job #2753931) | Cod sursa (job #572541) | Cod sursa (job #2009451)
#include <fstream>
#include <deque>
#include <vector>
using namespace std;
ifstream cin("deque.in");
ofstream cout("deque.out");
int main() {
int n, k;
cin >> n >> k;
vector < int > v(n + 1);
for (int i = 1; i <= n; i ++)
cin >> v[i];
deque < int > Deq;
long long sum = 0;
for (int i = 1; i <= k; i ++) {
if (Deq.size() == 0) {
Deq.push_front(i);
}
else {
while (Deq.size() != 0 and v[i] <= v[Deq.front()]) {
Deq.pop_front();
}
Deq.push_front(i);
}
}
sum += v[Deq.back()];
for (int i = k + 1; i <= n; i ++) {
while (Deq.size() != 0 and v[i] <= v[Deq.front()]) {
Deq.pop_front();
}
Deq.push_front(i);
if (Deq.back() <= i - k) {
Deq.pop_back();
}
sum += v[Deq.back()];
}
cout << sum << '\n';
}