聖經密碼


提交答案

分數: 100 (部分)
時間限制: 5.0s
記憶體限制: 1G

作者:
題目類型

1980 年代,以色列希伯來大學的數學家 Eliyahu Rips 和物理學家 Doron Witstum 利用電腦高速計算對比 (一套精密的數學運算模式),挑選聖經時代以來的 32 位知名人物,結果發現他們的名字和出生與死亡日期在《創世記》中都是編在一起的。後來他們把整本希伯來文聖經原文去除了所有字間距,連貫成總長 304805 個字 (因為根據傳說,摩西從上帝手中接受的聖經就是「字字相連,無一中斷」),採用電腦跳躍碼方式,在字串中尋找名字、單詞和詞組,最終找到了一系列相關信息。

現在,你也拿到了另一個不知名的古文獻,其中含有 \(n\) 個單字,你的任務是要把文中的文字「字字相連」,再依電腦所提供的 \(m\) 個整數 \(A_1, A_2, ..., A_m\),從這個長字串找出第 \(A_1, A_2, ..., A_m\) 個字母併成一個單字。

例如

所收到的文獻為:the quick brown fox jumps over the lazy dog

連接成一個長字串:thequickbrownfoxjumpsoverthelazydog

電腦提供的線索為:33, 11, 34, 19, 21, 33, 30, 32

所併成的單字:doomsday  

輸入格式

輸入檔中有多組測試資料。 每組測試資料的第一行是兩個正整數 \(n\)(\(\lt1000001\)), \(m\)(\(lt101\))。接下來的 \(n\) 行每行有一個英文單字,每個單字的長度不超過 \(100\)。最後一行有 \(m\) 個以空白隔開的正整數,所提供的數字不會超過字串的總長度。 當 \(n, m\) 均為 \(0\) 表示檔案結束,不須處理這組輸入。

輸出格式

對於每組測試資料,請輸出所擷取的文字於一行。

範例輸入

9 8
the
quick
brown
fox
jumps
over
the
lazy
dog
33 11 34 19 21 33 30 32
0 0

範例輸出

doomsday

留言


  • 0
    電研網管打工人  評論於2024年11月3日 13:56 編輯2

    一些答案在zerojudge上可以0.2秒過 但在我的PC跟TFOJ上要40秒以上??


    • 0
      電研網管打工人  評論於2024年11月3日 14:20

      直接用input()/print()/str_ += input()會TLE不意外
      但丟到zerojudge同樣的測資卻只要0.2秒


    • 0
      電研網管打工人  評論於2024年11月3日 14:15

      確實是IO效率的問題 不過zerojudge到底做了甚麼黑魔法消除這個差異
      有知道的可以告訴我嗎 我對競程一無所知😭😭


  • 0
    電研網管打工人  評論於2024年11月3日 13:43

    測資 txt 大小 9MB,很容易TLE


    • 0
      Go  評論於2024年11月3日 13:49 已編輯

      不用改時限, 比較有趣。總能想出方法。