Ctrl K

Пропуска во все залы

Средняя
В музее n залов с номерами от 0 до n - 1. Открыт только зал 0, остальные заперты, и войти в зал можно, только имея пропуск с его номером. В каждом зале лежат пропуска: halls[i] — номера залов, пропуска в которые вы найдёте в зале i. Все найденные пропуска остаются у вас, ходить между открытыми залами можно сколько угодно. Верните True, если, начав с зала 0, можно побывать во всех залах, и False иначе.
Пример 1
halls=[[2], [], [3, 1], []] → True

В зале 0 лежит пропуск в зал 2, в зале 2 — пропуска в залы 3 и 1. Открываются все четыре зала.

Пример 2
halls=[[1], [0], [3], [2]] → False

Залы 0 и 1 открывают только друг друга. Пропуска в залы 2 и 3 лежат внутри них самих, туда не попасть.

Ограничения
  • 2 ≤ n = len(halls) ≤ 1000
  • 0 ≤ len(halls[i]) ≤ 1000
  • 1 ≤ общее число пропусков ≤ 3000
  • 0 ≤ halls[i][j] < n
  • Номера внутри одного halls[i] различны
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиПорядок сборки модулей СредняяОчередь на курсы СредняяСкладываются ли связи в дерево СредняяЛучшие корни дерева СредняяСколько изолированных групп в сети Средняя
загружаем Python…
Вход
halls=[[2], [], [3, 1], []]
Ожидается
True

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