Road Construction
InterviewTime limit2sMemory limit512 MB
Given a tree with n countries and weighted edges, sum over all edges of weight times the absolute difference in size of the two components the edge splits the tree into.
- Level
Medium4 of 10
- Topics
- Tree, DFS, Implementation, Recursion
- Solved
- No attempts yet
Problem
On planet W, there are n countries. To promote the economic growth of each country, the kings of the countries have decided to construct bidirectional roads to ensure that all countries are connected. However, since they are all incredibly stingy, they wish to construct exactly n − 1 roads.
Constructing each road will require a cost. This cost is equal to the length of the road multiplied by the absolute difference of the number of countries on each side of the road. For example, the road represented by a dashed line in the figure below has, respectively, 2 and 4 countries on each of its sides. If this road has a length of 1, then the cost will be 1×|2 − 4| = 2. The circled numbers represent the numbers of the countries.

Since both the number of countries and the number of ways to construct the roads are extremely large, as well the construction costs for each way is hard to calculate by humans, the kings have decided to hire a person to design a software to do this. This piece of software should be able calculate the total cost of constructing all the roads, given a way to construct them. Please help the kings to write such a program.
Input
The first line contains an integer n, representing the number countries on planet W. Countries are numbered from 1 to n.
For the following n − 1 lines, each line will describe the construction of a single road. The i-th of these lines will contain three integers ai, bi, and ci, indicating that the i-th bidirectional road connects countries ai and bi, and has a length of ci.
Output
Output a single integer, the total cost of constructing all the roads.
Constraints
- 1 ≤
ai,bi≤n - 2 ≤ n ≤ 106
- 0 ≤
ci≤ 106