T640835 【pty2022】编号
题目描述
胖头鱼班上的学生实在是太多了,为了方便管理,他打算给每个学生分配一个由数字 $0$ 到 $9$ 组成的**非负整数**编号。可惜胖头鱼的键盘上有些按键失灵了,导致他无法使用某些数字。
胖头鱼现在想知道,在只能使用给定的 $k$ 种数字的前提下,他能够得到的第 $n$ **小**的编号是多少。
注意 $0$ 是**最小**的编号,但是编号不允许有**多余的前导** $0$ ,例如 $012$ 不是合法的编号。
输入格式
第一行包含两个整数 $n$ 、 $k$ ,表示有 $k$ 个数字可以使用,需要求出第 $n$ 小的编号。
第二行包含 $k$ 个数字 $a_i$ ,按照**由小到大**的顺序给出每个可以使用的数字。
输出格式
包含一个整数,表示第 $n$ 小的编号。
说明/提示
【样例 1 解释】
只使用数字 $5$ 组成的前 $3$ 小的非负整数分别为 $5$ 、 $55$ 、 $555$ ,其中第 $3$ 小的整数是 $555$ 。
【样例 2 解释】
所有的数字都可以使用,第 $329$ 小的非负整数是 $328$ 。
数据说明】
对于所有数据, $1 ≤ n ≤ 10^9$ 、 $1 ≤ k ≤ 10$ 、 $0 ≤ a_i ≤ 9$ ,不会出现重复的 $a_i$ 。
部分测试点的特殊属性如下:
- 对于数据点 $1 - 3$ , $k = 1$ 、 $a_1 ≠ 0$ ,表示只有一个非 $0$ 数字可用。
- 对于数据点 $4 - 6$ , $k = 10$ ,表示所有数字均可使用。
- 对于数据点 $7 - 12$ , $n ≤ 50$ ,表示第 $n$ 小的编号不会太大。
- 对于数据点 $13 - 16$, $k ≥ 2$ 、 $a_1 = 0$ ,表示至少有两个数字可用且数字 $0$ 可用。