题号:NC16547
时间限制:C/C++/Rust/Pascal 4秒,其他语言8秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld
题目描述
给定一棵树,1为根,树上每个点有一个颜色
给q次询问,每次询问以x为根的子树中深度在[dep[x],dep[x]+y]之间的点的颜色集合(相同颜色只算一遍)中编号第k小的颜色是什么,无解输出-1
输入描述:
第一行,两个数n q
第二行n-1个数,表示2到n的父亲
第三行n个数,表示n个点的颜色
接下来q行
每行三个数x y k,表示一次询问
输出描述:
输出q行,对于每个询问,输出一个数表示答案
示例1
输入
复制
5 3
1 1 2 2
1 2 1 3 2
1 1 2
1 2 3
2 1 1
备注:
n<=105,q<=105
颜色在[1,n]之间