#RB25AJ0602. 独立数

独立数

独立数

文件与限制

输入文件:number.in;输出文件:number.out。

时间限制:1 秒;空间限制:512 MiB。使用 C++14 O2。

题目描述

张老师认为一个数字,如果它任意相邻的两位数字均不同,则它是一个独立数

现在张老师想知道,在给定 nn 个数字的情况下,用这些数字拼接(所有数字都要用上)而成的数字中,最小的独立数是多少?

多位数不允许前导零。单独一个数字 0 是合法的独立数;若只有多个 0,则无法组成合法独立数。必须使用全部给定数字。

输入格式

题目包含多组测试数据,输入第一行包含一个整数 TT 表示测试数据数量

对于每组测试数据,输入一行包含 1010 个整数 a0∼a9a_0 \sim a_9 分别表示给定了 a0a_0 个 0,a10,a_1 个 1…1 \dots

输出格式

对于每组测试数据输出一行,表示答案,如果无法组成独立数则输出 "Impossible!"

数据范围

数据编号 n,ain,a_i 特殊性质
1∼21 \sim 2 n,ai≤10n,a_i\leq 10 无
3∼43 \sim 4 n,ai≤1000n,a_i\leq 1000
5∼65 \sim 6 n,ai≤100000n,a_i\leq 100000 至多两个 ai>0a_i > 0
7∼87 \sim 8 至多三个 ai>0a_i > 0
9∼109 \sim 10 无

特别的,对于所有测试数据满足 T≤10,n=∑aiT \leq 10, n = \sum{a_i}

样例输入1

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

样例输出1

9090909090
Impossible!
313
404070
123234345454565656767676787897979898989898989

对于全部数据,1≤T≤101\le T\le10,0≤ai0\le a_i,1≤n=∑i=09ai≤1000001\le n=\sum_{i=0}^9 a_i\le100000。