Flip of Time

Flip of Time

Klepsydra jest podana jako tablica krotka (upper, lower) dla liczby minut piasku, które są obecnie przechowywane w jej górnej i dolnej komorze, obie komory są wystarczająco duże, aby pomieścić cały piasek w tej klepsydrze. Tak więc po upływie m minut stan tej konkretnej klepsydry będzie wynosił upper - min(upper, m), lower + min(upper, m). Całkowita ilość piasku wewnątrz klepsydry nigdy się nie zmieni, ani żadna z komór nigdy nie będzie zawierać ujemnego anty-piasku.

Biorąc pod uwagę listę glasses, zadaniem gracza jest znalezienie optymalnej sekwencji ruchów, która pozwoli odmierzyć dokładnie t minut, liczonych jako liczba wykonanych po drodze przesunięć klepsydry. Każdy ruch składa się z dwóch etapów:

  • najpierw należy poczekać, aż klepsydra, w której aktualnie znajduje się najmniejsza niezerowa m ilość piasku w górnej komorze, wyczerpie się.
  • gdy to nastąpi, należy wybrać dowolny podzbiór glasses i natychmiast odwrócić wybrany podzbiór.

Proszę spojrzeć na przykład dla [(7, 0), (11, 0)], 15 przypadku. Wyjaśnienie nieco zmienionego przypadku można znaleźć na stronie Popular Mechanics article.

example

W pierwszym etapie nie ma Pan wyboru co do czekania, ale w drugim etapie cieszy się Pan bogactwem 2n - 1 możliwych ruchów dla okularów n!

Funkcja ta powinna...

You should be an authorized user in order to see the full description and start solving this mission.