¿Cuánto tiempo queda?
Recientemente, estaba haciendo pizza usando un temporizador de 5 minutos en mi teléfono. Cuando alguien entró y me preguntó cuánto tiempo me quedaba, al principio me confundí por un momento sobre cómo responder la pregunta. Verá, si el temporizador en el momento actual fuera a las 3:47, para cuando hubiera leído en voz alta 'Tres minutos y cuarenta y siete segundos', el tiempo habría cambiado. Por lo tanto, necesito encontrar un momento en que el temporizador llegue justo cuando termine de leerlo.
Este es su desafío: automatizar este proceso. Dado un tiempo en cualquier formato apropiado (":" delimitado, o como un minuto y un segundo argumento), genera el tiempo más temprano desde ese momento actual, lo que tomaría la misma cantidad de tiempo que el temporizador para obtener a. Suponemos que cada sílaba tarda 1 segundo en leerse.
Reglas adicionales
- Debe contar 'minutos' y 'segundos' como dos de las sílabas cada una, así como un 'y' entre ellas.
- La pizza nunca tomará más de 59:59 para cocinar.
- '11 minutos y 0 segundos 'no son 10 sílabas: debe simplificar a '11 minutos' (es decir, 5 sílabas). Lo mismo ocurre con los minutos: '0 minutos y 7 segundos' también solo se cuenta como 4 sílabas.
- Su programa puede dar la salida en cualquier formato: una matriz de
[minutes, seconds]
, o incluso como<minutes> minutes and <seconds> seconds
(texto normal escrito). - Se aplican lagunas estándar.
- Este es el código de golf , por lo que la respuesta más corta en bytes gana.
Casos de prueba
Todas las 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)
Referencia de recuento de sílabas
Como referencia, aquí están el número de sílabas en cada número hasta 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