6605 - 欧拉回路
时间限制 : 1 秒
内存限制 : 128 MB
有一天一位画师画了一个图,现在要你找出图的欧拉回路,即在图中找一个环使得每条边都在环上出现恰好一次,一共两个任务:
(1)这张图是无向图;(2)这张图是有向图。
输入
第一行一个整数t,表示任务编号,
,如果t=1,则表示处理无向图的情况;如果t=2,则表示处理有向图的情况。
第二行两个整数n,m,表示图的结点数和边数。
接下来m行中,第i行两个整数vi,ui表示第i条边(从1开始编号)。保证1≤vi,ui≤n。
(1)如果t=1则表示vi到ui有一条无向边。
(2)如果t=2则表示vi到ui有一条有向边。
图中可能有重边也可能有自环。
输出
如果不可以一笔画,输出一行:NO。
否则,输出一行:YES,接下来一行输出一组方案。
(1)如果t=1,输出m个整数:p1,p2…pm。令e=|pi|,那么e表示经过的第i条边的编号。如果pi为正数,表示从ve走到ue,否则表示从ue走到ve。
(2)如果t=2,输出m个整数:p1,p2…pm。其中pi表示经过的第i条边的编号。
样例
输入
1 3 3 1 2 2 3 1 3
输出
YES 1 2 -3
输入
2 5 6 2 3 2 5 3 4 1 2 4 2 5 1
输出
YES 4 1 3 5 2 6
提示
【数据规模】
1小于等于n,n小于等于10的5次方,0小于等于m,m小于等于2乘以(10的5次方)。
来源
一本通