Pagini recente » Cod sursa (job #3294038) | Cod sursa (job #1718983) | Cod sursa (job #1188066) | Cod sursa (job #1707557) | Cod sursa (job #236821)
Cod sursa(job #236821)
#include <iostream>
#include <fstream>
#include <queue>
#include <algorithm>
using namespace std;
const char iname[] = "deque.in";
const char oname[] = "deque.out";
int main()
{
ifstream in(iname);
int n, length, val;
deque <pair <int, int> > deq;
long long result = 0;
in >> n >> length;
for (int i = 0; i < n; ++ i) {
in >> val;
while (!deq.empty() && deq.front().first <= i - length)
deq.pop_front();
while (!deq.empty() && deq.back().second >= val)
deq.pop_back();
deq.push_back(make_pair(i, val));
if (i >= length - 1)
result += deq.front().second;
}
ofstream out(oname);
out << result;
in.close(), out.close();
return 0;
}