#1494. CF246E Blood Cousins Return
CF246E Blood Cousins Return
CF246E Blood Cousins Return
题目描述
给定一片家族森林,共有 个人,编号为 到 。每个人至多有一位直接祖先,并且每个人都有一个名字;不同的人可以拥有相同的名字。
若 是 的直接祖先,则称 是 的 级祖先。对于 ,如果 的直接祖先存在,且 是该直接祖先的 级祖先,则称 是 的 级祖先。反过来,如果 是 的 级祖先,则称 是 的 级儿子。
家族关系保证没有环。现在有 次询问,每次给出 ,要求统计编号为 的人的所有 级儿子中,不同名字的数量。
输入格式
第一行一个整数 ,表示人数。
接下来 行,第 行包含一个字符串 name_i 和一个整数 :
name_i表示第 个人的名字;- 表示第 个人的直接祖先编号;
- 若 ,表示第 个人没有直接祖先。
接下来一行一个整数 ,表示询问数。
接下来 行,每行两个整数 ,表示一次询问。
输出格式
对每个询问输出一行一个整数,表示不同名字的数量。
样例
样例输入
5
bob 0
alice 1
alice 1
bob 2
carl 2
3
1 1
1 2
2 1
样例输出
1
2
2
数据范围与约定
。名字由小写英文字母组成,长度为正。,输入关系构成森林。