#P3222. 边配对
边配对
Description
Given a simple connected undirected graph with n vertices and m edges, where m is even, your task is to find a pairing of the edges such that each pair of edges shares a vertex.
Input
The input contains exactly one test cases. On the first line of the test case there are two integers n and m (3 ≤ n ≤ 20,000, 2 ≤ m ≤ 100,000, m is even) which indicate the size of the graph. Next come m lines each with a pair of integers a and b representing an edge (a, b). The vertices are numbered 1 through n.
Output
If a pairing exists, output it in m⁄2 lines. Each line contains three integers a, b and c in this order, indicating that the edges (a, b) and (b, c) are paired together. If no pairing exists, just output “NO
” and nothing else.
7 10
1 2
1 3
2 4
3 4
4 5
4 6
5 7
6 7
2 5
3 6
1 2 4
1 3 4
4 5 2
4 6 3
5 7 6
Hint
Illustration of the sample test case:
Source
PKU Local 2007 (POJ Monthly--2007.04.28), ufx