트리에서 두 노드 사이 경로의 괄호 문자열이 올바른 괄호 문자열이 되는 순서쌍 개수를 구합니다.
정점이 nnn개인 무방향 트리가 주어진다. 정점 번호는 111번부터 nnn번까지다. 각 정점에는 ( 또는 )가 하나씩 적혀 있다. 두 정점 uuu, vvv에 대해 l[u→v]l[u \to v]l[u→v]는 uuu에서 vvv로 가는 단순 경로 위의 정점에 적힌 문자를 uuu부터 vvv까지 순서대로 이어 붙인 문자열이다. 트리에서 두 정점을 잇는 단순 경로는 유일하다.
(
)
균형 잡힌 문자열은 다음과 같이 정의한다.
l[u→v]l[u \to v]l[u→v]가 균형 잡힌 문자열인 순서쌍 (u,v)(u, v)(u,v)의 개수를 구하라.
첫째 줄에 트리의 정점 개수 nnn이 주어진다. (2≤n≤1000002 \le n \le 1000002≤n≤100000)
둘째 줄에 길이가 nnn인 문자열이 주어진다. 문자열의 각 문자는 ( 또는 )이며, xxx번째 문자는 정점 xxx에 적힌 문자다.
다음 n−1n - 1n−1개 줄에는 두 정수 aia_iai와 bib_ibi가 주어진다. (1≤ai,bi≤n1 \le a_i, b_i \le n1≤ai,bi≤n) 정점 aia_iai와 정점 bib_ibi가 간선으로 이어져 있다는 뜻이다. 주어지는 그래프는 항상 트리다.
l[u→v]l[u \to v]l[u→v]가 균형 잡힌 문자열인 순서쌍 (u,v)(u, v)(u,v)의 개수를 한 줄에 출력한다.