Pagini recente » Cod sursa (job #1494589) | Cod sursa (job #1713997) | Cod sursa (job #930098) | Cod sursa (job #782302) | Cod sursa (job #2680165)
#include <iostream>
#include <fstream>
#include <deque>
using namespace std;
ifstream fin("deque.in");
ofstream fout("deque.out");
int main() {
int N, K;
deque<int> v;
deque<int> ind;
fin >> N >> K;
int nr;
long long rez = 0;
for (int i = 0; i < N; ++i) {
fin >> nr;
while (!v.empty()) {
if (v.back() >= nr) {
v.pop_back();
ind.pop_back();
}
else
break;
}
v.push_back(nr);
ind.push_back(i);
if (!ind.empty())
while (i - ind.front() >= K && !ind.empty()) {
ind.pop_front();
v.pop_front();
}
if (i >= K - 1 && !v.empty()) {
rez += v.front();
}
}
fout << rez;
return 0;
}