Перцентиль времени доставки

тема: Описательная статистика · уровень: средний

Условие

Служба доставки еды хранит сведения о заказах и отдельную таблицу с данными курьеров. Идентификатор заказа позволяет сопоставить строку заказа со строкой курьерского отчёта.

Для оценки скорости доставки требуется найти перцентиль времени доставки среди заказов, у которых есть курьерский отчёт с известным временем. Значение - в курьерском отчёте означает, что время не зафиксировано и такой заказ в расчёт не включается. Заказы без строки в таблице курьерских отчётов также не включаются.

Пусть после сопоставления получилось 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 →

Куда дальше