Pagini recente » Cod sursa (job #1836413) | Cod sursa (job #2483342) | Cod sursa (job #2897112) | Cod sursa (job #1439869) | Cod sursa (job #1780101)
#include <fstream>
#include <deque>
#include <stack>
using namespace std;
ifstream ka("deque.in");
ofstream ki("deque.out");
struct element
{
int val, ord;
};
deque <element> coada;
stack <element> stivatemp;
int n, k, x;
long long suma;
int main()
{
ka >> n >> k >> x;
element el;
el.val = x;
el.ord = 1;
coada.push_back(el);
for(int i = 2; i <= n; i++)
{
ka >> x;
element 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;
}
}
ki << suma;
}