pannenkoek2012 має на меті виконати Super Mario 64 якомога менше натискань на кнопку A, завдяки чому Маріо стрибає. Кожна преса складається з трьох частин:
- Натискання кнопки
- Тримайте його будь-який проміжок часу
- Звільняючи його
Дивіться у цьому відео (1:15 - 3:23), щоб отримати чудове пояснення, яке містить наведене вище зображення. (Однак цей виклик не буде використовувати термінологію напівпресування A і створюватиме перешкоди, які потребують звільнення А.)
Завдання:
Враховуючи послідовність перешкод, які потребують натискання (P), утримування (H) або відпускання (R) кнопки A, видайте найменшу кількість натискань, необхідних для їх подолання у заданому порядку. Спочатку кнопка A не утримується.
Формально сказано: задавши рядок S символів PHR, розгляньте рядки форми, (PH*R)*які містять S як підпорядкування, і виведіть Pв такому рядку найменшу можливу кількість s. Або, альтернативно, знайдіть найменшу кількість шматочків форми, на P?H*R?яку S можна розбити.
Приклад
Давайте подивимось на вхід RHRPHHHR. Кнопка A починається не утримується, тому для подолання початкової перешкоди Rпотрібно натиснути і відпустити кнопку (натисніть №1). Далі нам потрібно утримувати кнопку H, яка знову вимагає її спочатку натиснути (натисніть №2). Потім він може бути відпущений згодом для задоволення Rпісля нього. Нарешті, решту PHHHRможна задовольнити одним натисканням (натисніть №3) з подальшим утримуванням HHHта відпуском R. Отже, кількість вихідних даних - 3.
Ще один спосіб побачити це - ми можемо розділити вхідний рядок на 3 частини форми, PHH..HHRде букви можуть бути пропущені.
R
HR
PHHHR
Формат введення
Введенням буде список або рядок елементів, що представляють натискання, утримування та випуск як ваш вибір:
P, H, Rp, h, r1, 2, 30, 1, 2
збігаються у наведеному порядку. Вхід не буде порожнім.
Тестові приклади:
P 1
H 1
R 1
HP 2
RHP 3
HHR 1
PHRH 2
RHRPHHHR 3
HHHHHH 1
PPRRHHPP 6
HPPRHRPRHPPRHPPHRP 12
PRHRHPHHPRRRHPPRHHPPRRRHRHPRPHPRPRHHRPPPRHPRP 28
Табло:
