问题 25280. -- 寻找编码串

25280: 寻找编码串

时间限制: 1 Sec  内存限制: 128 MB
献花: 1  解决: 0
[献花][花圈]

题目描述

给定N个由0和1组成的编码S1,S2,…,Sn,寻找一个长度最短的编码串T,使得T至少可以分解出两种不同的Si的排列,在排列中有的编码可以不出现。
例如:S1=0110,S2=00,S3=111,S4=001100,S5=110,编码串T=001100110
T有两种不同的分解T=S2+S5+S1,T=S4+S5

输入

第1行:N(编码的个数N<=20)

第2--N+1行:Si(第i个编码,Si的长度<=50)

注意,该例子只是对库函数的使用说明,并没有算法上的意义。

输出

第1行:M(编码串的长度)

第2行:T(长度最短的编码串)

【约束条件】

若有多个长度相同且最短的编码串。则输出字典序最小的编码串。例如:若有两种最短的编码串:10110010100利10001110010,则输出10001110010。

样例输入

5
0110 
00 
111 
001100 
1100

样例输出

6
001100

提示

来源

[献花][花圈]