Pagini recente » Cod sursa (job #176696) | Cod sursa (job #209884) | Cod sursa (job #250476) | Cod sursa (job #781223) | Cod sursa (job #2566609)
#include <iostream>
#include <fstream>
#define N 5000001
#include <deque>
using namespace std;
ifstream fin("deque.in");
ofstream fout("deque.out");
long long n, k, s, x;
struct pereche
{
int value;
int poz;
};
int main()
{
fin >> n >> k;
int x;
deque <pereche> my_deque;
for(int i=1; i<=n; i++)
{
fin >> x;
if(my_deque.empty())
{
pereche p;
p.value = x;
p.poz = i;
my_deque.push_back(p);
}
else
{
if(i - my_deque.front().poz == k)
my_deque.pop_front();
while(!my_deque.empty() && my_deque.back().value > x)
my_deque.pop_back();
pereche p;
p.value = x;
p.poz = i;
my_deque.push_back(p);
}
if(i >= k) s += 1LL * my_deque.front().value;
}
fout << s;
return 0;
}