Ctrl K

Вор и охранник

Сложная
Музей — это неориентированный граф: залы пронумерованы от 0 до n - 1, а halls[a] — список залов, соединённых проходом с залом a. Зал 0 — выход на улицу. Вор начинает в зале 1, охранник — в зале 2. Они ходят по очереди, первым ходит вор. Ход — обязательный переход по одному проходу в соседний зал; стоять на месте нельзя. Охраннику запрещено заходить в зал 0. Игра заканчивается, как только: - охранник и вор оказываются в одном зале — побеждает охранник; - вор попадает в зал 0 — побеждает вор; - повторяется позиция: оба стоят там же, где уже стояли раньше, и ходить снова тому же игроку — ничья. Оба играют наилучшим образом. Верните 1, если побеждает вор, 2, если побеждает охранник, и 0 при ничьей.
Пример 1
halls=[[1], [0, 2], [1]] → 1

Вор стоит в зале 1, и выход 0 прямо рядом: первым же ходом он уходит.

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

Из зала 1 вор может пойти только в зал 2, где уже стоит охранник, и сразу попадается.

Пример 3
halls=[[3], [3, 4], [3, 4], [0, 1, 2], [1, 2]] → 2
Ограничения
  • 3 ≤ n = len(halls) ≤ 50
  • 1 ≤ len(halls[i]) < n
  • 0 ≤ halls[i][j] < n, halls[i][j] ≠ i, соседи в списке не повторяются
  • Граф неориентированный: если b есть в halls[a], то a есть в halls[b]
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиМышь, кот и сыр СложнаяСамый длинный подъём по карте СложнаяСамый частый цвет на пути СложнаяПорядок постройки комнат СложнаяПрогулки только в гору Сложная
загружаем Python…
Вход
halls=[[1], [0, 2], [1]]
Ожидается
1

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