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