HihoCoder 1638 : 小Hi的天平 (2-sat+并查集)
描述
小Hi给小Ho邮寄了一个天平。收到天平后,小Ho想知道天平在运输过程中是否损坏,为此它准备了A类物品和B类物品共n个(可能只有A类物品,也可能只有B类物品),但无法确定一个物品是哪一类。A类物品的质量都相同,B类物品的质量也相同,但A类物品与B类物品的质量不同。现将n个物品从1到n编号,用天平进行m次测量,每次从n个物品中取i和j两个物品,测量后可以知道物品i和物品j质量是否相同。
现在小Ho想知道能否根据测量结果判定天平是坏的,如果能确定,最早是第几次测量确定的,你能帮帮他吗?
输入
第一行一个数字T,代表数据组数。1<=T<=5。
对于每组数据:
第一行两个整数n,m,分别代表A类、B类物品的总数和测量次数。2<=n<=10000,1<=m<=300000。
接下来m行,每行三个数字x,u,v。x=0代表物品u与物品v质量相等,x=1代表质量不等。
输出
对于每组数据:
若不能确定天平是坏的,则输出一行“great”。
否则,输出两行。
第一行输出“sad”。
第二行输出一个数字p,代表最早第p次测量确定了天平是坏的。
- 样例输入
-
1 2 2 0 1 2 1 1 2
- 样例输出
-
sad 2
It is your time to fight!