Pagini recente » Cod sursa (job #2353629) | Cod sursa (job #1467394) | Cod sursa (job #1541609) | Cod sursa (job #1484520) | Cod sursa (job #1781003)
#include <fstream>
#include <deque>
using namespace std;
ifstream f("deque.in");
ofstream g("deque.out");
struct st
{
int val, ord;
};
deque <st> coada;
int n, k, x;
long long suma;
int main()
{
f >> n >> k >> x;
st el;
el.val = x;
el.ord = 1;
coada.push_back(el);
for(int i = 2; i <= n; i++)
{
f >> x;
st elo;
elo.val = x;
elo.ord = i;
while(!coada.empty() && x <= coada.back().val)
coada.pop_back();
coada.push_back(elo);
if(i >= k)
{
while(i - coada.front().ord + 1 > k)
coada.pop_front();
suma += coada.front().val;
}
}
g << suma;
f.close();
g.close();
}