2011年10月22日 星期六

850 - Crypt Kicker II

有一種簡單但不安全的加密方式是將一段文字的字母作變換,也就是將每個字母以另一個不同的字母作取代,為了保證可對密文解密,我們必須避免不同的字母以相同的字母取代。

本題請你對密文作解密,且假設密文中的每一列皆採用相同的字母變換方式,且其中有一列是由下列明文加密而來(此明文稱為關鍵句):

the quick brown fox jumps over the lazy dog

Input

輸入資料的第一列有一個整數表示測試資料的組數,每組測試資料的格式如下段所述,並注意每組測試資料前有一列空行。

一組測試資料有許多列,每列皆以相同的變換方式加密,每列僅包含小寫字母及空白字元,且長度不超過80個字元,每組測試資料不超過100列。

Output

請對每組測試資料作解密,並在每組之間以一列空行隔開。若有多種可能的解密方式(即有多列可被解密為關鍵句)則選擇第一個找到的關鍵句來作解密。若該組資料無解,請輸出"No solution."

Sample Input 

1

vtz ud xnm xugm itr pyy jttk gmv xt otgm xt xnm puk ti xnm fprxq
xnm ceuob lrtzv ita hegfd tsmr xnm ypwq ktj
frtjrpgguvj otvxmdxd prm iev prmvx xnmq

Sample Output 

now is the time for all good men to come to the aid of the party
the quick brown fox jumps over the lazy dog
programming contests are fun arent they


原文出處

沒有留言:

張貼留言