CF911F.Tree Destruction
普及/提高-
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
You are given an unweighted tree with n vertices. Then n−1 following operations are applied to the tree. A single operation consists of the following steps:
- choose two leaves;
- add the length of the simple path between them to the answer;
- remove one of the chosen leaves from the tree.
Initial answer (before applying operations) is 0 . Obviously after n−1 such operations the tree will consist of a single vertex.
Calculate the maximal possible answer you can achieve, and construct a sequence of operations that allows you to achieve this answer!
输入格式
The first line contains one integer number n ( 2<=n<=2⋅105 ) — the number of vertices in the tree.
Next n−1 lines describe the edges of the tree in form ai,bi ( 1<=ai , bi<=n , ai=bi ). It is guaranteed that given graph is a tree.
输出格式
In the first line print one integer number — maximal possible answer.
In the next n−1 lines print the operations in order of their applying in format ai,bi,ci , where ai,bi — pair of the leaves that are chosen in the current operation ( 1<=ai , bi<=n ), ci ( 1<=ci<=n , ci=ai or ci=bi ) — choosen leaf that is removed from the tree in the current operation.
See the examples for better understanding.
输入输出样例
输入#1
3 1 2 1 3
输出#1
3 2 3 3 2 1 1
输入#2
5 1 2 1 3 2 4 2 5
输出#2
9 3 5 5 4 3 3 4 1 1 4 2 2