Pagini recente » Cod sursa (job #3220967) | Cod sursa (job #1983317) | Cod sursa (job #3189699) | Cod sursa (job #1360388) | Cod sursa (job #2566603)
#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
{
long long 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 += my_deque.front().value;
}
fout << s;
return 0;
}