Pagini recente » Cod sursa (job #565448) | Cod sursa (job #3128219) | Cod sursa (job #2042326) | Cod sursa (job #830359) | Cod sursa (job #2629700)
#include <iostream>
#include <fstream>
#include <deque>
using namespace std;
ifstream fin("deque.in");
ofstream fout("deque.out");
deque <int> q;
int n, k, el, sum;
int main() {
fin >> n >> k;
for (int i = 1; i <= n; ++i) {
fin >> el;
if (k == 1) {
sum += el;
continue;
}
if (i == 1) {
q.push_back(el);
continue;
}
int el_sterse = 0, lmax = q.size() - 1;
while (lmax >= 0 && q[lmax] > el) {
q.pop_back();
++el_sterse;
if (lmax == 0)
break;
--lmax;
}
while (el_sterse--)
q.push_back(el);
q.push_back(el);
if (i >= k) {
sum += q.front();
q.pop_front();
}
}
fout << sum;
return 0;
}