Pagini recente » Cod sursa (job #2870919) | Cod sursa (job #2777046) | Cod sursa (job #2457804) | Cod sursa (job #1826705) | Cod sursa (job #1367764)
#include <iostream>
#include <fstream>
#include <deque>
typedef long long int64;
const int INF = 0x3f3f3f3f;
std::ifstream f("deque.in");
std::ofstream g("deque.out");
std::deque< std::pair<int, int> > dq;
int main()
{
int n, k;
f >> n >> k;
for (int i = 1, x; i < k; i++) {
f >> x;
while (!dq.empty() && dq.back().first >= x) dq.pop_back();
dq.push_back(std::make_pair(x, i));
}
int64 sol = 0;
for (int i = k, x; i <= n; i++) {
f >> x;
while (!dq.empty() && dq.back().first >= x) dq.pop_back();
dq.push_back(std::make_pair(x, i));
if (dq.front().second <= i - k) dq.pop_front();
sol += 1LL * dq.front().first;
std::cout << sol << '\n';
}
g << sol << std::endl;
f.close();
g.close();
return 0;
}