CSES - Muuttuva lista

Aluksi listan sisältö on [1,2,3,...,n][1,2,3,...,n]. Joka askeleella otat listan kaksi ensimmäistä alkiota ja siirrät ne listan loppuun käänteisessä järjestyksessä. Mikä on listan ensimmäinen alkio kk askeleen jälkeen?

Esimerkiksi kun n=4n=4 ja k=3k=3, lista muuttuu näin:

[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]

Tässä tapauksessa listan ensimmäinen alkio on siis 44.

Algoritmin aikavaativuuden tulee olla O(n+k)O(n+k).

Toteuta tiedostoon fliptwo.py funktio solve, joka palauttaa ensimmäisen alkion kk askeleen jälkeen.

def solve(n,k):
    # TODO

if __name__ == "__main__":
    print(solve(4, 3)) # 4
    print(solve(12, 5)) # 11
    print(solve(99, 555)) # 11
    print(solve(12345, 54321)) # 9875