Pagini recente » Cod sursa (job #1525151) | Cod sursa (job #1067590) | Cod sursa (job #1869980) | Cod sursa (job #3143346) | Cod sursa (job #2572355)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("deque.in");
ofstream fout("deque.out");
class Deque {
private:
int k;
deque<pair<int, int>> dq;
public:
Deque(int k) :
k(k) { }
void insert(int x) {
static int cnt = 0;
while (!dq.empty() && dq.back().second >= x)
dq.pop_back();
if (!dq.empty() && dq.front().first == ++cnt - k)
dq.pop_front();
dq.emplace_back(cnt, x);
}
int query() {
return dq.front().second;
}
};
int main() {
int n, k; fin >> n >> k;
Deque dq(k);
int64_t sol = 0;
for (int i = 0; i < n; i++) {
int x; fin >> x;
dq.insert(x);
if (i >= k - 1)
sol += dq.query();
}
fout << sol << '\n';
fout.close();
return 0;
}