Ho una stupida vecchia sveglia con due pulsanti: houre minute. Il hourpulsante aumenta l'ora di una sveglia impostata e minuteaumenta la durata dei minuti di una sveglia impostata. Tuttavia, alcuni designer intelligenti si sono resi conto che la pressione contemporanea di entrambi i pulsanti avrebbe dovuto avere un significato e hanno deciso che premendo houre minutecontemporaneamente si sarebbe impostato l'allarme su 12:00 am
/ 0:00
. Il tuo compito è simulare questo comportamento.
Compito
Data l'ora di inizio e una sequenza di stati dei pulsanti, capire l'ora di fine.
A partire dall'ora di inizio, incrementa l'ora per ogni occorrenza di (1,0)
, incrementa il minuto per ogni occorrenza di (0,1)
e imposta l'ora su 0:00
per ogni occorrenza di (1,1)
. Gli stati (0,0)
devono essere ignorati perché non corrispondono a nessuno dei due pulsanti.
Quando si aggiunge a minuti e ore, se il minuto / ora supera il massimo, impostarlo su 0
, ovvero se si aumenta un valore di minuto si 59
dovrebbe impostare il valore di minuto su 0
e incrementando un valore di ora si 23
dovrebbe impostare il valore di ora su 0
. L'incremento dei valori minuto / ora al di sopra dei loro limiti non influisce sull'altro valore, ad esempio incrementando il minuto dei 10:59
rendimenti 10:00
, no 11:00
.
Esempio
Dati i tempi di input 13:58
e i passaggi [(0,1),(0,1),(0,1),(0,0),(1,1),(1,0)]
,
(0,1)
. Questo corrisponde ad minuteessere premuto. I tempi sono adesso13:59
.(0,1)
. Questo corrisponde ad minuteessere premuto. I tempi sono adesso13:00
.(0,1)
. Questo corrisponde ad minuteessere premuto. I tempi sono adesso13:01
.(0,0)
. Ciò corrisponde a nessuno dei due pulsanti premuti. Il tempo, intatto, è adesso13:01
(1,1)
. Ciò corrisponde alla pressione di entrambi i pulsanti. I tempi sono adesso0:00
.(1,0)
Questo corrisponde ad houressere premuto. I tempi sono adesso1:00
.
Da quando finiamo con 1:00
, è l'output.
I / O
L'input consisterà in un tempo e una sequenza di stati dei pulsanti. L'output è una sola volta.
Il tempo di ingresso e il tempo di uscita possono essere
- una tupla di 2
(hour, minute)
o(minute, hour)
in24
-ora come(13, 30)
(hour
intervalli da0
a23
eminute
intervalli da0
a59
) - uguale al tempo precedente ma in
12
-ora e un interruttore booleanoam
/pm
(hour
varia da0
a11
o12
e1
a11
conminute
da0
a a59
). - un certo numero di minuti da allora
0:00
da 810 (da 0 a 1439, incluso) - qualsiasi altro formato che codifichi le stesse informazioni
La sequenza degli stati dei pulsanti è una rappresentazione di un elenco di 2 tuple booleane, ad esempio:
- un elenco di tuple:
[(0,1),(1,0),(0,0),(1,1)]
- una stringa delimitata da spazi:
"01 10 00 11"
- una stringa:
"01100011"
- in quaternario:
[1,2,0,3]
- convertito in un numero intero:
99
- qualsiasi altro formato che codifichi le stesse informazioni
Casi test
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], ...]
?