Контест Middle Связные списки обновлено

Первый общий узел двух списков

Условие

В памяти лежат n узлов, nextᵢ указывает на следующий узел (0 = конец). Из узлов собраны два односвязных списка без циклов с головами h₁ и h₂. Списки могут слиться: с какого-то узла дальше у них общий хвост. Найдите первый общий узел или выведите -1, если списки не пересекаются. Каждый узел принадлежит хотя бы одному из списков.

Ввод: в первой строке n, h₁, h₂ (1 ≤ n ≤ 2500), во второй n чисел next₁ … nextₙ.

Вывод: номер первого общего узла или -1.

Пример 1

Ввод:

7 1 5
2 3 4 0 6 3 0

Вывод:

3

Пример 2

Ввод:

4 1 3
2 0 4 0

Вывод:

-1

Решите в тренажёре

Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.