a734. CPE:Deciphering Messages (UVa 828)

困難CPE

時間限制 2000 ms ・ 記憶體限制 256 MB

題目描述

密鑰包含有順序的英文字母集合 L,以及整數 N(1 到 25)。定義 ciph(p) 為將大寫字母 p 往字母表後方循環移動 N 位,例如 N=2 時 A→C、Y→A。

從左到右逐字加密,單字間空白保持不變。若原字母 p 不在 L 中,只輸出 ciph(p);若 p 在 L 中,輸出三個字母:L 的第 m 個字母、ciph(p)、L 的第 m+1 個字母,再讓 m 增加 1。L 視為環狀,每一整行訊息開始時 m=1,遇到空白不重設。

密鑰保證能唯一解碼,L 不包含 L 中任何字母經 ciph 轉換後的字母。請還原各訊息,並偵測不符合編碼規則的內容。

輸入格式

第一行為正整數 T,之後有空白行,各測試資料間也有空白行。每筆依序為:字母密鑰 L、數字密鑰 N、訊息數,以及該數量的密文行。密文只含大寫 A–Z 與單字間的空白。

輸出格式

每個密文行輸出原訊息;若不是任何明文的合法編碼,輸出 error in encryption。維持訊息順序,不同測試資料輸出間印一個空白行。

原題:https://onlinejudge.org/external/8/828.pdf

範例測資

範例輸入 1

1

RSAEIO
2
5
RTSSKAEAGE
GRSCAV
RGSSCAV
RUSIQO
RUSSGAACEV JEGIITOOGR

範例輸出 1

RICE
error in encryption
EAT
error in encryption
SEAT HERE
請先登入後再提交程式碼

討論與題解

載入討論區…

更多