小红的树切割
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

\,\,\,\,\,\,\,\,\,小红定义一棵树是“好树”,当且仅当任意相邻的两个节点的颜色不同(特殊的,一个节点组成的树一定是好树)。
\,\,\,\,\,\,\,\,\,现在小红拿到了一棵树,一些节点被染成红色,其余节点为白色。小红希望切割若干条边形成森林,使得森林的每棵树都是“好树”。小红想知道,最少需要切割多少条边?

输入描述:

\,\,\,\,\,\,\,\,\,第一行输入一个整数 n \left( 2\leq n \leq 10^5 \right) 代表树的节点数量。
\,\,\,\,\,\,\,\,\,第二行输入一个长度为 n 、且仅由 \tt R 和 \tt W 组成的字符串 s ,第 i 个字符代表第 i 个节点的颜色,其中 \tt R 代表红色、\tt W 代表白色。。
\,\,\,\,\,\,\,\,\,此后 n-1 行,第 i 行输入两个整数 u_iv_i\ (1 \leq u_i, v_i \leq n;\ u_i \neq v_i) 表示树上第 i 条边连接节点 u_iv_i 。保证树联通,没有重边。

输出描述:

\,\,\,\,\,\,\,\,\,在一行上输出一个整数,代表最少需要切割的边数。
示例1

输入

复制
4
RWWR
1 2
2 3
3 4

输出

复制
1

说明

将第二条边切割即可。