82699 - 垃圾运输
时间限制 : 2 秒
内存限制 : 256 MB
给定一张 n 个点 m 条边的无向图,每条边居黑白二色之一,且有一个黑或白的目标颜色。
有一辆卡车,可以从任意一个结点开始,经过一个简单环(不经过重复边或起点以外结点的环)回到出发点,将所有经过边的颜色反转,即黑色变为白色,白色变为黑色。卡车可以从不同的结点出发行走若干次。
请给出一个合法的方案,使得每条边最终都变为目标颜色,或判定不可行。
输入
输入的第一行包含两个空格分隔的正整数 n 和 m ( 1 \leqslant n \leqslant 100000,1 \leqslant m \leqslant 1000000),表示图的点数和边数。
接下来 m 行,每行包含四个空格分隔的正整数 a,b,s,t ( 1 \leqslant a \leqslant b \leqslant n , s,t \in \lbrace0,1\rbrace ) ,表示一条联结结点 a 与 b 的边,初始颜色和目标颜色分别为 s 与 t 。
你可以认为若存在合法方案,则存在一个卡车经过总边数不超过 5m 的方案。
对于 60\% 分数的数据,有 m \leqslant 10000。
输出
如果不存在合法方案,输出一行 NIE
(波兰语「否」);
否则按下列格式输出任意一种方案:
- 第一行包含一个整数 k,表示卡车行驶环路的总数;
- 接下来 k 行,每行描述一条环路:
- 首先是一个正整数 k_i 表示环路经过的边数,后接一个空格;
- 接下来 k_i + 1 个空格分隔的整数,依次表示环路上结点的编号。
样例
输入
6 8 1 2 0 1 2 3 1 0 1 3 0 1 2 4 0 0 3 5 1 1 4 5 0 1 5 6 0 1 4 6 0 1
输出
2 3 1 3 2 1 3 4 6 5 4
输入
6 8 1 2 0 1 2 3 1 0 1 3 0 1 2 4 0 0 3 5 1 1 4 5 0 1 5 6 0 1 4 6 0 0
输出
NIE
提示
来源
POI