[HAOI2005]寻找编码串

成绩 0 开启时间 2013年01月16日 星期三 11:05
折扣 0.8 折扣时间 2013年01月16日 星期三 11:05
允许迟交 关闭时间 2013年01月16日 星期三 11:05
输入文件 codestring.in 输出文件 codestring.out

【问题描述】

    给定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

【输入文件】

codestring.in

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

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

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

【输出文件】

codestring.out

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

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

【约束条件】

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

【输入输出样例】

codestring.in

5
0110
00
111
001100
1100

codestring.out

6

001100