Ctrl K

Когда все перезнакомились

Средняя
На конференции people участников с номерами от 0 до people - 1. Журнал meetings хранит записи [t, x, y]: в момент t участники x и y познакомились. Записи в журнале идут в произвольном порядке; одна и та же пара может встретиться в нём несколько раз. Знакомство взаимно. Будем говорить, что двое связаны, если они знакомы напрямую или через цепочку общих знакомых. Верните самый ранний момент, когда каждый участник связан с каждым. Если этого так и не происходит, верните -1.
Пример 1
meetings=[[9, 1, 2], [3, 0, 1], [15, 2, 3], [12, 0, 2]], people=4 → 15

В момент 3 связаны 0 и 1, в момент 9 к ним присоединяется 2, встреча в момент 12 ничего не меняет, а в момент 15 появляется связь с человеком 3 — все в одной компании.

Пример 2
meetings=[[1, 0, 1], [2, 2, 3]], people=4 → -1

Остаются две отдельные компании {0, 1} и {2, 3}, поэтому ответ -1.

Пример 3
meetings=[[50, 0, 2], [20, 1, 2], [70, 0, 1]], people=3 → 50
Ограничения
  • 2 ≤ people ≤ 100
  • 1 ≤ len(meetings) ≤ 10⁵
  • len(meetings[i]) == 3
  • 0 ≤ t ≤ 10⁹, все моменты t различны
  • 0 ≤ x, y ≤ people - 1, x ≠ y
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиСклеить карточки контактов СредняяПерестановки по связям СредняяОбмены близких чисел СредняяУровни клеток по строкам и столбцам СложнаяПоездки на самокате с лимитом дороги Сложная
загружаем Python…
Вход
meetings=[[9, 1, 2], [3, 0, 1], [15, 2, 3], [12, 0, 2]], people=4
Ожидается
15

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