#P1683. Puzzlestan
Puzzlestan
本题没有可用的提交语言。
Puzzlestan驻德黑兰大使阁下将在11月2日(Puzzlestan国庆日)举办一场招待会。所有驻德黑兰的外国使节均受邀出席。在招待会大厅入口处,每位客人会将自己的物品(大衣、帽子等,后文统称为“物品”)交给接待员,而这位接待员知道东道主大使喜欢解谜游戏。在等待招待会结束的过程中,接待员在笔记本电脑上编写了一个程序,以帮助自己确定物品的归属。他让每位客人给出一些陈述,这些陈述分为两类:
- 两个物品属于同一位客人;
- 两个物品不属于同一位客人。
假设有N种物品和M位客人,且每位客人每种物品各有一件(即每位客人有一件大衣、一顶帽子等)。这N×M件物品各有一个唯一的名称,均为单个字母(区分大小写)。我们可以用一个长度为M的字符串表示第i种(1≤i≤N)物品的所有个体,称之为第i组。例如,第i组可以是“ABCD”,其中第一个物品是A,第二个是B,以此类推。
输入
第一行包含测试用例的数量(至多20个)。每个测试用例的第一行包含两个正整数:第一个是N(1≤N≤7),表示物品的种类数;第二个是M(1≤M≤7),表示客人的数量。接下来的N行,每行是一个长度为M的字符串,代表一组物品(同一种类的不同个体)。输入的剩余部分包含若干行陈述,每个陈述的格式为“i j X k r”,其中:
- 若X为R,表示第i组的第j个物品与第k组的第r个物品属于同一位客人;
- 若X为N,表示第i组的第j个物品与第k组的第r个物品不属于同一位客人。
每个测试用例的最后一行是一个虚拟陈述“0 0 R 0 0”。
输出
对于每个测试用例,程序应输出M行。第i行(1≤i≤M)以输入中第一组的第i个物品开头, followed by 第二组中与之对应的物品,以此类推,直到最后一组的对应物品(因此,第一列的字母与第一组的字母完全相同,且保持顺序)。连续测试用例的输出之间必须用恰好一个空行分隔。
输入数据示例
1
3 4
ABCD
EFGH
IJKL
1 1 R 3 2
1 2 N 2 2
2 2 R 3 4
1 3 R 2 3
1 1 N 2 4
3 1 R 1 3
0 0 R 0 0
输出数据示例
AEJ
BHK
CGI
DFL