#P1121. Algernon's Noxious Emissions

Algernon's Noxious Emissions

题目描述

在文艺复兴中期,阿尔杰农·达·芬奇(他是莱昂纳多鲜为人知的一位表亲),作为最伟大的炼金术士之一,极具前瞻性地将他的化学工厂建在了一条水流湍急的溪流之上。借助一系列巧妙的管道和水闸,他把溪水引向每个工作台,炼金术士们可以在这些工作台上制备他们的秘密药剂,并将化学副产品排放到流经工作台的溪水中。

随着阿尔杰农的业务不断发展,他甚至给工厂增设了额外的楼层,通过由踏轮驱动的泵将水提升到更高的楼层(这让那些被分配去操作泵的学徒们极为不满)。整个排放系统的管道变得极为复杂。甚至有传言称,在某些地方管道会绕回来,所以从一个工作台排放的特别难闻的化合物,可能会在几分钟后又流回到同一个地方。

然而,事情并非一帆风顺。阿尔杰农的工厂发生了一系列事故,比如小规模爆炸、毒气云等等。很明显,从一个工作台排放的化学品,可能会与下游另一个工作台排放的化学品发生剧烈反应。阿尔杰农意识到,他需要追踪化学品在工厂内可能的流动路径。

编写一个程序来帮助阿尔杰农完成这项任务。为了保证保密性,所有化学品都用单个大写字母来标识。所有工作台都用正整数 1 到 N 来标识,其中 N 是工作台的数量。

输入格式

第 1 行: 工作台的数量 N(N < 50)。

第 2 行到第 N + 1 行:
每个工作台的信息:

  • 排放到溪流中的化学品列表,
  • 以及在该工作台会被无害中和的化学品列表(如果这些化学品从上游到达该工作台,它们会被完全中和,不会继续流向下游)。

每个列表由一系列大写字母表示。特殊字符“.”表示空列表。两个列表之间用一个或多个空格分隔。同一个化学品不会同时出现在两个列表中。

第 N + 2 行到文件结束: 描述管道系统的连接关系。每行包含两个整数 I 和 J(1 ≤ I, J ≤ N),表示工作台 I 位于工作台 J 的上游——任何从工作台 I 排放或到达工作台 I 且未被中和的化学品会流到工作台 J。
输入以“0 0”结束。

输出格式

输出 N 行,每行对应一个工作台,按输入顺序排列。每行输出该工作台输出的化学品列表,格式为“:化学字母:”,字母按字母顺序排列。如果列表为空,则输出“::”。 示例输入与输出

4
AB C
C BDA
BCD.
. A
1 2
2 4
3 1
1 3
3 4
0 0
:ABD:
:C:
:ABCD:
:BCD: