CF BUDDY
← Problems·

1681F · Unique Occurrences

2300 · data structures, dfs and similar, divide and conquer

Problem: You are given a tree, consisting of nn vertices. Each edge has an integer value written on it.

Let f(v,u)f(v, u) be the number of values that appear exactly once on the edges of a simple path between vertices vv and uu.

Calculate the sum of f(v,u)f(v, u) over all pairs of vertices vv and uu such that 1v<un1 \le v < u \le n.

Input Format: The first line contains a single integer nn (2n51052 \le n \le 5 \cdot 10^5) — the number of vertices in the tree.

Each of the next n1n-1 lines contains three integers v,uv, u and xx (1v,u,xn1 \le v, u, x \le n) — the description of an edge: the vertices it connects and the value written on it.

The given edges form a tree.

Output Format: Print a single integer — the sum of f(v,u)f(v, u) over all pairs of vertices vv and uu such that v<uv < u.

Sample Cases

Case 1

Input

3
1 2 1
1 3 2

Output

4

Case 2

Input

3
1 2 2
1 3 2

Output

2

Case 3

Input

5
1 4 4
1 2 3
3 4 4
4 5 5

Output

14

Case 4

Input

2
2 1 1

Output

1

Case 5

Input

10
10 2 3
3 8 8
4 8 9
5 8 5
3 10 7
7 8 2
5 6 6
9 3 4
1 6 3

Output

120

Similar problems

00:00:00
Loading editor…
Welcome! I'm your coding tutor for this problem. Use the chips below to reveal stored hints or get AI feedback on your code. I'll guide you step by step — never giving away the solution.

Sign in to unlock AI tutor feedback