La pasul i, introduci elementul de pe pozitia i-x (a[i-x]) in deque. Atat timp cat a[i-x] este mai mare ca ultimul element din deque, scoti ultimul element din deque. Apoi adaugi a[i-x] in deque. Minimul il vei avea intotdeauna in prima pozitie a deque-ului. Daca primul element din deque este egal cu a[i-y] atunci, il scoti din deque.
Nu am inteles eu prea bine unde il bagi pe A[i-x], atata timp cat il poti baga in ambele capete. In prima pozitie nu il poti baga fiindca nu ar mai fi minimul acolo, deci il bagi la sfarsit. Dar nu inteleg de ce scoti elemente mai mici ca A[i-x] din coada, atat timp cat ele pot reprezenta minime viitoare...
Ma iertati daca am intrebat chestii evidente, dar nu prea inteleg cum functioneaza tipul asta de coada.
PS: nu poate fi rezolvata problema aflarii minimului si cu un minheap, din care scufunzi radacina daca e "indepartata" de pozitia actuala cu mai mult de y pozitii?..