AtCoder Regular Contest 044
翻译中…
Problem Statement
翻译中…
高橋君はsuffix arrayの構築アルゴリズムが大好きです。毎日さまざまなsuffix arrayの構築アルゴリズムを実装して遊んでいます。 しかし、高橋君はsuffix arrayを構築しすぎてしまったので、suffix arrayを構築するのに飽きてしまいました。 そこで高橋君は、与えられた順列に対し、その順列をsuffix arrayに持つような辞書順最小の文字列を求めることにしました。
翻译中…
ただし、$2$つの文字列$X_1,X_2,...,X_s$と$Y_1,Y_2,...,Y_t$に対し、辞書順で$X<Y$とは、以下のいずれか片方の条件を満たすこととします。
翻译中…
- ある整数
$i(1 ≦ i ≦ min(s,t))$が存在し、$1 ≦ j ≦ i-1$を満たす任意の整数$j$に対して$X_j=Y_j$で、かつ$X_i<Y_i$ - 任意の整数
$i(1 ≦ i ≦ min(s,t))$に対して$X_i=Y_i$で、かつ$s<t$
翻译中…
また、与えられた文字列Sに対し、そのsuffix arrayとは、すべてのiに対して、Sのi文字目から末尾までを順に並べた文字列を列挙し、その文字列たちを辞書順に並び替えた列の各要素に対し、対応するiを順に並べたものです。 たとえば、文字列ABACABAのsuffix arrayは[7,5,1,3,6,2,4]となります。
翻译中…
長さNの順列が与えられるので、その順列をsuffix arrayに持つ英大文字のみからなる辞書順最小の文字列を求めてください。そのような文字列が存在しなければ、代わりに-1を出力してください。
翻译中…
Input
翻译中…
入力は以下の形式で標準入力から与えられる。
翻译中…
N
A_1 A_2 ... A_N
翻译中…
$1$行目には、整数$N(1 ≦ N ≦ 10^6)$が与えられる。$2$行目には、整数列$A_1,...,A_N(1 ≦ A_1,...,A_N ≦ N)$が与えられる。これら$N$個の整数はどの$2$つも互いに異なることが保障される。
翻译中…
Output
翻译中…
順列$A_1,...,A_N$をsuffix arrayに持つ辞書順最小の文字列を出力せよ。
翻译中…
出力の末尾に改行を入れること。(21:40修正)
翻译中…
样例
Input #1
7
7 5 1 3 6 2 4
Output #1
ABACABA
条件を満たす文字列は他にも$CXHZBWA$などがありますが、辞書順最小の$ABACABA$を出力します。
Input #2
12
7 1 9 10 2 4 3 6 12 5 11 8
Output #2
BDEDGFAHCCGG
题目信息
题面与样例版权归 AtCoder 及出题人所有;中文翻译由 AI 生成(CI 管线),如有出入请以原文为准。