[Cerc2011]Strange Regulations
时间限制:10s 空间限制:128MB
题目描述
在一个计算机网络中,连接两台计算机的电缆属于不同的公司。一项新的反垄断法规定,一家公司连接同一台计算机的电缆不能超过两条。为了避免资源浪费,另外一条法律规定,一家公司的电缆系统不能有冗余,即去掉任意一个电缆之后,至少一对之前连通的计算机要断开连接。由于这些公司不断的销售和购入电缆,要确定他们是否遵守这些规则十分的困难。你的任务是写一个程序完成这个任务
输入格式
多组测试数据。第一行是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.
提示
题目来源
没有写明来源