Pagini recente » Cod sursa (job #2209449) | Cod sursa (job #564624) | Rating Among Us (78334) | Cod sursa (job #72785) | Cod sursa (job #2032833)
#include <iostream>
#include <fstream>
#include <queue>
#define NMAX 5000001
using namespace std;
ifstream in("deque.in");
ofstream out("deque.out");
int v[NMAX];
deque<int> deck;
int main() {
int n, k, x;
long long int sum = 0;
in >> n >> k;
for (int i = 1; i <= n; i++)
in >> v[i];
in.close();
for (int i = 1; i <= n; i++) {
while (!deck.empty() && v[deck.back()] >= v[i])
deck.pop_back();
deck.push_back(i);
if (deck.front() == i - k)
deck.pop_front();
if (i >= k)
sum += (1LL * v[deck.front()]);
}
out << sum << "\n";
out.close();
return 0;
}