c356: Justin 愛加密
內容
2018 年 4 月 1 日成功高中大門突然多了一顆石頭,但這次並不是學校出錢所買,而是從遙遠的火星飛來的神秘石頭。神秘的石頭上也寫了一串文字:
『 HDNOWEEIOWWELWDDWWLOPODWO 』,NASA 也不知道其中的含義。Justin 精通各種加密技巧,看一眼就知道其中真正的含義,也就是 『HELLO』。
只要經過 T ( 5 ) 的排列,再將對角線的字即為原文~
『
HDNOW
EEIOW
WELWD
DWWLO
PODWO
』
就成了 ->『 HELLO 』。
所以 N 也能代表秘文長度,現在給你一串原本字串及 N ,請你輸出其中真正想表達的字串。
記憶體只有 16 MB !
輸入
單筆輸入
第一行有一個整數 N 代表秘文長度 (1 <= N <= 5000)
第二行一個字串,代表石頭上出現的文字 ,長度為 N * N 。
5
HDNOWEEIOWWELWDDWWLOPODWO
輸出
輸出只有一行。
請輸出真正想表達的字串。
( 必為英文字母 A ~ Z )
HELLO
解題思路
觀察密碼字元的出現頻率,會發現他是每隔 n 個字就會出現一次,所以每次讀取資料時都讀 n+1 個字元,這時候毒入的字串首個字元即為密碼字元,將他們收集起來輸出即可。
注意!C 在讀入字串後都會在字串的後面加上'\0'表示字串結束,所以每次讀入時需用 n+2 的大小保留空位給'\0'。
完整程式碼
AC (11ms, 112KB)
|