2011年7月30日 星期六

11221 - Magic square palindromes.

魔術迴文方陣(magic square palindrome)是將一個字串以列順序的方式填入一個KxK的方陣中,且用下列四種方式讀取每個字母皆會得到與原字串相同的字串:

  • 從(1, 1)開始由左至右讀取,直到該列結束後再換下一列的開頭,以此類推。
  • 從(1, 1)開始由上到下讀取,直到該行結束後再換下一行的開頭,以此類推。
  • 從(K, K)開始由右至左讀取,直到該列開頭再換上一列的結尾,以此類推。
  • 從(K, K)開始由下到上讀取,直到該行開頭再換上一行的結尾,以此類推。

"Sator arepo tenet opera rotas"是較廣為人知的魔術迴文方陣字串,其中K=5 (5x5),方陣顯示如下:

sator
arepo
tenet
opera
rotas


可發現利用上述四種方式讀取表格中的字母,所得到的字串皆相同。

Input

輸入的第一列為整數T(1 <= T <= 60)表示測試資料的組數,接下來有T列字串分別表示每組測試資料,每列字串長度皆大於零小於10,000,且包含小寫字母(a-z)、空白字元、逗號、句號、問號、驚嘆號、括號等字元,請注意,魔術迴文方陣字串僅包含26個小寫英文字母。

Output

每組測試資料輸出兩列,第一列以"Case #C:"的格式輸出測試資料的編號C(1~T),若該字串為魔術迴文方陣,請在第二列輸出K(即方陣大小為KxK),若否則輸出"No magic :(",請參考範例資料。

Sample input

3
sator arepo tenet opera rotas
this sentence is, quite clearly, not a magic square palindrome! but then again, you never know...
muse sun, eve.s e(y)es even use sum.

Sample output

Case #1:
5
Case #2:
No magic :(
Case #3:
5

原文出處

沒有留言:

張貼留言