Pagini recente » Cod sursa (job #2447097) | Cod sursa (job #1885507) | Monitorul de evaluare | Cod sursa (job #1678181) | Cod sursa (job #1053997)
#include <fstream>
#include <algorithm>
#include <queue>
using namespace std;
ifstream in("deque.in");
ofstream out("deque.out");
deque<pair<long,long> > my_deque;
int main()
{
long v[5000001],n,i,k;
long int s=0;
in >> n >> k;
for(i = 1 ; i <= n ; i++)
in >> v[i];
for(i = 1 ; i<= n ; i++)
{
while(v[i] < my_deque.back().first && my_deque.size())
my_deque.pop_back();
my_deque.push_back(make_pair(v[i],i));
if(my_deque.front().second == i - k)
my_deque.pop_front();
if(i >= k)
s = s + my_deque.front().first;
}
out << s;
return 0;
}