Mój budzik
Jestem Amerykaninem, podobnie jak mój (cyfrowy) budzik. Aby ustawić alarm, rozpoczyna się w momencie, w którym był wcześniej. Naciśnięcie przycisku godziny powoduje przesunięcie go o jedną godzinę w górę, a naciśnięcie przycisku minuty powoduje przesunięcie go o jedną minutę w górę. Wciśnięcie obu przycisków jednocześnie resetuje je do północy (12:00) i liczy się jako naciśnięcie dwóch przycisków.
Gdy godziny przekroczą limit (12), resetuje się do 1 i przełącza lampkę AM / PM. Gdy minuty przekroczą limit (59), resetują się do 0, bez wpływu na godziny.
Zadanie
Twoim zadaniem jest, biorąc pod uwagę czas rozpoczęcia i czas docelowy, wygenerowanie optymalnej liczby naciśnięć przycisków potrzebnych do ustawienia mojego alarmu na czas docelowy.
Możesz wprowadzać dane w dowolnym formacie, który najbardziej Ci odpowiada. Jedyne dane, których Twój program powinien potrzebować, to godziny i minuty dla obu danych wejściowych. Oznacza to, że na przykład możesz brać dane jako milisekundy od epoki i wyodrębniać godziny i minuty, ale nie możesz niczego zakodować w roku, miesiącu, drugim itd. Pamiętaj, że chociaż możesz na przykład wprowadzać dane za pomocą „czas wojskowy” (lub zwykły czas dla większości świata), ale to nie zmienia sposobu działania mojego zegara.
Przykłady
1:15 pm -> 2:30 am
Możesz nacisnąć oba przyciski, aby zresetować do godziny 12:00, a następnie zwiększyć ją do 2:30, co byłoby 2+2+30 = 34
naciśnięciem przycisku. Możesz także zwiększyć czas do 2:30, co byłoby 13+15 = 28
naciśnięciem przycisku. Dlatego twój wynik to 28
.
3:58 am -> 4:02 am
Możesz zresetować i zwiększyć, co byłoby 2+4+2 = 8
naciśnięciem przycisku. Możesz także zwiększać, czyli naciskać 1+4 = 5
przyciski. Dlatego twój wynik to 5
.
10:55 pm -> 1:00 am
Możesz zresetować i zwiększyć, co byłoby 2+1 = 3
naciśnięciem przycisku. Możesz także zwiększać, czyli naciskać 3+5=8
przyciski. Dlatego twój wynik to 3
.
1:00 am -> 1:59 pm
Możesz resetować i zwiększać, ale byłoby to o trzy kolejne naciśnięcia więcej niż zwiększanie. Dlatego twój wynik to 12+59 =
71
.
Przypadki testowe
Current Target = Output
1:15pm 2:30am = 28
3:58am 4:02am = 5
10:55pm 1:00am = 3
1:00am 1:59pm = 71
12:00am 12:00am = 0
6:51pm 12:00am = 2
2:01pm 11:00pm = 25
2:01pm 11:01pm = 9
12:59am 12:01am = 2
11:50am 12:00pm = 11