Pagini recente » Cod sursa (job #3208377) | Cod sursa (job #440157) | Cod sursa (job #1811950) | Cod sursa (job #2785490) | Cod sursa (job #2499031)
#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() == (int32_t)(i + 1 - k)) {
indices.pop_front();
}
}
}
Write << sum;
Read.close();
Write.close();
return 0;
}