Pagini recente » Cod sursa (job #1452209) | Cod sursa (job #2818026) | Cod sursa (job #417104) | Cod sursa (job #2492494) | Cod sursa (job #2834778)
#include <fstream>
#include <deque>
using namespace std;
#define f
#define lld long long int
#ifdef f
ifstream cin("deque.in");
ofstream cout("deque.out");
#else
#include <iostream>
#endif // f
class intp {
public:
int d, p;
};
//intp v[5000000];
int main() {
int n, k;
cin >> n >> k;
intp x;
cin >> x.d;
x.p = 0;
deque<intp> q;
q.push_back(x);
lld sum{};
//cout << '\n';
for (int i = 1; i < n; ++i) {
cin >> x.d;
x.p = i;
if (i >= k) {
sum += q.front().d;
//cout << q.front().d << ' ';
}
while(!q.empty() && q.back().d >= x.d)
q.pop_back();
q.push_back(x);
if (i - k >= q.front().p)
q.pop_front();
//cout << q.front().d << ' ';
}
cout << sum;
return 0;
}