Перцентиль времени доставки
Условие
Служба доставки еды хранит сведения о заказах и отдельную таблицу с данными курьеров. Идентификатор заказа позволяет сопоставить строку заказа со строкой курьерского отчёта.
Для оценки скорости доставки требуется найти перцентиль времени доставки среди заказов, у которых есть курьерский отчёт с известным временем. Значение - в курьерском отчёте означает, что время не зафиксировано и такой заказ в расчёт не включается. Заказы без строки в таблице курьерских отчётов также не включаются.
Пусть после сопоставления получилось k известных значений времени доставки. Для перцентиля p методом ближайшего ранга значения сортируются по неубыванию, вычисляется ранг r = ceil(p * k / 100), после чего берётся значение с номером r, начиная с 1. Если одинаковое время встречается несколько раз, каждое такое значение считается отдельным наблюдением, а при попадании ранга в группу равных значений выводится это общее время. Гарантируется, что после исключения пропусков останется хотя бы одно значение.
Выведите найденный перцентиль.
Формат ввода
В первой строке даны три целых числа n, m и p — число строк в таблице заказов, число строк в таблице курьерских отчётов и уровень перцентиля.
В следующих n строках записаны идентификатор заказа order_id и код ресторана restaurant_code.
В следующих m строках записаны идентификатор заказа order_id и время доставки delivery_minutes. Вместо времени может стоять символ -.
Идентификаторы заказов в каждой из двух таблиц не повторяются. Каждый идентификатор из таблицы курьерских отчётов присутствует в таблице заказов.
Формат вывода
Выведите одно целое число — время доставки на найденном перцентиле в минутах.
Округление не применяется, так как время доставки и ответ являются целыми числами.
Ограничения
1 ≤ n ≤ 1000.
1 ≤ m ≤ 1000.
n + m ≤ 2000.
1 ≤ p ≤ 100.
Идентификатор order_id имеет длину от 4 до 10 символов и состоит из латинских букв, цифр и символа _.
Код restaurant_code имеет длину от 2 до 12 символов и состоит из латинских букв, цифр и символа _.
Если время доставки известно, то 1 ≤ delivery_minutes ≤ 240.
Решить задачу с автопроверкой на Python →
Куда дальше
- Школьный этап ВсОШ по информатике — как устроен первый этап и план подготовки за четыре недели
- Родителям: подготовка бесплатно — сколько стоит репетитор, что даёт бесплатный маршрут и как понять, что ребёнок занимается
- БВИ и льготы при поступлении — какой диплом что даёт и сколько лет он действует