#P1656. 炸铁路

炸铁路

题目描述

给定一个 nn 个点、mm 条边的无向图(可能存在重边),请求出图中所有的(也称割边)。

在一个无向图中,如果删去某条边之后,整个图的连通块数量增加,则称这条边为

输入格式

第一行两个整数 n, mn,\ m,分别表示点数和边数。

接下来 mm 行,每行两个整数 a, ba,\ b,表示一条连接 aabb 的无向边。

输出格式

按字典序输出所有的桥,每行一条,输出该桥的两个端点(较小的编号在前)。

排序规则:先按第一个端点升序,第一个端点相同时再按第二个端点升序。若图中不存在桥,则输出为空。

样例 #1

样例输入 #1

6 7
1 2
1 3
2 3
3 4
4 5
4 6
5 6

样例输出 #1

3 4

提示

样例说明:图由两个三角形 {1,2,3}\{1,2,3\}{4,5,6}\{4,5,6\} 通过边 343\text{–}4 相连。两个三角形内部的边都在环上,删去后不影响连通;只有边 343\text{–}4 删去后会使图断成两块,因此它是唯一的桥。

数据范围:对于 100%100\% 的数据,1n1501 \le n \le 1501m50001 \le m \le 50001a,bn1 \le a,b \le n

注意图中可能存在重边:两点之间若有两条平行边,它们互为退路,都不是桥。

时间限制 1000ms1000\text{ms},内存限制 256MB256\text{MB}