SP9943 ISAB - Isabella Message

题目描述

### 背景 Isabella和Steve是好♂朋♀友,他们经常互通 ~~情书~~ 书信。他们分享愉快的经历,谈论周围的人们,倾述他们的情感...他们在信中分享几乎所有事情。当他们的信送出时,他们特别担心有人后偷看他们的信(特别是他们的父母)。所以他们给信进行了 只有他们知道解密方法的 加密,这就保证了他们的隐私。 信息被加密为了一个*N*×*N*(*N*位偶数)的矩阵,矩阵的每一个位置包含一个字符。 Steve用一张特殊的蒙版作为秘钥。 蒙版也是一个*N*×*N*的矩阵,这个矩阵包含*N*×*N*÷4个,大小为1×1的洞。 #### 解密方式如下 1. 将蒙版放在加密信息矩阵上 2. 写下透过洞可以看到的字符,**从上到下,从左到右** 3. 将蒙版**顺时针**旋转**90°** 4. 继续**步骤2**,直到你写下了**所有四个方向的情况**(按顺序将写下内容拼接)(**原意**:直到你写下了每一个信息矩阵中的每一个字符) 5. 去掉你写下信息中**多余的**空格 ###### 举个栗子 你有了一个加密信息(如图1),并且你有了一个秘钥蒙版(如图2)。解密过程如图3展示,最后你会获得一个信息:"good morning"。 ![图1 和 图2](https://cdn.luogu.org/upload/vjudge_pic/SP9943/8ce7033dcec8d5b4b8114f01fc2eb749b6c76b6f.png) ![图3](https://cdn.luogu.org/upload/vjudge_pic/SP9943/cc98dea9792ab22a7157ed005cb1f9dc86c2d02d.png) 你大可假设蒙版是特制的,以解密过程中使每个字符仅出现一次(假设与解密过程原意有关)。 然而,过程的第一步有**多种放置方法**(实际就四种。。。。),因为蒙版可以旋转(**即**四个方向**均**可作为第一步放上信息矩阵)。因此,你可能得到**多个不同的结果**,比如上述例子中,你也可以得到"od morning go"(过程如图4所示),同样的,你也能得到其他答案,如"orning good m"和"ng good morni"。 ![图4](https://cdn.luogu.org/upload/vjudge_pic/SP9943/973a9e7e638f7928dab3591c6abd3a5dbdcce975.png) Steve也不知道正确的解密方式,还好他还有一张**单词表**,而正确信息中只会出现**表上的单词**。当出现**多条满足条件**的信息时,选择**字典序**最小的一条。(此处完全**意译**,原意要长太扯了。。。。。) 当然也有 **没有满足条件的信息** 的情况。 Isabella每天的发信息,而解密工作耗费了Steve大把的精力,Steve总迫不及代,希望立刻看到信息,于是他找到了你帮他构造程序解密 上述的加密信息矩阵,蒙版,单词表以以下方式给出

输入格式

第一行为一个整数***T***,指出有***T***个矩阵需要解密。 对于**每一种情况** ***i***: - 第一行给出整数***N*** - 接下来***N***行,每行***N***个字符,描述**加密信息**矩阵(字符'.'表示空格) - 接下来***N***行,每行***N***个字符,描述**秘钥蒙版**矩阵 - 接着一行给出***M***,表示**单词表**单词数 - 接着***M***行,每行给出表中的一个单词

输出格式

输出共***T***行 对于输入***i***,输出一行"Case #i: S" 其中,***i***为***i***(嗯。。。),S为满足条件的信息 若**没有满足条件的信息**,S为"FAIL TO DECRYPT".