Mam głupi stary budzik z dwoma przyciskami: houri minute. ThehourPrzycisku zwiększa godzinę zestawu alarmu, a minuteprzyrosty czasu minutowego zestawu alarmu. Jednak niektóre inteligentne projektanci sobie sprawę, że naciśnięcie obu przycisków jednocześnie powinno mieć znaczenia, i zdecydował, że naciśnięcie houri minutejednocześnie spowodowałoby alarm ma być ustawiony na 12:00 am
/ 0:00
. Twoim zadaniem jest symulacja tego zachowania.
Zadanie
Biorąc pod uwagę czas rozpoczęcia i sekwencję stanów przycisków, określ czas zakończenia.
Począwszy od godziny rozpoczęcia, zwiększ godzinę dla każdego wystąpienia (1,0)
, zwiększ minutę dla każdego wystąpienia (0,1)
i ustaw czas na0:00
dla każdego wystąpienia (1,1)
. Stany (0,0)
należy zignorować, ponieważ odpowiadają one naciśnięciu żadnego przycisku.
Przy dodawaniu do minut i godzin, jeśli minuta / godzina przekracza maksimum, ustaw ją na 0
, tzn. Zwiększając wartość minuty, 59
należy ustawić wartość minuty na, 0
a zwiększając wartość godziny, 23
należy ustawić wartość godziny na 0
. Zwiększanie wartości minut / godzina powyżej ich granic nie mają wpływu na inne wartości, na przykład zwiększając minutę 10:59
wydajności 10:00
nie 11:00
.
Przykład
Biorąc pod uwagę czas 13:58
i kroki wejściowe [(0,1),(0,1),(0,1),(0,0),(1,1),(1,0)]
,
(0,1)
. To odpowiada minutenaciśnięciu. Czas jest teraz13:59
.(0,1)
. To odpowiada minutenaciśnięciu. Czas jest teraz13:00
.(0,1)
. To odpowiada minutenaciśnięciu. Czas jest teraz13:01
.(0,0)
. Odpowiada to naciśnięciu żadnego przycisku. Czas, bez zmian, jest teraz13:01
(1,1)
. Odpowiada to naciśnięciu obu przycisków. Czas jest teraz0:00
.(1,0)
To odpowiada hournaciśnięciu. Czas jest teraz1:00
.
Ponieważ kończymy 1:00
, jest to wynik.
I / O
Dane wejściowe będą składały się z czasu i sekwencji stanów przycisków. Wyjście jest jednorazowe.
Czas wejściowy i czas wyjściowy mogą być
- 2-krotnym
(hour, minute)
lub(minute, hour)
w24
godzinny czas, takich jak(13, 30)
(hour
waha się od0
celu23
iminute
waha się od0
się59
) - taki sam jak poprzedni, lecz w
12
godzinny czas i logicznaam
/pm
wyłącznik (hour
w zakresie od0
do11
lub12
i1
do11
zminute
z0
z59
). - liczba minut od
0:00
takich jak 810 (od 0 do 1439 włącznie) - każdy inny format, który koduje te same informacje
Sekwencja stanów przycisków jest reprezentacją listy logicznych 2-krotek, na przykład:
- lista krotek:
[(0,1),(1,0),(0,0),(1,1)]
- ciąg rozdzielany spacjami:
"01 10 00 11"
- ciąg:
"01100011"
- w czwartorzędu:
[1,2,0,3]
- przekonwertowane na liczbę całkowitą:
99
- każdy inny format, który koduje te same informacje
Przypadki testowe
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], ...]
?