

Time Limit: 2 sec / Memory Limit: 256 MB
配点 : 点
問題文
頂点の木が与えられます。頂点には から の番号がついています。 辺は から までの番号がついていて、辺 は頂点 と をつなぎ、また という値を保持しています。 あなたは以下の操作を何回でもすることが出来ます:
- ある単純pathとある非負整数 を選び、そのpathを構成する各辺 について、 (⊕ は xor)と変化させる。
目標はすべての辺 について とすることです。 目標を達成するために必要な最小の操作回数を求めてください。
制約
- 与えられるグラフは木
- 入力は全て整数
入力
入力は以下の形式で標準入力から与えられる。
出力
目標を達成するために必要な操作回数の最小値を出力せよ。
入力例 1Copy
5 0 1 1 0 2 3 0 3 6 3 4 4
出力例 1Copy
3
以下のようにして三回で目標を達成できます。
- まず、頂点 を結ぶ path に対して で操作する
- 次に、頂点 を結ぶ path に対して で操作する
- 最後に、頂点 を結ぶ path に対して で操作する
入力例 2Copy
2 1 0 0
出力例 2Copy
0
Score : points
Problem Statement
You are given a tree with vertices. The vertices are numbered through , and the edges are numbered through . Edge connects Vertex and , and has a value . You can perform the following operation any number of times:
- Choose a simple path and a non-negative integer , then for each edge that belongs to the path, change by executing (⊕ denotes XOR).
Your objective is to have for all edges . Find the minimum number of operations required to achieve it.
Constraints
- The given graph is a tree.
- All input values are integers.
Input
Input is given from Standard Input in the following format:
Output
Find the minimum number of operations required to achieve the objective.
Sample Input 1Copy
5 0 1 1 0 2 3 0 3 6 3 4 4
Sample Output 1Copy
3
The objective can be achieved in three operations, as follows:
- First, choose the path connecting Vertex , and .
- Then, choose the path connecting Vertex , and .
- Lastly, choose the path connecting Vertex , and .
Sample Input 2Copy
2 1 0 0
Sample Output 2Copy
0