Esimerkiksi kun $n=4$ ja $k=3$, lista muuttuu näin:
$[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 $4$.
Voit olettaa, että $n$ on välillä $2 \dots 10^5$ ja $k$ on enintään $10^5$. Tavoitteena on, että algoritmin aikavaativuus on $O(n+k)$.
Toteuta tiedostoon
fliptwo.py
funktio solve
, joka palauttaa ensimmäisen alkion $k$ 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)) # 9875Lisähaaste: Tehtävä on mahdollista ratkaista myös matemaattisesti ajassa $O(1)$. Voit halutessasi miettiä myös tällaista ratkaisua.