Перцентиль оценок мобильного приложения
Условие
В сервисе отзывов о мобильном приложении каждая опубликованная оценка имеет значение от 1 до 5. Иногда пользователь оставляет текстовый отзыв, но не выставляет оценку. Такая запись обозначается словом NA.
Для отчёта требуется найти несколько перцентилей оценок методом ближайшего ранга. Пропуски NA не участвуют в расчёте. Пусть после удаления пропусков осталось m оценок, а их значения после сортировки по неубыванию равны a_1, a_2, ..., a_m.
Для параметра p перцентиль ближайшего ранга определяется формулой P_p = a_r, где r = ceil(p · m / 100). В конце входа задан один или несколько параметров p; для каждого из них требуется вывести соответствующий перцентиль. При равенстве оценок каждая повторяющаяся оценка считается отдельным элементом отсортированного списка и занимает отдельный ранг.
Гарантируется, что среди записей есть хотя бы одна оценка, не равная NA. Округление результата не выполняется, так как результатом является целая оценка от 1 до 5.
Формат ввода
В первой строке дано целое число n — количество записей об отзывах.
В следующих n строках дано по одному значению review_rating: целое число от 1 до 5 или строка NA.
В следующей строке дано целое число q — количество запросов.
В следующих q строках дано по одному целому числу p — параметру перцентиля в процентах.
Формат вывода
Выведите q строк. В строке с номером i выведите целую оценку, равную перцентилю ближайшего ранга для i-го запроса.
Ограничения
1 ≤ n ≤ 2000.
Каждая строка review_rating имеет длину от 1 до 2 символов и содержит либо целое число от 1 до 5, либо NA.
Количество оценок, отличных от NA, не меньше 1.
1 ≤ q ≤ 100.
1 ≤ p ≤ 100.
Решить задачу с автопроверкой на Python →
Куда дальше
- Школьный этап ВсОШ по информатике — как устроен первый этап и план подготовки за четыре недели
- Родителям: подготовка бесплатно — сколько стоит репетитор, что даёт бесплатный маршрут и как понять, что ребёнок занимается
- БВИ и льготы при поступлении — какой диплом что даёт и сколько лет он действует