10進数の数列
题意翻译
# 题目描述
花子望着几排。
在该数列中执行以下操作:
选择几个不相邻的要素
不变数行中出现的顺序,按所选数排列
把它作为一个十进制的数目来读
花子,在意做这样的操作不能做的最小正整数是多少。
例如,如果给出“3 0 1”的数列。花子能做的正整数是:11,33,3131。
此时,
11可以做,但是22列一个都没有,不能做。
不能忽略“1313”等数字出现的顺序的正整数。
不能像“3030”和“301301”这样,使用相邻的数字制作。
为了花子,请求出不能做的最小正整数。
第1行数列的长度n(1\\\\\ n\\ 10000)n(1≤n≤10000)被给予。
在第22行中,数列(d_1d
# 输入格式
1
d_2d
2
...d_nd
n
)以空格分隔符。d_i(i\=\ 1\,\..\,\ n\\)di
# 输出格式
(i=1,...,n)是00以上999以下的数字。
输出花子不能做的最小正整数。另外,请注意不要在前头输出多余的0。在输出的末尾另起一行。
题目描述
[problemUrl]: https://atcoder.jp/contests/oidashi/tasks/oidashi_e
花子はある数列を眺めています。
その数列に以下の操作を行います。
1. **隣り合っていない** 要素をいくつか選ぶ
2. 数列に現れる順番を変えずに選んだ数を並べる
3. それを十進法の数として読む
花子は、このような操作をして作ることのできない最小の正の整数がいくらなのか気になりました。
例えば、「3 0 1」という数列が与えられたとします。 花子の作ることのできる正の整数は、$ 1 $,$ 3 $,$ 31 $です。
この場合、
- $ 1 $は作れますが、$ 2 $は数列に一つもないので作ることができません。
- 「$ 13 $」などの数字が現れる順番を無視したような正の整数は作れません。
- 「$ 30 $」や「$ 301 $」のように、隣り合った数字を用いて作ることはできません。
花子のために、作ることのできない最小の正の整数を求めてください。
输入输出格式
输入格式
> $ n $ $ d_1 $ $ d_2 $ $ d_3 $ ... $ d_n $
- $ 1 $行目に数列の長さ $ n\ (1\ \leq\ n\ \leq\ 10000) $が与えられます。
- $ 2 $行目には、数列($ d_1 $ $ d_2 $ ... $ d_n $)が空白区切りで与えられます。$ d_i\ (i\ =\ 1\ ,\ ...\ ,\ n\ ) $ は、$ 0 $以上$ 9 $以下の数字です。
输出格式
花子が作ることのできない最小の正の整数を出力してください。 なお、先頭に余計な0を出力しないよう注意してください。 出力の末尾には改行を入れること。
输入输出样例
输入样例 #1
3
3 0 1
输出样例 #1
2
输入样例 #2
12
1 2 1 2 3 4 5 6 7 8 9 0
输出样例 #2
21
输入样例 #3
20
1 2 3 4 5 6 7 8 9 1 1 2 3 4 5 6 7 8 9 0
输出样例 #3
100