e-olymp
favorite Нам необхідно трохи Вашої допомоги щоб сайт продовжував працювати, натисніть на банер щоб дізнатись більше.
Змагання

ADA Classes - Depth First Search

Предок

Напишіть програму, яка для двох вершин дерева визначить, чи є одна з них предком іншої.

Вхідні дані

Перший рядок містить кількість вершин у дереві n (1n100000). У другому рядку знаходиться n чисел, i-те з яких визначає номер безпосереднього батька вершини з номером i. Якщо це число дорівнює нулю, то вершина є коренем дерева.

У третьому рядку знаходиться кількість запитів m (1m100000). Кожен з наступних m рядків містить два різних числа a та b (1a, bn).

Вихідні дані

Для кожного з m запитів виведіть у окремому рядку число 1, якщо вершина a є одним з предків вершини b, і 0 у протилежному випадку.

Ліміт часу 1 секунда
Ліміт використання пам'яті 256 MiB
Вхідні дані #1
3
2 0 2
10
1 3
2 3
3 1
2 3
3 2
2 1
3 2
3 2
3 1
3 2
Вихідні дані #1
0
1
0
1
0
1
0
0
0
0
Автор Віталій Гольдштейн
Джерело Зимова Школа, Харків 2011, День 9