Ctrl K

Завистливые партнёры

Средняя
На танцевальном вечере n участников (их номера от 0 до n - 1, n чётно). Для каждого участника i известен список ranking[i] — все остальные участники в порядке убывания симпатии: кто раньше в списке, тот нравится больше. Организаторы уже разбили всех на пары: couples[k] = [a, b] значит, что a танцует с b. Участник x, который танцует с y, **завидует**, если найдётся участник u, танцующий с v, такой что: - x нравится u больше, чем y, и - u нравится x больше, чем v. Верните, сколько участников завидуют.
Пример 1
n=4, ranking=[[2, 1, 3], [3, 0, 2], [0, 3, 1], [1, 0, 2]], couples=[[0, 1], [2, 3]] → 4

Танцор 0 стоит в паре с 1, но больше хочет к 2, а 2 тоже предпочитает 0 своему партнёру 3 — значит, 0 и 2 завидуют. Танцор 1 предпочёл бы 3, и 3 тоже предпочитает 1 своему партнёру 2 — завидуют и они. Ответ 4.

Пример 2
n=4, ranking=[[1, 2, 3], [0, 2, 3], [3, 0, 1], [2, 0, 1]], couples=[[0, 1], [2, 3]] → 0

Каждый стоит в паре со своим первым выбором, завидовать некому. Ответ 0.

Пример 3
n=2, ranking=[[1], [0]], couples=[[0, 1]] → 0
Ограничения
  • 2 ≤ n ≤ 500, n чётно
  • len(ranking) = n, а ranking[i] — перестановка всех номеров, кроме i
  • len(couples) = n / 2
  • Каждый участник входит ровно в одну пару
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиЧтение по спирали СредняяКвадрат, пронумерованный по спирали СредняяСледующий шаг колонии клеток СредняяЗигзаг по диагоналям СредняяТри в ряд до упора Средняя
загружаем Python…
Вход
n=4, ranking=[[2, 1, 3], [3, 0, 2], [0, 3, 1], [1, 0, 2]], couples=[[0, 1], [2, 3]]
Ожидается
4

«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 7 тестов на сервере, включая скрытые.