Pagini recente » Cod sursa (job #2603603) | Cod sursa (job #685543) | Cod sursa (job #2370291) | Cod sursa (job #1200303) | Cod sursa (job #2887457)
#include <iostream>
#include <stack>
#include <fstream>
using namespace std;
ifstream in("deque.in");
ofstream out("deque.out");
long long n, k, i, de[5000001], suma, mi = 10000001, x;
deque<pair<long long, long long>> deq;
int main()
{
in >> n >> k;
for(i = 1; i <= k; i++)
{
in>>x;
while(deq.empty() == false && deq.back().first >= x)
deq.pop_back();
deq.push_back(make_pair(x, i));
}
suma = deq.front().first;
for(i = k + 1; i <= n; i++)
{
in>>x;
while(deq.empty() == false && i - deq.front().second >= k)
deq.pop_front();
while(deq.empty() == false && deq.back().first >= x)
deq.pop_back();
deq.push_back(make_pair(x, i));
suma += deq.front().first;
}
out<<suma;
return 0;
}