时间限制:C/C++/Rust/Pascal 2秒,其他语言4秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld
题目描述
芭芭拉拿到了一棵无根树,树上每个节点被染成了红色或绿色或蓝色。(R=红色,G=绿色,B=蓝色)。
任意两点之间的距离均为1。
若一条边连接的两个节点的颜色不同,芭芭拉则可以在这条边上冲刺。
但是,芭芭拉在冲刺的时候不能掉头。例如芭芭拉已经从
冲到
了,就不能再回到
。 现在芭芭拉想知道,自己在这棵树上最远能冲刺的距离是多少?
输入描述:
第一行一个正整数

,代表树的节点个数。
第二行是一个长度为

的字符串,仅由"R、G、B"这三种字符组成。第i个字符用于描述第i个节点的颜色。
接下来的

行,每行有两个正整数

和

,代表

和

节点有一条边连接。保证输入一定表示一棵树。
输出描述:
一个正整数,代表芭芭拉能冲刺的距离的最大值。
示例1
说明
这棵树是一条1-2-3-4-5的链,选择路径2-3-4-5即可。这样芭芭拉直接从2冲到5,冲刺距离为3。
注意1和2的颜色相同,所以芭芭拉并不能在1-2这条边上冲刺。
备注:
对于10%的数据,

对于20%的数据,树退化成了一条链。
对于20%的数据,所有点的颜色都相同。
对于100%的数据,
