No.2226 Hello, Forgotten World!
タグ : / 解いたユーザー数 135
作問者 : 👑 AngrySadEight / テスター : akakimidori 👑 p-adic norikame
問題文
はちじくんは,友人の誕生日にプレゼントとして英小文字からなる文字列 $S$ を用意して渡すことにしました.
友人を驚かせようと,はちじくんは文字列 $S$ を連続する部分列として helloworld
を含むように作ろうとしました.しかし,はちじくんは,作ろうとした文字列の一部を忘れてしまいました.
英小文字と,?
からなる長さ $N$ の文字列 $S$ が与えられ,?
ははちじくんがその箇所の文字を忘れたことを表します.はちじくんのために,?
を英小文字に置き換えて,連続する部分列としてhelloworld
を含む文字列を復元してください.ただし,そのような文字列が複数ある場合には,その中で辞書順最小のものを求め,そのような文字列が無い場合はその旨を報告してください.
$T$ 個のテストケースが与えられるので,それぞれに対して答えを求めてください.
入力
入力は以下の形式で標準入力から与えられる.
$T$ $case_1$ $case_2$ $\vdots$ $case_T$
各ケースは以下の形式で与えられる.
$N$ $S$
制約
- $N, T$ は整数である.
- $1 \leq T \leq 20$
- $10 \leq N \leq 1000$
- $S$ は英小文字および
?
のみからなる長さ $N$ の文字列である.
出力
$T$ 行にわたって出力せよ.$i(1 \leq i \leq T)$ 行目には $i$ 番目のテストケースについて,$S$ のうち ?
である箇所を英小文字に変えることで連続する部分列として helloworld
を含むようにすることが不可能ならば,-1
を出力せよ.可能ならば,そのような文字列の中で辞書順最小のものを出力せよ.
サンプル
サンプル1
入力
3 13 g?e??owo??d?d 26 abcdefghijklmnopq????????? 10 helloworld
出力
ghelloworldad -1 helloworld
1つ目のテストケースについて,$2$ 文字目から $11$ 文字目が helloworld
となっており,確かに連続する部分列として helloworld
を含みます.ほかに ghelloworldld
なども連続する部分列として helloworld
を含みますが,辞書順最小のものを出力する必要があることに注意してください.
2つ目のテストケースについて,$9$ 個ある ?
をどのような文字に変えたとしても,連続する部分列として helloworld
を含むようにはできません.
3つ目のテストケースについて,helloworld
それ自身も,連続する部分列として helloworld
を含んでいます.
提出するには、Twitter 、GitHub、 Googleもしくは右上の雲マークをクリックしてアカウントを作成してください。