私は2つのボタンを持つ愚かな古い目覚まし時計を持っています:hourとminute。このhourボタンは、設定されたアラームの時間を増やし、設定されたアラームminuteの分の時間を増やします。ただし、一部のスマートデザイナーは、両方のボタンを同時に押すことには意味があることに気付き、and hourをminute同時に押すとアラームが12:00 am/ に設定されると判断しました0:00。あなたの仕事は、この動作をシミュレートすることです。
仕事
開始時間と一連のボタン状態が与えられたら、終了時間を把握します。
開始時刻から開始して、の各出現ごとに時間を(1,0)増やし、の各出現ごとに分を増やし、の各出現ごとに(0,1)時間を設定します。どちらのボタンも押されていないことに対応するため、状態は無視する必要があります。0:00(1,1)(0,0)
分と時間に追加するときに、分/時間が最大値を超える場合、に設定し0ます。つまり、分の値を増やすと分値が59設定され、0時間の値を増やすと時間値が23設定され0ます。制限を超える分/時間値の増分は、他の値に影響しません。たとえば、10:59yields の分では10:00なく、yieldsの増分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
入力は、時間と一連のボタン状態で構成されます。出力は1回です。
入力時間と出力時間は
- 2組
(hour, minute)または(minute, hour)中24など-hour時間(13, 30)(hourの範囲0へ23とminute範囲から0の59) - 前しかしと同じ
12-hour時間とブール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], ...]?