题目描述
Problem Statement
You are given a tree with N vertices, where N is odd.
The vertices are numbered from 1 through N and edges from 1 through N-1.
The edge i connects vertices u_i and v_i and its initial weight is w^1_i.
You can perform the following operation any number of times:
- Choose an edge (u, v) of the tree, and suppose that its weight now is w. For every edge, which is incident to exactly one of u and v, we XOR the weight of that edge with w (if it was w_1, replace it with $w_1 \oplus w)$.
Your goal is to reach the state where each edge i has weight w^2_i.
Determine if you can get to the goal by performing the operation above any number of times.
Input
Input is given from Standard Input in the following format:
N
u_1 v_1 w^1_1 w^2_1
u_2 v_2 w^1_2 w^2_2
$\vdots$
u_{N-1} v_{N-1} w^1_{N-1} w^2_{N-1}
Output
If you can get the goal weight assignment from the initial state, output YES. Otherwise, output NO.
Note that the checker is case-insensitive: you can print letters in both uppercase and lowercase.
Constraints
- $1 \le N \le 10^5$
- N is odd.
- $1\le u_i, v_i \le N$
- $u_i \neq v_i$
- $0\le w^1_i, w^2_i < 2^{30}$
- All values in input are integers.
- The input represents a valid tree.
Sample Input 1
3
1 2 1 1
2 3 8 9
Sample Output 1
YES
If you perform the operation on the edge 1, the weight of the edge $2 becomes 8 \oplus 1=9$.
Sample Input 2
5
1 2 0 3
1 3 1 0
1 4 2 1
1 5 0 0
Sample Output 2
NO
输入格式
见题面 Input 部分
输出格式
见题面 Output 部分