302594: CF501C. Misha and Forest
Memory Limit:256 MB
Time Limit:1 S
Judge Style:Text Compare
Creator:
Submit:0
Solved:0
Description
Misha and Forest
题意翻译
定义一个森林为非有向无环图(没有重边与环)给出n(n<=2^16)个节点的两个信息,第一个为该节点有几个与其相邻的节点,第二个为与其相邻的节点的编号的异或值。输出森林有几条边与这些边的具体信息。(可以以任意顺序输出,数据保证有解) tips:节点从0开始编号题目描述
Let's define a forest as a non-directed acyclic graph (also without loops and parallel edges). One day Misha played with the forest consisting of $ n $ vertices. For each vertex $ v $ from $ 0 $ to $ n-1 $ he wrote down two integers, $ degree_{v} $ and $ s_{v} $ , were the first integer is the number of vertices adjacent to vertex $ v $ , and the second integer is the XOR sum of the numbers of vertices adjacent to $ v $ (if there were no adjacent vertices, he wrote down $ 0 $ ). Next day Misha couldn't remember what graph he initially had. Misha has values $ degree_{v} $ and $ s_{v} $ left, though. Help him find the number of edges and the edges of the initial graph. It is guaranteed that there exists a forest that corresponds to the numbers written by Misha.输入输出格式
输入格式
The first line contains integer $ n $ ( $ 1<=n<=2^{16} $ ), the number of vertices in the graph. The $ i $ -th of the next lines contains numbers $ degree_{i} $ and $ s_{i} $ ( $ 0<=degree_{i}<=n-1 $ , $ 0<=s_{i}<2^{16} $ ), separated by a space.
输出格式
In the first line print number $ m $ , the number of edges of the graph. Next print $ m $ lines, each containing two distinct numbers, $ a $ and $ b $ ( $ 0<=a<=n-1 $ , $ 0<=b<=n-1 $ ), corresponding to edge $ (a,b) $ . Edges can be printed in any order; vertices of the edge can also be printed in any order.
输入输出样例
输入样例 #1
3
2 3
1 0
1 0
输出样例 #1
2
1 0
2 0
输入样例 #2
2
1 1
1 0
输出样例 #2
1
0 1