CF911F.Tree Destruction

普及/提高-

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

You are given an unweighted tree with nn vertices. Then n1n-1 following operations are applied to the tree. A single operation consists of the following steps:

  1. choose two leaves;
  2. add the length of the simple path between them to the answer;
  3. remove one of the chosen leaves from the tree.

Initial answer (before applying operations) is 00 . Obviously after n1n-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 nn ( 2<=n<=21052<=n<=2·10^{5} ) — the number of vertices in the tree.

Next n1n-1 lines describe the edges of the tree in form ai,bia_{i},b_{i} ( 1<=ai1<=a_{i} , bi<=nb_{i}<=n , aibia_{i}≠b_{i} ). It is guaranteed that given graph is a tree.

输出格式

In the first line print one integer number — maximal possible answer.

In the next n1n-1 lines print the operations in order of their applying in format ai,bi,cia_{i},b_{i},c_{i} , where ai,bia_{i},b_{i} — pair of the leaves that are chosen in the current operation ( 1<=ai1<=a_{i} , bi<=nb_{i}<=n ), cic_{i} ( 1<=ci<=n1<=c_{i}<=n , ci=aic_{i}=a_{i} or ci=bic_{i}=b_{i} ) — 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
    
首页