Мой будильник
Я американец, как и мой (цифровой) будильник. Чтобы установить будильник, он запускается в то время, когда это было ранее. Нажатие на кнопку часов перемещает его вверх на один час, а нажатие на кнопку минут перемещает его на одну минуту вверх. Одновременное нажатие обеих кнопок сбрасывает его до полуночи (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