Освобождение ячеек камеры хранения
На вход программе подаются сведения о пассажирах, сдавших свой багаж в камеру хранения. В первой строке задано текущее время: через двоеточие два целых числа, соответствующие часам (от 00 до 23 — ровно 2 символа) и минутам (от 00 до 59 — ровно 2 символа). Во второй строке сообщается количество пассажиров N, которое не меньше 10, но не превосходит 1000. Каждая из следующих N строк имеет формат: <Фамилия> <время освобождения ячейки>, где <Фамилия> — строка, состоящая не более чем из 20 символов, а <время освобождения ячейки> задано через двоеточие двумя целыми числами, соответствующими часам и минутам. Фамилия и время освобождения ячейки разделены одним пробелом. Сведения отсортированы в порядке времени сдачи багажа. Требуется написать программу, выводящую фамилии пассажиров, которые в ближайшие 2 часа должны освободить ячейки, в хронологическом порядке освобождения ячеек.
Пример входных данных: 10:00; 3; Иванов 12:00; Петров 10:00; Сидоров 12:12. Результат: Петров, Иванов.
Условие как в банке ФИПИ — открыть и сверить
| На вход программе подаются сведения о пассажирах, сдавших свой багаж в камеру хранения. В первой строке задано текущее время: через двоеточие два целых числа, соответствующие часам (от 00 до 23 – ровно 2 символа) и минутам (от 00 до 59 – ровно 2 символа). Во второй строке сообщается количество пассажиров N, которое не меньше 10, но не превосходит 1000. Каждая из следующих N строк имеет следующий формат: <Фамилия> <время освобождения ячейки>, где <Фамилия> – строка, состоящая не более, чем из 20 символов, <время освобождения ячейки> – через двоеточие два целых числа, соответствующие часам (от 00 до 23 – ровно 2 символа) и минутам (от 00 до 59 – ровно 2 символа). <Фамилия> и <время освобождения ячейки> разделены одним пробелом. Сведения отсортированы в порядке времени сдачи багажа.
Требуется написать программу, выводящую фамилии пассажиров, которые в ближайшие 2 часа должны освободить ячейки, в хронологическом порядке освобождения ячеек. Пример входных данных:
Результат работы программы для этого примера: Петров Иванов | ||
| |
Это задание с развёрнутым решением: ответом считается запись хода решения, а не строка. Напишите решение на бумаге и сравните с разбором — там каждый шаг с обоснованием.
Открыть разбор1Мягкая — с чего смотретьуровень 1 из 3
Как представить время в минутах, чтобы сравнивать его арифметически и сортировать?
2Наводящая — какие числа считатьуровень 2 из 3
Переведите время в минуты от начала суток. Для каждого пассажира проверьте условие $t_{\text{тек}} \leq t \leq t_{\text{тек}} + 120$, затем отсортируйте подходящие записи по времени освобождения.
3Прямая — фактически решениеуровень 3 из 3
Разберите строку методом split(), сохраните фамилию и время. После фильтрации используйте сортировку по числовому времени и выведите фамилии.