Задача №113660. Форум. Путь между сообщениями

Задачи на рекурсию под общей темой "Форум".
Несмотря на то, что некоторые задачи этого блока можно решить с помощью циклов, рекомендуем написать решение с помощью рекурсивной функции.

Дано количество сообщений на некотором форуме (\(N\) натуральное, не более \(1000\)).

Также таблица, в которой указано какие сообщения на каком уровне находятся.

В первой колонке таблицы написаны номера сообщений (натуральные числа, не превосходят \(10^6\)).

Во второй колонке напротив номера сообщения стоит либо 0, если сообщение является корнем (началом) некоторой темы, либо номер того сообщения, ответом на которое является текущее.

Пример. Следующие исходные данные:

4
1 0 
2 0
3 1
4 3
соответствуют такой структуре форума:

Гарантируется что данные во втором столбце корректны (то есть в качестве «родительского» может быть указано только существующее сообщение, а также что структура не имеет циклов и что от любого сообщения есть путь к «корню» форума).

Является ли сообщение номер \(A\) «предком» сообщения номер \(B\) (то есть можно ли перемещаясь только «вниз» по веткам форума дойти от сообщения номер \(A\) к сообщению номер \(B\)?

Входные данные

Сначала вводится натуральное число \(N\) (не превышает \(1000\)) – общее количество сообщений на форуме.

Затем вводится \(N\) строк таблицы, по \(2\) числа на строке – номер текущего сообщения и номер того сообщения, ответом на которое является текущее (или \(0\)).

В последней строке вводятся числа \(A\) и \(B\) – номера сообщений. Гарантируется, что сообщения с такими номерами существуют.

Выходные данные

Выведите слово YES, если сообщение \(A\) является «предком» сообщения \(B\), и NO – в противном случае.

Для определенности будем считать, что сообщение является предком самого себя.

Примеры
Входные данные
1
1 0
1 1
Выходные данные
YES
Входные данные
3
1 0
4 1
9 4
9 4
Выходные данные
NO
Сдать: для сдачи задач необходимо войти в систему