Ctrl K

Города, связанные большими делителями

Сложная
В стране n городов с номерами от 1 до n. Города x и y соединены дорогой напрямую, если у их номеров есть общий делитель, строго больший limit. Дороги двусторонние. Для каждого запроса [a, b] из списка queries выясните, можно ли добраться из города a в город b — напрямую или через другие города. Верните список из True и False: по одному значению на каждый запрос, в том же порядке.
Пример 1
n=8, limit=2, queries=[[3, 6], [4, 8], [2, 3], [5, 7]] → [True, True, False, False]

3 и 6 делятся на 3, 4 и 8 — на 4: обе пары соединены дорогой напрямую. У 2 нет делителей больше 2, у 5 и 7 — только они сами, и других кратных до 8 нет, так что эти города изолированы.

Пример 2
n=12, limit=1, queries=[[3, 4], [5, 7]] → [True, False]

3 → 6 (общий 3) → 4 (общий 2): путь есть. 7 связан только с 14, а его в стране нет, поэтому 5 и 7 не связаны.

Пример 3
n=4, limit=0, queries=[[1, 4], [2, 3]] → [True, True]

При пороге 0 подходит делитель 1, а на него делится любое число: все города соединены между собой.

Ограничения
  • 2 ≤ n ≤ 10⁴
  • 0 ≤ limit ≤ n
  • 1 ≤ len(queries) ≤ 10⁵
  • 1 ≤ a, b ≤ n, a ≠ b
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиСамая большая группа с общими делителями СложнаяСортировка обменами по общему делителю СложнаяВсе связаны общими множителями СложнаяГруппы по малому НОК СложнаяСобрать единицу Сложная
загружаем Python…
Вход
n=8, limit=2, queries=[[3, 6], [4, 8], [2, 3], [5, 7]]
Ожидается
[True, True, False, False]

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