Мій будильник
Я американець, як і мій (цифровий) будильник. Щоб встановити будильник, він запускається в той час, як був раніше. Натискання кнопки години переміщує її на одну годину, а натискання на кнопку хвилини переміщує її на одну хвилину. Одночасне натискання обох кнопок скидає її до півночі (12:00) і вважається двома натисканнями кнопок.
Коли години перевищують обмеження (12), він скидається на 1 і перемикає світло AM / PM. Коли хвилини перевищують обмеження (59), вони скидаються на 0, не впливаючи на години.
Завдання
Ваше завдання - задати час початку та цільовий час - вивести оптимальну кількість натискань кнопок, необхідних для встановлення моєї тривоги на цільовий час.
Ви можете брати інформацію в будь-якому форматі, який вам найбільше підходить. Єдині дані, які потрібні вашій програмі, - це години та хвилини для обох даних. Це означає, що, наприклад, ви можете приймати дані як мілісекунди з епохи, і витягувати години та хвилини, але ви можете нічого не кодувати в рік, місяць, секунду тощо. "військовий час" (або звичайний час для більшості країн світу), але це не змінює способу роботи мого годинника.
Приклади
1:15 pm -> 2:30 am
Ви можете натиснути обидві кнопки, щоб скинутись до 12:00, потім збільшувати до 2:30, що було б 2+2+30 = 34
натисканням кнопок. Ви також можете збільшити до 2:30 ранку, що було б 13+15 = 28
натисканням кнопок. Тому ваш результат є 28
.
3:58 am -> 4:02 am
Ви можете скинути та збільшити, що було б 2+4+2 = 8
натисканням кнопок. Ви також можете збільшити, що було б 1+4 = 5
натисканням кнопок. Тому ваш результат є 5
.
10:55 pm -> 1:00 am
Ви можете скинути та збільшити, що було б 2+1 = 3
натисканням кнопок. Ви також можете збільшити, що було б 3+5=8
натисканням кнопок. Тому ваш результат є 3
.
1:00 am -> 1:59 pm
Ви можете скинути і збільшити, але це було б більше трьох натискань, ніж просто збільшення. Тому ваш результат є 12+59 =
71
.
Випробування
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