Задача №111688. Предок_0

Контест на DFS и его применения

Напишите программу, которая для двух вершин дерева определяет, является ли одна из них предком другой.

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

Первая строка входного файла содержит натуральное число \(n\) (\(1 \le n \le 100\,000\)) — количество вершин в дереве. Во второй строке находятся \(n\) чисел, \(i\)-е из которых определяет номер непосредственного родителя вершины с номером \(i\). Если это число равно нулю, то вершина является корнем дерева.

В третьей строке находится число \(m\) (\(1 \le m \le 100\,000\)) — количество запросов. Каждая из следующих \(m\) строк содержит два различных числа \(a\) и \(b\) (\(1 \le a, b \le n\)).

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

Для каждого из \(m\) запросов выведите на отдельной строке число 1, если вершина \(a\) является одним из предков вершины \(b\), и 0 в противном случае.

Примеры

Входные данные Выходные данные
6
0 1 1 2 3 3
5
4 1
1 4
3 6
2 6
6 5
0
1
1
0
0
Сдать: для сдачи задач необходимо войти в систему