Pagini recente » Cod sursa (job #2943564) | Cod sursa (job #1995949) | Cod sursa (job #2989126) | Cod sursa (job #2093779) | Cod sursa (job #2077111)
#include <fstream>
#include <deque>
#include <vector>
using namespace std;
ifstream cin("deque.in");
ofstream cout("deque.out");
void Solve(int n, int k, vector < int > &v, deque < int > &deq) {
long long ans = 0;
for (int i = 1; i <= k; i ++) {
while (deq.size() and v[i] <= v[deq.front()]) {
deq.pop_front();
}
deq.push_front(i);
}
ans += v[deq.back()];
for (int i = k + 1; i <= n; i ++) {
while (deq.size() and v[i] <= v[deq.front()]) {
// cout << "========== l-am scos pe " << v[deq.front()] << '\n';
deq.pop_front();
}
deq.push_front(i);
if (deq.back() <= i - k) {
deq.pop_back();
}
ans += v[deq.back()];
}
cout << ans << '\n';
}
int main() {
int n, k;
cin >> n >> k;
vector < int > v(n + 1);
for (int i = 1; i <= n; i ++) {
cin >> v[i];
}
deque < int > deq;
Solve(n, k, v, deq);
}