Pagini recente » Cod sursa (job #526946) | Cod sursa (job #1359159) | Cod sursa (job #2059219) | Cod sursa (job #876463) | Cod sursa (job #2499028)
#include <fstream>
#include <vector>
#include <deque>
using namespace std;
char const in_file[] = "deque.in";
char const out_file[] = "deque.out";
ifstream Read(in_file);
ofstream Write(out_file);
int main() {
uint32_t n;
uint32_t k;
Read >> n;
Read >> k;
vector<int32_t> values(n);
for (uint32_t i = 0; i < n; ++i) {
Read >> values[i];
}
deque<int32_t> indices;
int64_t sum = 0;
for (uint32_t i = 0; i < n; ++i) {
while (indices.size()) {
if (values[i] <= values[indices.back()]) {
indices.pop_back();
}
else {
break;
}
}
indices.push_back(i);
if (i + 1 >= k) {
sum += values[indices.front()];
if (indices.front() == i + 1 - k) {
indices.pop_front();
}
}
}
Write << sum;
Read.close();
Write.close();
return 0;
}