No.2893 Minahoshi (Hard)
タグ : / 解いたユーザー数 10
作問者 : 👑
![amentorimaru](https://pbs.twimg.com/profile_images/1257015742903406592/16VDjMfb.jpg)
![kemuniku](https://pbs.twimg.com/profile_images/1627159705083842560/aL4N0yrm.jpg)
ストーリー
みなほし「LCP array について分かった気がする!」
みなほし「最大の場合は解けたし、きっと最小の場合も簡単に解けるよね?」
問題文
正整数 が与えられます。a
または b
からなる長さ の文字列であって
LCP array の要素の総和が最小となるものを構築してください。
LCP array とは
長さ の文字列 について、 の 個の suffix を辞書順でソートした配列を の suffix array と言います。について、 の suffix array の 番目の要素と 番目の要素の最長共通接頭辞の長さを求めた配列を の LCP array (Longest Common Prefix Array) と言います。
この問題はマルチテストケースです。 個のテストケースについて回答してください。
入力
について、 は以下の形式で与えられる。
制約
- すべてのテストケースについての の総和は 以下である。
- 入力はすべて整数
出力
行出力せよ。 行目には 番目のテストケースについて、
a
または b
からなる長さ の文字列であって
LCP array の要素の総和が最小となる文字列を出力せよ。
与えられた に対して複数の文字列が条件を満たす場合、 いずれを出力しても正解とみなされる。
サンプル
サンプル1
入力
3 2 3 4
出力
ab abb aabb
ab
の LCP array は であり、総和は です。
abb
の LCP array は であり、総和は です。
aabb
の LCP array は であり、総和は です。
いずれも長さ の a
または b
からなる文字列として考えられる LCP array の総和として最小の値となります。
提出するには、Twitter 、GitHub、 Googleもしくは右上の雲マークをクリックしてアカウントを作成してください。