bzoj#P3081. [Cerc2011]Strange Regulations

[Cerc2011]Strange Regulations

题目描述

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

输入格式

多组测试数据。第一行是四个整数 n,m,c,tn,m,c,t,分别表示计算机的数量、电缆的数量、公司的数量与电缆销售/购入的数量。

接下来 mm 行,每行三个整数 sj1,sj2,kjs_{j1},s_{j2},k_j,代表这条电缆连接的两个服务器 sj1,sj2s_{j1},s_{j2} 以及电缆所属的公司 kjk_j。初始状态是遵守规则的。

接下来 tt 行,每行三个整数 si1,si2,kis_{i1},s_{i2},k_i,表示公司购入了连接 s1,s2s_1,s_2 的电缆。

四个 00 标志着测试文件的结束。

输出格式

对于每个测试数据,输出行:

  • No Such Cable. 如果这对服务器之前没有被一对电缆相连;
  • Already owned. 如果这对电缆本来就属于这家公司;
  • Forbidden: monopoly. 如果公司 kik_i 已经有2条电缆与 s1s_1s2s_2 相连;
  • 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 11 2 1
0 0 0 0
Sold.
Already owned.
Forbidden: monopoly.
Forbidden: redundant.
No such cable.
Already owned.

数据范围与约定

对于 100%100\% 的数据,1n8×1031\le n\le 8 \times 10^30m,t1050\le m,t\le 10^51c1001\le c\le 100