Pagini recente » Cod sursa (job #3231590) | Cod sursa (job #75345) | Cod sursa (job #3266534) | Cod sursa (job #842133) | Cod sursa (job #2553839)
#include <fstream>
#include <deque>
#include <queue>
#include <cstdint>
#include <utility>
using namespace std;
ifstream fin("deque.in");
ofstream fout("deque.out");
int n, k;
deque<int> Dq;
priority_queue<pair<int, int>, vector<pair<int, int>>, greater<pair<int, int>>> Q;
int main()
{
fin >> n >> k;
for (int i = 1, x; i <= k; ++i)
{
fin >> x;
Dq.push_back(x);
Q.emplace(x, i);
}
int64_t r = Q.top().first;
for (int i = k + 1, x; i <= n; ++i)
{
fin >> x;
Dq.pop_front();
Dq.push_back(x);
while (!Q.empty() && (Q.top().second < (i - k + 1)))
{
Q.pop();
}
Q.emplace(x, i);
r += Q.top().first;
}
fout << r;
fin.close();
fout.close();
return 0;
}