Pagini recente » Cod sursa (job #1190390) | Cod sursa (job #2367216) | Cod sursa (job #2617049) | Cod sursa (job #2781636) | Cod sursa (job #3221171)
#include <iostream>
#include <fstream>
#include <stdint.h>
const int32_t MAX_N = 5000000;
int32_t vec[MAX_N];
int32_t deq[MAX_N];
int main() {
std::ifstream fin("deque.in");
std::ofstream fout("deque.out");
int32_t n, k;
fin >> n >> k;
for(int32_t i = 0; i != n; ++i)
fin >> vec[i];
int32_t st = 0, dr = 0;
for(int32_t i = 0; i != k - 1; ++i) {
for(; st != dr && vec[i] <= vec[deq[dr - 1]]; --dr);
deq[dr++] = i;
}
int64_t sum = 0;
for(int32_t i = k - 1; i != n; ++i) {
for(; st != dr && vec[i] <= vec[deq[dr - 1]]; --dr);
deq[dr++] = i;
if(deq[st] == i - k)
++st;
sum += vec[deq[st]];
}
fout << sum;
fin.close();
fout.close();
return 0;
}