回文,就是正著念跟反著念都一樣的字串,例如「上海自來水來自上海」跟「level」。
現在給你一個字串,希望你在這個字串中間插入幾個字元(也可能是 $0$ 個),使得插入字元後產生的字串是個回文。 除了最終形成回文以外,還需要產生的這個字串是最短的,但是最短的這些字串也可能有多個,因此你的程式需要找出的其實是這些最短的回文中,字典序第 $k$ 小的。
舉例來說,如果輸入的字串是 "cdba",而你要找出的是字典序第 $7$ 小的, 那麼你要從以下 $8$ 個:abcdcba, abdcdba, acbdbca, acdbdca, cabdbac, cadbdac, cdabadc, cdbabdc,中,輸出字典序第 $7$ 小的 "cdabadc"。
每次輸入只包含一筆測試資料。
輸入包含兩行,第一行包含一個由小寫英文字母組成的字串,其長度大於 $0$ 且不超過 $2000$。第二行包含一個正整數 $k(1 \leq k \leq 10^{18})$。
請輸出由輸入的字串插入數個字元而形成的最短回文中,字典序第 $k$ 小的。若字典序第 $k$ 小的字串不存在,也就是最短的回文根本不足 $k$ 個,則輸出 "NONE"(不含引號)。
NEOJ Problem 423
No. | Testdata Range | Constraints | Score |
---|---|---|---|
1 | 0~47 | 100 |