Quanto tempo è rimasto?
Di recente, stavo preparando la pizza usando un timer da 5 minuti sul mio telefono. Quando qualcuno è entrato e mi ha chiesto per quanto tempo mi è rimasto, sono stato inizialmente confuso per un momento su come rispondere alla domanda. Vedete, se il timer in quel momento fosse alle 3:47, quando avessi letto ad alta voce "Tre minuti e quarantasette secondi", il tempo sarebbe cambiato. Pertanto, ho bisogno di trovare un tempo che il timer raggiunga proprio quando finisco di leggerlo.
Questa è la tua sfida: automatizzare questo processo. Dato un tempo in qualsiasi formato appropriato (":" delimitato, o come un minuto e un secondo argomento), emette il primo tempo da quel momento attuale che richiederebbe una quantità uguale di tempo per leggere come ci vorrebbe per ottenere il timer per. Partiamo dal presupposto che ogni sillaba richiede 1 secondo per la lettura.
Ulteriori regole
- Devi contare 'minuti' e 'secondi' come due delle sillabe ciascuna, oltre a 'e' tra di loro.
- La cottura della pizza non richiederà mai più di 59:59.
- '11 minuti e 0 secondi 'non sono 10 sillabe: devi semplificare a '11 minuti' (cioè 5 sillabe). Lo stesso vale per i minuti: anche '0 minuti e 7 secondi' viene conteggiato solo come 4 sillabe.
- Il tuo programma può fornire l'output in qualsiasi formato: una matrice di
[minutes, seconds]
, o anche come<minutes> minutes and <seconds> seconds
(testo normale scritto). - Si applicano scappatoie standard.
- Questo è code-golf , quindi vince la risposta più breve in byte.
Casi test
Tutti gli ingressi come (minutes, seconds)
(4, 47) = (4, 38) (Four MiNutes And ThirTy Eight SeConds - 9 syllables/seconds)
(1, 1) = (0, 56) (FifTy-Six SeConds - 5 syllables/seconds)
(59, 57) = (59, 46) (FifTy Nine Minutes And Forty Six SeConds - 11 syllables/seconds)
(0, 10) = null/error/0 (no positive answer)
Riferimento di conteggio della sillaba
Per riferimento, ecco il numero di sillabe in ogni numero fino a 59.
0,0 (does not need to be counted)
1,1
2,1
3,1
4,1
5,1
6,1
7,2
8,1
9,1
10,1
11,3
12,1
13,2
14,2
15,2
16,2
17,3
18,2
19,2
20,2
21,3
22,3
23,3
24,3
25,3
26,3
27,4
28,3
29,3
30,2
31,3
32,3
33,3
34,3
35,3
36,3
37,4
38,3
39,3
40,2
41,3
42,3
43,3
44,3
45,3
46,3
47,4
48,3
49,3
50,2
51,3
52,3
53,3
54,3
55,3
56,3
57,4
58,3
59,3