#BZOJ3081. Strange Regulations

Strange Regulations

题目描述

在一个计算机网络中,连接两台计算机的电缆属于不同的公司。一项新的反垄断法规定,一家公司连接同一台计算机的电缆不能超过两条。为了避免资源浪费,另外一条法律规定,一家公司的电缆系统不能有冗余,即去掉任意一个电缆之后,至少一对之前连通的计算机要断开连接。由于这些公司不断的销售和购入电缆,要确定他们是否遵守这些规则十分的困难。你的任务是写一个程序完成这个任务

输入格式

多组测试数据。第一行是4个整数N,M,C,T——计算机的数量1<=N=8000,电缆的数量0<=M<=100000,公司的数量1<=C<=100,电缆销售/购入的数量0<=T<=100000。
 接下来M行,每行三个整数Sj1,Sj2,Kj,代表这条电缆连接的两个服务器Sj1,Sj2以及电缆所属的公司Kj。初始状态是遵守规则的。
 接下来行,每行3个整数Si1,Si2,Ki,表示公司购入了连接S1,S2的电缆。
 4个0标志着测试文件的结束。

输出格式

对于每个测试数据,输出行:
         “No Such Cable.” 如果这对服务器之前没有被一对电缆相连
         “Already owned.” 如果这对电缆本来就属于这家公司
         “Forbidden: monopoly.” 如果公司Ki已经有2条电缆与S1或S2相连
         “Forbidden: redundant.” 如果公司Ki公司购入这条电缆后,会在其网络中形成环
         “Sold.” 操作成功
4 5 3 5 1 2 1 2 3 1 3 4 2 1 4 2 1 3 3 1 2 3 1 2 3 1 4 3 2 3 3 2 4 3 2 1 1 1 1 2 1 1 2 1 0 0 0 0
Sold. Already owned. Forbidden: monopoly. Forbidden: redundant. No such cable.  Already owned.

数据范围与约定