Pagini recente » Cod sursa (job #1059028) | Cod sursa (job #866739) | Cod sursa (job #3235061) | Cod sursa (job #1079207) | Cod sursa (job #1054059)
#include <fstream>
#include <algorithm>
#include <queue>
using namespace std;
ifstream in("deque.in");
ofstream out("deque.out");
deque <pair<long,long> > my_deque;
long v[5000001],n,i,k;
long long s=0;
int main()
{
in >> n >> k;
for(i = 1 ; i <= n ; i++)
in >> v[i];
for(i = 1 ; i<= n ; i++)
{
while(my_deque.size())
if(v[i] < my_deque.back().first)
my_deque.pop_back();
else
break;
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 << "\n";
return 0;
}