Pagini recente » Cod sursa (job #2082552) | Cod sursa (job #1643705) | Cod sursa (job #1528913) | Cod sursa (job #1660825) | Cod sursa (job #2629824)
#include <iostream>
#include <fstream>
#include <deque>
using namespace std;
ifstream fin("deque.in");
ofstream fout("deque.out");
deque <int> q;
int n, k, el;
long long 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;
}
if (!q.empty() && q.front() > el) {
int aux = q.size();
q.clear();
q.insert(q.end(), aux + 1, el);
}
else {
int el_sterse = 0;
while (!q.empty()) {
if (q.back() > el) {
q.pop_back();
++el_sterse;
}
else
break;
}
q.insert(q.end(), el_sterse + 1, el);
}
if (i >= k && !q.empty()) {
sum += q.front();
q.pop_front();
}
}
fout << sum;
return 0;
}