#31316. 编号(number)

编号(number)

【题目描述】

胖头鱼班上的学生实在是太多了,为了方便管理,他打算给每个学生分配一个由数字 0099 组成的非负整数编号。可惜胖头鱼的键盘上有些按键失灵了,导致他无法使用某些数字。

胖头鱼现在想知道,在只能使用给定的 kk 种数字的前提下,他能够得到的第 nn 的编号是多少。

注意 00最小的编号,但是编号不允许有多余的前导 00 ,例如 012012 不是合法的编号。

【输入格式】

第一行包含两个整数 nnkk ,表示有 kk 个数字可以使用,需要求出第 nn 小的编号。

第二行包含 kk 个数字 aia_i ,按照由小到大的顺序给出每个可以使用的数字。

【输出格式】

包含一个整数,表示第 nn 小的编号。

【样例 1 输入】

存放在试题目录下的 sample/number/number1.in 文件中。

3 1
5

【样例 1 输出】

存放在试题目录下的 sample/number/number1.out 文件中。

555

【样例 1 解释】

只使用数字 55 组成的前 33 小的非负整数分别为 555555555555 ,其中第 33 小的整数是 555555

【样例 2 输入】

存放在试题目录下的 sample/number/number2.in 文件中。

329 10
0 1 2 3 4 5 6 7 8 9

【样例 2 输出】

存放在试题目录下的 sample/number/number2.out 文件中。

328

【样例 2 解释】

所有的数字都可以使用,第 329329 小的非负整数是 328328

【样例 3 和 4】

存放在试题目录下的 sample/number/number3.insample/number/number3.outsample/number/number4.insample/number/number4.out 文件中。

number.zip

【数据说明】

对于所有数据, 1n1091 ≤ n ≤ 10^91k101 ≤ k ≤ 100ai90 ≤ a_i ≤ 9 ,不会出现重复的 aia_i

部分测试点的特殊属性如下:

  • 对于数据点 131 - 3k=1k = 1a10a_1 ≠ 0 ,表示只有一个非 00 数字可用。
  • 对于数据点 464 - 6k=10k = 10 ,表示所有数字均可使用。
  • 对于数据点 7127 - 12n50n ≤ 50 ,表示第 nn 小的编号不会太大。
  • 对于数据点 131613 - 16k2k ≥ 2a1=0a_1 = 0 ,表示至少有两个数字可用且数字 00 可用。