CF208E Blood Cousins

题目描述

### 题面描述 有一个家族关系森林,描述了 $n$($1\leq n\leq 10 ^ 5$)人的家庭关系,成员编号为 $1$ 到 $n$ 。 如果 $a$ 是 $b$ 的父亲,那么称 $a$ 为 $b$ 的 $1$ 级祖先;如果 $b$ 有一个 $1$ 级祖先,$a$ 是 $b$ 的 $1$ 级祖先的 $k-1$ 级祖先,那么称 $a$ 为 $b$ 的 $k$ 级祖先。 家庭关系保证是一棵森林,树中的每个人都至多有一个父母,且自己不会是自己的祖先。 如果存在一个人 $z$ ,是两个人 $a$ 和 $b$ 共同的 $p$ 级祖先:那么称 $a$ 和 $b$ 为 $p$ 级表亲。 $m$($1\leq m\leq 10 ^ 5$)次询问,每次询问给出一对整数 $v$ 和 $p$,求编号为 $v$ 的人有多少个 $p$ 级表亲。

输入格式

第一个正整数 $n$ 表示家族里共有 $n$ 个人。 接下来一行 $n$ 个数 $r_1, r_2, \ldots, r_n$,表示 $r_i$ 是 $i$ 的父亲;如果 $r_i$ 为 $0$,那么 $i$ 就是根节点。 第三行一个整数 $m$ 表示询问数量。 接下来 $m$ 行,每行两个整数 $v_i$ 和 $p_i$,数字间用空格间隔;表示一组询问,即询问编号为 $v$ 的人有多少个 $p$ 级表亲。 保证输入合法。

输出格式

输出一行 $m$ 个数。对于每次询问,输出其答案。数字间用空格间隔。