Сходство заметок о поездках велопроката
Условие
В городском велопрокате для каждой поездки сохраняются две короткие заметки: одна записана при выдаче велосипеда, другая — при возврате. Записи хранятся в двух отдельных таблицах и сопоставляются по идентификатору поездки.
Словом считается последовательность строчных латинских букв, отделённая от других слов пробелами. Повторения одного и того же слова в заметке не учитываются. Для каждой поездки строятся множества слов A и B из заметок выдачи и возврата.
Для каждой пары заметок вычисляется коэффициент Жаккара: J(A, B) = |A ∩ B| / |A ∪ B|. Требуется найти наибольший коэффициент Жаккара среди всех поездок. Если обе заметки поездки пусты, её коэффициент считается равным 0. Если наибольшее значение достигается у нескольких поездок, выводится это общее значение.
Формат ввода
В первой строке даны два целых числа n и m — число строк в таблице выдачи и число строк в таблице возврата.
В следующих n строках записана таблица выдачи. Каждая строка содержит идентификатор поездки trip_id, затем пробел и заметку выдачи.
В следующих m строках записана таблица возврата в таком же формате: идентификатор поездки trip_id, затем пробел и заметка возврата.
Заметка состоит из слов, разделённых одиночными пробелами. Вместо отсутствующей заметки записан единственный символ -.
Формат вывода
Выведите наибольший коэффициент Жаккара с тремя знаками после десятичной точки.
Округление выполняется до ближайшего значения с тремя знаками после точки. Если число находится ровно посередине между двумя такими значениями, выбирается большее значение.
Ограничения
1 ≤ n = m ≤ 1000.
Всего во входе не более 2000 строк с данными о поездках.
Идентификатор trip_id — целое число от 1 до 10^9.
Каждый идентификатор встречается ровно один раз в каждой таблице, и множества идентификаторов двух таблиц совпадают.
Длина заметки без идентификатора составляет от 1 до 120 символов.
Слово содержит от 1 до 20 строчных латинских букв.
В одной заметке не более 30 слов.
Решить задачу с автопроверкой на Python →
Куда дальше
- Школьный этап ВсОШ по информатике — как устроен первый этап и план подготовки за четыре недели
- БВИ и льготы при поступлении — какой диплом что даёт и сколько лет он действует
- Перечневые олимпиады по информатике — олимпиады перечня Минобрнауки, их уровни и что нужно к диплому