Quanto tempo resta?
Recentemente, eu estava fazendo pizza usando um timer de 5 minutos no meu telefone. Quando alguém entrou e me perguntou quanto tempo restava, fiquei confuso por um momento a respeito de como responder à pergunta. Veja bem, se o cronômetro no momento atual fosse às 3:47, quando eu lesse "Três minutos e quarenta e sete segundos" em voz alta, o tempo teria mudado. Portanto, preciso encontrar um tempo que o cronômetro atinja assim que terminar de lê-lo.
Este é o seu desafio: automatizar esse processo. Dado um tempo em qualquer formato apropriado (delimitado por ":" ou como um minuto e um segundo argumento), produza o tempo mais cedo a partir desse momento atual, que levaria uma quantidade igual de tempo para ser lido, pois o tempo seria necessário para que o cronômetro chegasse. para. Estamos assumindo que cada sílaba leva 1 segundo para ser lida.
Regras adicionais
- Você deve contar 'minutos' e 'segundos' como duas sílabas cada, bem como um 'e' entre elas.
- A pizza nunca leva mais do que 59:59 para cozinhar.
- '11 minutos e 0 segundos 'não são 10 sílabas: você deve simplificar para '11 minutos' (ou seja, 5 sílabas). O mesmo acontece com os minutos: '0 minutos e 7 segundos' também são contados apenas como 4 sílabas.
- Seu programa pode fornecer a saída em qualquer formato: uma matriz de
[minutes, seconds]
, ou mesmo como<minutes> minutes and <seconds> seconds
(texto normal escrito). - Aplicam-se brechas padrão.
- Isso é código-golfe , então a resposta mais curta em bytes vence.
Casos de teste
Todas as entradas como (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)
Referência de contagem de sílabas
Para referência, aqui está o número de sílabas em cada número até 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