#P16918. [Ontak2025]同色最远点

[Ontak2025]同色最远点

题目描述

给定一棵包含 nn 个顶点的树。每个顶点 ii 有一个颜色 cic_i

树上两个顶点 u,vu,v 的距离定义为它们之间最短路径所包含的边数。

你需要回答 qq 个询问。每个询问给出一个顶点 vv 和一种颜色 cc

  • 求从 vv 出发,到任意一个颜色为 cc 的顶点的最大距离
  • 如果整棵树中不存在颜色为 cc 的顶点,输出 -1

输入格式

第一行两个整数 n,qn,q,满足 1n,q5×1051\le n,q\le5\times10^5

第二行 nn 个整数 c1,c2,,cnc_1,c_2,\ldots,c_n,其中 1ci5×1051\le c_i\le5\times10^5

接下来 n1n-1 行,每行两个整数 u,vu,v,表示树的一条边。

接下来 qq 行,每行两个整数 v,cv,c,表示一次询问。

输出格式

对于每个询问输出一行:

  • 若存在颜色为 cc 的顶点,输出从 vv 到这些顶点的最大距离;
  • 否则输出 -1

样例

10 15
2 6 5 99 500000 6 5 3 5 5
1 2
2 10
1 3
3 5
3 6
6 7
1 4
4 8
4 9
3 5
4 5
2 5
6 5
8 500000
5 500000
5 1000
6 6
8 6
5 99
3 6
3 100
9 5
7 5
3 3
3
4
4
4
4
0
-1
3
4
3
2
-1
5
5
3

子任务

子任务 额外限制 分值
1 树是一条链 11
2 所有顶点颜色相同 12
3 不同颜色数不超过 20 13
4 每个询问 (v,c)(v,c) 都满足 cv=cc_v=c 14
5 树是一棵满二叉树 15
6 无额外限制 35