У мене дурний старий будильник з двома кнопками: 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:00
810 (від 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], ...]
?