CafeCoder Test 002
コンテスト日時
2020/11/23 (Mo) 21:00 - 22:30

C - NOT IN S

Darjeeling
2
s
1024
MB
300

問題文

長さ $N$ の英小文字のみからなる文字列 $S$ が与えられます。
次の条件を満たす文字列 $T$ のうち、長さが最小のものを出力してください。そのようなものが複数ある場合は辞書順最小のものを出力してください。

  • $T$ は英小文字のみからなる長さ $1$ 以上の文字列である。
  • $T$ は $S$ の部分文字列ではない。
    • ここで $S$ の部分文字列とは、$S$ の連続した区間を取り出して構成出来るような文字列を指す。

なお、$X = x_1x_2\cdots x_n, Y = y_1y_2\cdots y_m$ を二つの異なる文字列とするとき、$Y$ が $X$ の接頭辞であるか、$j$ を $x_j \neq y_j$ であるような最小の整数として $x_j > y_j$ であるとき、かつその場合に限り $X$ は $Y$ より辞書順で大きいという。

制約

  • $1 \le N \le 10^5$
  • $S$ は英小文字のみからなる。
  • $N$ は整数

入力

$N$
$S$

出力

条件を満たす文字列 $T$ のうち、長さが最小のものを出力してください。そのようなものが複数ある場合は辞書順最小のものを出力してください。

入力例 1
12 agoshisakina
出力例 1
b

長さ $1$ の $S$ の部分文字列は 'a','g','h','i','k','n','o','s' です。ここに登場しないような長さ $1$ の文字列であって、辞書順最小のものは 'b' です。

入力例 2
26 abcdefghijklmnopqrstuvwxyz
出力例 2
aa

長さ $1$ であって、条件を満たすような文字列は存在しません。

提出
C++23 (g++ 12.2.0)