問題一覧 > 通常問題

No.2887 Minahoshi (Easy)

レベル : / 実行時間制限 : 1ケース 2.000秒 / メモリ制限 : 512 MB / スペシャルジャッジ問題 (複数の解が存在する可能性があります)
タグ : / 解いたユーザー数 120
作問者 : 👑 seekworserseekworser / テスター : 👑 amentorimaruamentorimaru yuusaanyuusaan
0 ProblemId : 11178 / 出題時の順位表 / 自分の提出
問題文最終更新日: 2024-09-12 11:12:54

ストーリー

みなほしちゃんは文字列について学んでいます。

LCP array について勉強したとき、"mississippi" という文字列は 自分の名前 "minahoshi" にそっくりなことに気が付き、 LCP array についてもっと詳しく知りたくなりました。

かわいいみなほしちゃんのために LCP array についての問題を解いてあげましょう。

問題文

正整数 $N$ が与えられます。a または b からなる長さ $N$ の文字列であって LCP array の要素の総和が最大となるものを構築してください。

LCP array とは

長さ $N$ の文字列 $S$ について、$S$ の $N$ 個の suffix (接尾辞)を辞書順でソートした配列を $S$ の suffix array と言います。
$i = 1, 2, \dots, N-1$ について、$S$ の suffix array の $i$ 番目の要素と $i+1$ 番目の要素の最長共通接頭辞の長さを求めた配列を $S$ の LCP array (Longest Common Prefix Array) と言います。

例えば、$S =$ abba の $4$ つの接尾辞は abba, bba, ba, a で、 これらを辞書順にソートすると [a, abba, ba, bba] となります。
隣接要素同士の最長共通接頭辞の長さは $1$, $0$, $1$ なので、 文字列 abba の LCP array は $[1, 0, 1]$ となります。

入力

$N$

制約

  • $2 \le N \le 2 \times 10^5$
  • 入力はすべて整数

出力

a または b からなる長さ $N$ の文字列であって LCP array の要素の総和が最大となる文字列を出力せよ。

与えられた $N$ に対して複数の文字列が条件を満たす場合、 いずれを出力しても正解とみなされる。

サンプル

サンプル1
入力
3
出力
aaa

aaa の LCP array は $[ 1, 2 ]$であり、総和は $3$ です。

これは、長さ $3$ の a または b からなる文字列として考えられる LCP array の総和として最大の値となります。

この他、 bbb などを出力しても AC となります。

提出するには、Twitter 、GitHub、 Googleもしくは右上の雲マークをクリックしてアカウントを作成してください。