Flip of Time

Flip of Time

Пісочний годинник задано у вигляді масиву кортежу (upper, lower) для кількості хвилин піску, які наразі зберігаються у верхній та нижній камерах пісочного годинника, причому обидві камери достатньо великі, щоб вмістити весь пісок у цьому годиннику. Отже, після m хвилин часу, що минули, стан цього пісочного годинника буде upper - min(upper, m), lower + min(upper, m). Загальна кількість піску всередині пісочного годинника ніколи не змінюється, і жодна з камер ніколи не міститиме від'ємного антипіску.

За заданим списком glasses, ваша задача полягає у тому, щоб знайти оптимальну послідовність ходів, яка дозволить виміряти рівно t хвилин, що рахується як кількість окремих перевертань пісочного годинника, виконаних на цьому шляху. Кожен хід складається з двох етапів:

  • спочатку потрібно дочекатись, поки у верхній камері пісочного годинника закінчиться найменша ненульова кількість m піску, що знаходиться на даний момент у верхній камері.
  • коли це станеться, виберіть довільну підмножину glasses і миттєво переверніть цю підмножину.

Подивіться приклад для випадку [(7, 0), (11, 0)], 15 випадку. Ви можете знайти пояснення для дещо зміненого прикладу у Popular Mechanics article.

example

На першому етапі у вас немає іншого вибору, окрім як чекати, але на другому етапі ви насолоджуєтесь соромом багатства...

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