CSES - Muuttuva lista

Lista sisältää kokonaisluvut 1,2,,n1,2,\dots,n. Joka askeleella listan kaksi ensimmäistä alkiota siirretään loppuun käänteisessä järjestyksessä. Mikä on listan ensimmäinen alkio, kun kaikki askeleet on suoritettu?

Tarkastellaan esimerkkiä, jossa lista on [1,2,3,4][1,2,3,4] ja suoritetaan kolme askelta. Tässä tapauksessa lista muuttuu seuraavasti:

[1,2,3,4][3,4,2,1][2,1,4,3][4,3,1,2][1,2,3,4] \rightarrow [3,4,2,1] \rightarrow [2,1,4,3] \rightarrow [4,3,1,2]

Näiden askelten jälkeen listan ensimmäinen alkio on 44.

Toteuta tiedostoon fliptwo.py funktio find_first, jolle annetaan listan koko ja askelten määrä. Funktion tulee palauttaa listan ensimmäinen luku askelten jälkeen.

Toteuta funktio niin, että se suorittaa nopeasti jokaisen askeleen. Funktion tulee antaa vastaus välittömästi myös tehtäväpohjan viimeisessä testissä.

def find_first(size, steps):
    # TODO

if __name__ == "__main__":
    print(find_first(4, 3)) # 4
    print(find_first(12, 5)) # 11
    print(find_first(2, 1000)) # 1
    print(find_first(99, 555)) # 11
    print(find_first(12345, 10**6)) # 12295