Balanced Tree Path
시간 제한2초메모리 제한2048 MB
트리의 경로를 따라 노드 문자를 이어 붙였을 때 균형 잡힌 괄호 문자열이 되는 경로의 수를 센다.
문제
You are given a tree where each node is annotated with a character from ()[]{}. A path is a sequence of one or more nodes where no node is repeated and every pair of adjacent nodes is connected with an edge. A path is balanced if the characters at each node, when concatenated, form a balanced string. A string is balanced if it satisfies the following definition:
- An empty string is balanced.
- If is a balanced string, then
(),[], and{} are balanced strings. - if and are balanced strings, then ( concatenated with ) is a balanced string.
Compute the number of balanced paths over the entire tree.
입력
The first line of input contains a single integer ().
The next line contains a string of characters, where each character is one of ()[]\{\}.
Each of the next lines contains two integers, and (), indicating that nodes and are connected with an edge. It is guaranteed the graph is a tree.
출력
Output a single integer, which is the number of balanced paths over the entire tree.