CF1714F Build a Tree and That Is It
Description
A tree is a connected undirected graph without cycles. Note that in this problem, we are talking about not rooted trees.
You are given four positive integers $ n, d_{12}, d_{23} $ and $ d_{31} $ . Construct a tree such that:
- it contains $ n $ vertices numbered from $ 1 $ to $ n $ ,
- the distance (length of the shortest path) from vertex $ 1 $ to vertex $ 2 $ is $ d_{12} $ ,
- distance from vertex $ 2 $ to vertex $ 3 $ is $ d_{23} $ ,
- the distance from vertex $ 3 $ to vertex $ 1 $ is $ d_{31} $ .
Output any tree that satisfies all the requirements above, or determine that no such tree exists.
Input Format
The first line of the input contains an integer $ t $ ( $ 1 \le t \le 10^4 $ ) —the number of test cases in the test.
This is followed by $ t $ test cases, each written on a separate line.
Each test case consists of four positive integers $ n, d_{12}, d_{23} $ and $ d_{31} $ ( $ 3 \le n \le 2\cdot10^5; 1 \le d_{12}, d_{23}, d_{31} \le n-1 $ ).
It is guaranteed that the sum of $ n $ values for all test cases does not exceed $ 2\cdot10^5 $ .
Output Format
For each test case, print YES if the suitable tree exists, and NO otherwise.
If the answer is positive, print another $ n-1 $ line each containing a description of an edge of the tree — a pair of positive integers $ x_i, y_i $ , which means that the $ i $ th edge connects vertices $ x_i $ and $ y_i $ .
The edges and vertices of the edges can be printed in any order. If there are several suitable trees, output any of them.