Быстрые времена на планете Риджмонт
NASA установило связь с новой планетой, открытой доктором Риджемонтом. Удивительно, но календарь этой планеты очень похож на земной, хотя продолжительность минут, часов, дней и других единиц времени отличается. Например, на Планете Риджемонта минута может длиться 54 секунды, в часе может быть 61 минута, в дне — 23 часа, а в году — 340 дней. Год делится на месяцы, и, как на Земле, каждый месяц может иметь разное количество дней. Жители планеты установили календарь так, чтобы не было необходимости учитывать високосные годы или переход на летнее время, но в остальном всё отличается.
Инженеры-программисты NASA стремятся к повторному использованию кода, поэтому они хотят адаптировать свой исходный код Linux для системы связи, используемой для общения с жителями этой далекой планеты. Большая часть их программного обеспечения использует функцию "difftime", которая принимает две спецификации даты и времени и возвращает количество секунд между ними. Например, на Земле, если спросить разницу между 12:35:00 одного дня и 12:35:15 следующего дня, ответ будет 86415. Это количество секунд за один день (24 часа умножить на 60 минут умножить на 60 секунд равно 86400) плюс дополнительные 15 секунд. Все спецификации даты/времени выражены в виде строки в формате "MMDDYYHHMMSS".
Процедура, используемая difftime, заключается в определении количества полных дней, прошедших между входными спецификациями, и добавлении соответствующего количества секунд. Затем определяется, сколько ещё часов необходимо, затем сколько ещё минут и так далее.
Пример: предположим, что на планете 13 месяцев, и количество дней в каждом месяце указано в таблице ниже. Всего в году 399 дней.
На планете 23 часа в дне, каждый час состоит из 53 минут, и каждая минута — из 61 секунды.
Инженер NASA хочет узнать разницу между 02/29/11-22:30:05 и 03/01/11-10:00:00. Расчет, выполняемый difftime, может быть следующим:
В этом случае функция возвращает 108087 "планетных секунд".
Напишите программу, которая считывает характеристики времени на далекой планете и две спецификации даты/времени, а затем выводит разницу между двумя временами. Гарантируется, что первая спецификация даты/времени не позже второй.
Входные данные
Будет произвольное количество случаев для рассмотрения. Ввод для каждого случая начнется с новой строки и будет состоять из серии значений, которые занимают одну или несколько строк. Каждая серия будет содержать следующие элементы данных в указанном порядке, разделенные одним или несколькими пробелами и/или новыми строками. Допустимый диапазон значений для каждого элемента указан в скобках после элемента.
Количество секунд в минуте (1..100)
Количество минут в часе (1..100)
Количество часов в дне (1..100)
Количество месяцев в году (1..99), за которым следуют столько же целых чисел, каждое из которых представляет количество дней в соответствующем месяце (1..99)
Спецификация начальной даты/времени в формате MM/DD/YY-HH:MM:SS, без встроенных пробелов.
Спецификация конечной даты/времени в формате MM/DD/YY-HH:MM:SS, без встроенных пробелов.
Как на Земле, месяцы и дни нумеруются начиная с единицы, а годы, часы, минуты и секунды нумеруются начиная с нуля.
Серия, следующая за вводом для последнего случая, будет содержать один ноль.
Выходные данные
Для каждого случая ваша программа должна вывести разницу между начальной и конечной спецификациями даты/времени в секундах. Каждый результат должен быть напечатан на отдельной строке, начиная с первого столбца, без каких-либо завершающих пробелов.