Wie lange ist noch?
Vor kurzem habe ich mit einem 5-Minuten-Timer auf meinem Handy Pizza gemacht. Als jemand hereinkam und mich fragte, wie lange ich noch Zeit hätte, war ich zunächst für einen Moment verwirrt, wie ich die Frage beantworten sollte. Sie sehen, wenn der Zeitgeber zum gegenwärtigen Zeitpunkt um 3:47 war, hätte sich die Zeit geändert, als ich laut 'Drei Minuten und siebenundvierzig Sekunden' vorgelesen hatte. Daher muss ich eine Zeit finden, die der Timer erreicht, sobald ich mit dem Auslesen fertig bin.
Dies ist Ihre Herausforderung: Diesen Prozess zu automatisieren. Wenn Sie eine Zeit in einem geeigneten Format (":" mit Trennzeichen oder als Argument für Minute und Sekunde) angeben, geben Sie die früheste Zeit ab diesem aktuellen Zeitpunkt aus, für deren Auslesen die gleiche Zeit erforderlich ist wie für den Zeitgeber zu. Wir gehen davon aus, dass das Auslesen jeder Silbe 1 Sekunde dauert.
Weitere Regeln
- Sie müssen 'Minuten' und 'Sekunden' jeweils als zwei der Silben sowie ein 'und' dazwischen zählen.
- Die Pizza braucht nie mehr als 59:59, um zu kochen.
- '11 Minuten und 0 Sekunden 'ist nicht 10 Silben: Sie müssen zu '11 Minuten' (dh 5 Silben) vereinfachen. Gleiches gilt für Minuten: '0 Minuten und 7 Sekunden' werden ebenfalls nur als 4 Silben gezählt.
- Ihr Programm kann die Ausgabe in einem beliebigen Format ausgeben: als Array von
[minutes, seconds]
oder sogar als<minutes> minutes and <seconds> seconds
(normal ausgeschriebener Text). - Es gelten Standardlücken.
- Das ist Code-Golf , also gewinnt die kürzeste Antwort in Bytes.
Testfälle
Alle Eingaben als (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)
Silbenzahlreferenz
Als Referenz ist hier die Anzahl der Silben in jeder Zahl bis zu 59 angegeben.
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