n остановок с номерами от 0 до n - 1. С каждой остановки ведёт не больше одного маршрута: next_stop[i] — номер следующей остановки после i, или -1, если дальше с i ехать некуда. Маршруты могут замыкаться в круг.
Двое начинают путь с остановок start_a и start_b и двигаются только по маршрутам. Остановка подходит для встречи, если до неё могут добраться оба (стартовая остановка тоже считается, до неё 0 шагов). Для такой остановки посчитайте, сколько шагов нужно каждому, и возьмите большее из двух чисел.
Верните остановку, у которой это число минимально. Если таких несколько, верните остановку с меньшим номером. Если общей остановки нет, верните -1.next_stop=[1, 2, 3, -1, 2], start_a=0, start_b=4 → 2
Первый идёт 0 → 1 → 2 → 3, второй 4 → 2 → 3. До остановки 2 им нужно 2 и 1 шаг, максимум 2; до остановки 3 — 3 и 2, максимум 3. Лучше всего встретиться на остановке 2.
next_stop=[1, 0, -1, 2], start_a=0, start_b=3 → -1
Первый ходит по кругу 0 → 1 → 0, второй идёт 3 → 2 и останавливается. Общих остановок нет.
next_stop=[1, 2, 0], start_a=0, start_b=1 → 1
next_stop=[1, 2, 3, -1, 2], start_a=0, start_b=4
2
«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 104 теста на сервере, включая скрытые.