Pagini recente » Istoria paginii utilizator/fapfap | Cod sursa (job #2243556) | Cod sursa (job #1642991) | Cod sursa (job #1035964) | Cod sursa (job #2928814)
#include <iostream>
#include <fstream>
#include <vector>
#include <deque>
int main() {
std::ifstream input("deque.in");
std::ofstream output("deque.out");
int n, k;
std::vector<int> a;
input >> n >> k;
long long ans = 0;
for (int i = 1; i <= n; ++i) {
int x;
input >> x;
a.push_back(x);
}
std::deque<int> deque;
for (int i = 1; i <= n; ++i) {
while (!deque.empty() && a[i - 1] <= a[deque.back() - 1]) deque.pop_back();
deque.push_back(i);
if (deque.front() == i - k) deque.pop_front();
if (i >= k) ans += a[deque.front() - 1];
}
output << ans;
return 0;
}