Pagini recente » Cod sursa (job #3131175) | Cod sursa (job #1106727) | Cod sursa (job #1160268) | Cod sursa (job #3285123) | Cod sursa (job #236825)
Cod sursa(job #236825)
#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 = 1; i <= n; ++ i) {
in >> val;
while (!deq.empty() && deq.back().second >= val)
deq.pop_back();
deq.push_back(make_pair(i, val));
if (deq.front().first <= i - length)
deq.pop_front();
if (i >= length)
result += deq.front().second;
}
ofstream out(oname);
out << result;
in.close(), out.close();
return 0;
}