Balanced Trees
의견: 0
Fascinated by his experience with balanced parentheses so far, Farmer John is curious if you can help him solve one final problem. As it turns out, FJ's farm is in the shape of a giant tree of N pastures (1 <= N <= 40,000), each of which he has labeled with either ( or ).
Recall that since his farm is a tree, this means that certain pairs of pastures are connected by corridors so that there is one unique path between any given pair of pastures. FJ believes that some of these paths represent balanced strings of parentheses. In particular, he would like to know, among all such balanced strings represented by paths through the tree, what is the maximum nesting depth one can find. The nesting depth of a balanced string of parentheses is the maximum, over all prefixes of the string, of the excess number of ('s within the prefix. For example, the string ()()() has nesting depth 1, but the string ((()))() has nesting depth 3.
Your task is to output the nesting depth of the deepest balanced path in the tree.
Line 1: A single integer N, the number of nodes in the tree.
Lines 2..N: Line i+1: A single integer p_(i+1) (1 <= p_(i+1) <= i), denoting an edge between nodes i+1 and p_{i+1} in the tree.
Lines N+1..2N: Line N+i: Either ( or ), the label of node i.
A single integer, giving the maximum nesting depth of a balanced path.
btree.inbtree.out15
1
2
1
4
4
6
7
5
9
9
11
12
13
14
(
)
)
(
)
)
(
)
(
(
(
)
)
)
(3riseoj 작성
출처 올림피아드 > USACO > 2012-2013 > November > Gold
평가 및 의견
Balanced Trees
Log in to rate problems.
아직 의견이 없습니다. 자격이 된다면 위 양식에서 가장 먼저 평가해 보세요.
풀이 제출
Balanced Trees