У мене дурний старий будильник з двома кнопками: hourі minute. hourКнопка збільшує час встановленої сигналізації, а також minuteзбільшення хвилинного час набору сигналу тривоги. Однак деякі розумні дизайнери зрозуміли, що натискання обох кнопок одночасно повинно мати сенс, і вирішили, що натискання hourі minuteодночасне спричинить встановлення тривоги на 12:00 am/ 0:00. Ваше завдання - імітувати таку поведінку.
Завдання
Враховуючи час початку та послідовність станів кнопок, визначте час закінчення.
Починаючи з часу початку, збільшуйте годину на кожне виникнення (1,0), збільшуйте хвилину на кожне виникнення (0,1)і встановлюйте час 0:00для кожного виникнення (1,1). Держави (0,0)слід ігнорувати, оскільки вони не відповідають жодній кнопці.
При додаванні до хвилин і годин, якщо хвилина / година перевищує максимум, встановіть її 0, тобто приріст хвилинного значення 59повинен встановити значення хвилини, 0а при збільшенні годинного значення 23слід встановити значення години 0. Збільшення значень хвилини / години вище їх меж не впливає на інше значення, наприклад збільшення хвилини 10:59урожайності 10:00, не 11:00.
Приклад
Враховуючи час 13:58і кроки введення [(0,1),(0,1),(0,1),(0,0),(1,1),(1,0)],
(0,1). Це відповідає minuteнатисканню. Час зараз13:59.(0,1). Це відповідає minuteнатисканню. Час зараз13:00.(0,1). Це відповідає minuteнатисканню. Час зараз13:01.(0,0). Це не відповідає жодній кнопці. Час, не зачеплений, зараз13:01(1,1). Це відповідає обом натиснутим кнопкам. Час зараз0:00.(1,0)Це відповідає hourнатисканню. Час зараз1:00.
Оскільки ми закінчуємо 1:00, це вихід.
I / O
Вхід складається з часу та послідовності станів кнопок. Вихід - одноразовий.
Час введення та час виходу може бути
- 2-кортеж
(hour, minute)або(minute, hour)в -24годинне часу , наприклад,(13, 30)(hourколивається від0до23іminuteзнаходиться в діапазоні від0до59) - то ж саме, що і попередній , але в -
12годинний часу і булевоїam/pmперемикач (hourзнаходиться в діапазоні від0до11або12і1до11зminuteз0до59). - кількість хвилин з часу
0:00810 (від 0 до 1439, включно) - будь-який інший формат, який кодує ту саму інформацію
Послідовність станів кнопок є поданням списку булевих 2-кортежів, наприклад:
- список кортежів:
[(0,1),(1,0),(0,0),(1,1)] - рядок з обмеженням пробілу:
"01 10 00 11" - рядок:
"01100011" - у четвертинному:
[1,2,0,3] - перетворене на ціле число:
99 - будь-який інший формат, який кодує ту саму інформацію
Випробування
time,steps -> output
06:49,[(0, 1)] -> 06:50
12:23,[(1, 0)] -> 13:23
02:23,[(0, 1), (1, 0)] -> 03:24
21:40,[(0, 1), (0, 1), (0, 1), (0, 1)] -> 21:44
13:10,[(0, 1), (0, 1), (0, 1), (0, 1), (1, 0), (1, 1), (0, 1), (0, 1)] -> 00:02
21:33,[(1, 0), (0, 1), (1, 0), (0, 1)] -> 23:35
14:21,[(0, 1), (0, 1), (0, 1)] -> 14:24
02:39,[(0, 0), (0, 1)] -> 02:40
16:07,[(0, 1), (0, 1), (0, 1), (0, 1), (1, 0), (1, 0), (0, 1), (0, 1), (1, 0), (0, 1), (0, 1), (0, 1)] -> 19:16
17:55,[(0, 1), (1, 0), (0, 1)] -> 18:57
15:55,[(1, 0), (1, 0), (1, 0), (0, 1), (0, 1), (0, 1), (1, 0), (1, 0), (0, 1), (1, 0), (1, 0), (0, 1), (1, 0)] -> 23:00
22:11,[(0, 1), (1, 0), (0, 1), (0, 1), (0, 1), (0, 1), (0, 1), (1, 0), (0, 1), (0, 1)] -> 00:19
03:58,[(1, 0), (0, 0), (0, 0), (0, 1), (0, 1), (1, 0), (1, 0), (0, 1), (0, 1), (1, 0), (0, 1)] -> 07:03
13:02,[(0, 1), (1, 0), (0, 1), (1, 0), (0, 1), (0, 1), (1, 0)] -> 16:06
04:37,[(1, 0), (0, 1), (0, 1), (0, 1), (0, 1), (0, 1), (0, 1), (0, 1), (0, 1), (1, 0), (0, 1), (1, 0), (0, 1), (1, 0)] -> 08:47
00:01,[(0, 1), (1, 0), (1, 0), (0, 1), (0, 1), (0, 1), (1, 0), (0, 1), (0, 1), (0, 1)] -> 03:08
02:58,[(1, 0), (1, 0), (0, 1)] -> 04:59
01:43,[(0, 1), (0, 1), (1, 0), (0, 1), (0, 1), (0, 1), (0, 1), (0, 1), (1, 0), (0, 1), (1, 0), (0, 1)] -> 04:52
07:54,[(1, 0), (0, 1), (1, 0), (1, 0), (1, 1)] -> 00:00
09:33,[(0, 1), (0, 1), (0, 1), (1, 0), (0, 1), (0, 1)] -> 10:38
09:01,[(0, 1), (0, 1)] -> 09:03
19:04,[(0, 1), (1, 0), (0, 1), (1, 0)] -> 21:06
11:17,[(0, 1), (1, 0), (0, 1), (0, 1), (1, 0), (0, 1), (0, 1), (1, 1), (0, 1), (0, 1)] -> 00:02
19:32,[(0, 1), (1, 0), (0, 1), (1, 0), (1, 0), (1, 0)] -> 23:34
17:31,[(0, 1), (0, 1), (0, 1), (1, 0), (0, 1), (1, 0), (0, 1), (0, 0), (1, 1), (0, 1)] -> 00:01
06:46,[(0, 1), (0, 1), (0, 1), (0, 1), (1, 0), (0, 1), (0, 1), (0, 1), (0, 1), (0, 1), (0, 1), (1, 0), (0, 1), (0, 1), (1, 0), (1, 0), (0, 1), (0, 1), (0, 1), (1, 0), (1, 0), (0, 1), (0, 1), (0, 1), (1, 0), (0, 1), (1, 0), (0, 1), (0, 1), (1, 0), (0, 1), (0, 1), (0, 1), (1, 0), (1, 0), (0, 1), (1, 0), (0, 1), (0, 1), (0, 1), (0, 1), (0, 1)] -> 18:16
[[initialHour, initialMinute], [hourPressed1, minuitePressed1], [hourPressed2, minuitePressed2], ...]?