私は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:59
yields の分では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: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], ...]
?