The WAC team is setting up a Christmas tree! However, the usual Christmas tree's design has become monotonous to them. They need something new and different!
Why not use a cactus instead?
You have been assigned the job of transforming the tree into a cactus. A cactus is a connected graph where every edge belongs to at most one cycle. In addition, the graph may not contain self loops or parallel edges.
The Christmas tree currently has branch hooks, which are connected using tree branches. The branch connects two distinct hooks and . You are allowed to add some new tree branches, each connecting two separate hooks.
To make sure you're not slacking off on your task, the WAC team requires you to add as many new tree branches to the cactus as possible. Please determine the maximum number of tree branches you'll need to add, and tell the WAC team where to add each branch!
For this problem, Python users are recommended to use CPython over PyPy.
Constraints
For this problem, you will be required to pass all the samples in order to receive points. In addition, you must pass all previous subtasks to earn points for a specific subtask.
For all subtasks:
for all
Subtask 1 [16%]
Subtask 2 [84%]
No additional constraints.
Input Specification
The first line will contain an integer , the number of tree hooks on the Christmas tree.
The next lines describe the Christmas tree's structure. Each line will contain integers, and , indicating a connecting tree branch between the hooks and .
Output Specification
This problem is graded with a custom checker.
Output on the first line, describing the maximum number of tree branches added to the Christmas tree.
Next, output lines after the first line, describing the newly added edges. Each line should contain integers, and , indicating a new connecting tree branch between the hooks and .
If is maximized and the new edges form any valid cactus graph, you will receive of the points for that test case and a verdict of Accepted
. If only is correct, you will receive of the points for that test case and a verdict of Partially Accepted
. If is incorrect, you will receive a verdict of Wrong Answer
and no additional test cases will be executed for that subtask. The judge will also provide feedback with your verdict for each test case.
Your points for a subtask is equal to the minimum number of points achieved in each test case of that subtask.
Sample Input
6
6 4
3 1
3 6
4 5
2 3
Sample Output
2
2 1
3 5
Sample Explanation
Two new tree branches can be added to the Christmas tree:
- One branch between hooks and .
- One branch between hooks and .
This is one of the several valid set of branches you can add to the tree.
Comments