Частые теги выдач библиотеки
Условие
В библиотеке для каждой выдачи книги сохраняется один тематический тег. Тег представляет собой слово, например history или fantasy. Иногда тег не указан, тогда вместо него записан символ -.
Мешком слов называется набор всех указанных тегов, где одинаковые слова учитываются столько раз, сколько раз встретились во входных данных. Пропущенные теги со значением - в мешок слов не включаются.
Для каждого слова w его частота определяется формулой f(w) = количество строк, в которых тег равен w. Слова упорядочиваются по убыванию частоты. Если частоты двух слов равны, раньше располагается лексикографически меньшее слово.
После записей выдач находится запрос из нескольких значений k. Для каждого значения k требуется вывести слово, стоящее на позиции k в указанном порядке. Гарантируется, что для каждого запроса существует слово с такой позицией.
Формат ввода
В первой строке дано целое число n — количество записей выдач.
В следующих n строках записаны два значения: идентификатор выдачи book_id и тег tag_word.
Затем дано целое число q — количество запросов.
В следующих q строках дано по одному целому числу k — позиции слова в упорядоченном мешке слов.
Формат вывода
Для каждого запроса выведите в отдельной строке слово на позиции k.
Ответ состоит из строковых значений, поэтому округление не применяется.
Ограничения
1 ≤ n ≤ 1000.
1 ≤ book_id ≤ 10^9, все идентификаторы выдач различны.
tag_word равно - либо состоит из строчных латинских букв и имеет длину от 1 до 20.
Во входе есть хотя бы один тег, отличный от -.
1 ≤ q ≤ 20.
Для каждого запроса 1 ≤ k ≤ d, где d — количество различных тегов, не равных -.
Решить задачу с автопроверкой на Python →
Куда дальше
- С нуля до олимпиады: маршрут — сколько занимает язык, какие приёмы нужны и к какому этапу это ведёт
- БВИ и льготы при поступлении — какой диплом что даёт и сколько лет он действует
- Перечневые олимпиады по информатике — олимпиады перечня Минобрнауки, их уровни и что нужно к диплому