喵喵跟貓貓的紙條最近被⽼師截獲,雖然⽼師⼀直看不出裡頭的訊息,但是喵喵跟貓貓還是被罵了⼀頓。他們也意識到使⽤實體媒介會留下通訊的證據,於是他們開始把腦筋動到了其他地
⽅ ······
有⼀天,貓貓正在吃著某間連鎖店的漢堡,⽽喵喵若有所思地盯著那個漢堡看著。
「你知道摩斯電碼嗎?」喵喵突然⼩聲的問貓貓。
『那是什麼?能吃嗎?』貓貓⼀邊說著⼀邊把⼿上剩下⼀半的漢堡⼀⼝塞進了嘴裡。
「你噢 ······ 就只知道吃。」喵喵無奈地拍了額頭,開始解釋道:「摩斯電碼(morse code)是電報剛發明的時候,⽤來傳訊息的⼀種編碼⽅式。感覺可以⽤來取代我們原本的紙條。」
『電報?所以我們要在我們的位⼦中間拉⼀條⻑⻑的電線,然後⼀個⼈⾷指貼著⼀個⾦屬⽚打字,另⼀個⼈戴著⽿機聽?這樣太明顯了吧。』
「凡⼈的智慧。這是最傳統的⽅式。」喵喵嘆道:「光也是可以利⽤的。」
『光?』貓貓⽔汪汪的眼睛充滿了困惑。『你是說像電視劇那樣拿著⼀個⼿電筒往對⽅打,然後
⼀亮⼀滅的嗎?這樣⽼師不會發現嗎?』
「你鄭吒啊?當然不是這樣。」喵喵⽩了他⼀眼,伸出了⾷指⼀上⼀下地敲著桌⼦:「我們的座位是可以看得到對⽅的,所以可以⽤動作來傳訊。」
『可是這樣不會有聲⾳嗎?』
「當然只要做做樣⼦讓對⽅看得到就好啊 ······ 崩 \(〒⽫〒)/ 潰」經過喵喵努⼒地解釋了好⼀陣⼦後,貓貓終於⼤致理解了整個傳訊系統要怎麼運作。
摩斯電碼是由⼀些⻑訊號跟⼀些短訊號組合⽽成的。為了⽅便起⾒,我們稱短訊號為「點
(.)」,⻑訊號則是「劃(-)」,⽽英⽂單詞中間會以⼀個空⽩分隔,但空⽩在摩斯電碼⼀般表⽰字符跟字符之間的分隔,我們先⽤斜線 ‘/’ 來表⽰。
例如,“NPSC GG” 的摩斯電碼是 “-. .--. ... -.-. / --. --.”。“-.” 是 ‘N’,⽽ “.--
.” 是 ‘P’,詳細的對照請參閱⽂末的表格。
但是動作無法表⽰⻑與短訊號,所以需要進⼀步的設計怎麼表⽰⻑訊號、短訊號以及停頓。
⼀個⽅法是,可以把連續的時間切成⼀個⼀個單位。例如,以秒為單位。接著看著傳訊者的⼿指,看著每⼀秒鐘,傳訊者的⼿指是否打算敲擊桌⼦。假設有敲擊的秒標為 ‘=’,沒有敲擊的秒標為 ‘.’,這樣可以把⼀段時間內,傳訊者的動作表達成⼀個序列,⽽⻑訊號跟短訊號也可以⽤此來表⽰。
「點」是連續敲擊⼀秒時間(也就是敲⼀下),⽽「劃」是三秒(連續三秒都各敲⼀下)。「點」「劃」之間會停頓⼀秒,⽽每個字之間的間隔是停頓三秒;單詞之間的間隔(也就是空⽩ ‘/’)會停頓七秒。
於是上述的摩斯電碼就會變成這樣:
===.=...=.===.===.=...=.=.=...===.=.===.=.......===.===.=...===.===.=
- . . - - . . . . - . - . - - . - - .
N P S C / G G
⽼樣⼦,貓貓跟喵喵覺得解摩斯電碼是個很枯燥繁瑣的⼯作,於是他們打算請你幫忙寫個程式來幫他們解開摩斯電碼。你的程式會被給予每秒鐘對⽅是否敲擊桌⼦的紀錄,請你解出原⽂。噢對了,以下是摩斯電碼表:
字⺟(摩斯電碼裡只有⼤寫)
A .-B -...C -.-.D -..E .F ..-.G --.H ....
I ..J .---K -.-L .-..M --N -.O ---P .--.
Q --.-R .-.S ...T -U ..-V ...-W .--X -..-
Y -.--Z --..
輸⼊只有兩⾏。
第⼀⾏為⼀個整數 n,表⽰輸⼊會有連續 n 秒的資訊。第⼆⾏為⼀個只有 ‘=’ 跟 ‘.’ 組成的字串 S,其⻑度為 n,表⽰每秒鐘是否敲擊桌⼦的紀錄。
請輸出⼀⾏字串,為解碼後的原⽂。
69 ===.=...=.===.===.=...=.=.=...===.=.===.=.......===.===.=...===.===.=
NPSC GG
其他範例輸入及輸出,可參造原題目說明
編號 | 身分 | 題目 | 主題 | 人氣 | 發表日期 |
沒有發現任何「解題報告」 |