#1494. CF246E Blood Cousins Return

CF246E Blood Cousins Return

CF246E Blood Cousins Return

题目描述

给定一片家族森林,共有 nn 个人,编号为 11nn。每个人至多有一位直接祖先,并且每个人都有一个名字;不同的人可以拥有相同的名字。

aabb 的直接祖先,则称 aabb11 级祖先。对于 k>1k>1,如果 bb 的直接祖先存在,且 aa 是该直接祖先的 (k1)(k-1) 级祖先,则称 aabbkk 级祖先。反过来,如果 aabbkk 级祖先,则称 bbaakk 级儿子。

家族关系保证没有环。现在有 mm 次询问,每次给出 v,kv,k,要求统计编号为 vv 的人的所有 kk 级儿子中,不同名字的数量。

输入格式

第一行一个整数 nn,表示人数。

接下来 nn 行,第 ii 行包含一个字符串 name_i 和一个整数 rir_i

  • name_i 表示第 ii 个人的名字;
  • rir_i 表示第 ii 个人的直接祖先编号;
  • ri=0r_i=0,表示第 ii 个人没有直接祖先。

接下来一行一个整数 mm,表示询问数。

接下来 mm 行,每行两个整数 v,kv,k,表示一次询问。

输出格式

对每个询问输出一行一个整数,表示不同名字的数量。

样例

样例输入

5
bob 0
alice 1
alice 1
bob 2
carl 2
3
1 1
1 2
2 1

样例输出

1
2
2

数据范围与约定

1n,m1051\le n,m\le 10^5。名字由小写英文字母组成,长度为正。0rin0\le r_i\le n,输入关系构成森林。