Cerința
Se consideră o listă circulară simplu înlănțuită, alocată dinamic, cu n elemente, numere naturale citite de la tastatură; primul element al acestei liste este considerat element curent. Se citesc m numere naturale și pentru fiecare se aplică următoarea operație:
- pentru numărul citit
xelementul curent al listei avansează cuxpoziții; - după elementul curent actual se inserează dublul său și elementul inserat devine element curent.
Să se afișeze elementele listei după cele m operații. Afișarea începe cu elementul care a fost element curent imediat după citire.
Date de intrare
Programul citește din fișierul circularlistinsert.in numărul n, iar apoi cele n elemente ale listei, separate prin spații, iar apoi m și m numere naturale, separate prin spații.
Date de ieșire
Programul va afișa în fișierul circularlistinsert.out elementele listei prelucrate cu spații între ele.
Restricții și precizări
1 ≤ n ≤ 100.0001 ≤ m ≤ 10.000- cele
nnumere citite vor fi mai mici decât1.000 - cele
mnumere citite vor fi mai mici decât2.000 - pentru toate testele, după cele
minserări se vor obține în listă numere reprezentabile pe32de biți cu semn.
Exemplu:
circularlistinsert.in
8 15 8 5 15 8 6 2 16 4 4 6 8 5
circularlistinsert.out
15 8 16 5 10 15 8 16 32 6 2 16
Explicație
- inițial, elementul curent este
15, iarx=4. Elementul curent avansează cu4poziții și devine8, după el se inserează16și acesta devine element curent. Lista devine:15 8 5 15 8 16 6 2 16. - elementul curent este
16șix=6. Elementul curent avansează cu6poziții și devine5, după el se inserează10și acesta devine element curent. Lista devine:15 8 5 10 15 8 16 6 2 16.