YZOJ P4259 [FJWC 2019] 不同的缩写
时间限制:1000MS 内存限制:262144KB
出题人:E.Space
难度:\(6.1\)
-
题目描述
在这个游戏中一共有 \(n\) 个角色。你需要编写一些关于这些角色的对话内容。
你打算用角色名字的一个非空子序列来作为它的简称。
当然,不同的角色要用不同的字符串作为简称,否则你就变量重名了。
你想确定一个简称的分配方案使得所有角色中最长的简称尽量短。
-
输入格式
第一行一个正整数 \(n\)。
接下来 \(n\) 行,每行一个由小写字母组成的字符串,代表一个角色的名字。
不同的角色可能会有相同的名字。
-
输出格式
如果不存在一种分配简称的方案满足条件,输出 \(-1\)。
否则第一行输出一个正整数,表示最长的简称的最小长度。
接下来 \(n\) 行每行一个字符串,按顺序表示每个角色的简称。
若有多种方案满足条件,那么你可以输出任意一种。
-
样例输入
1 2 3 4 5 6 7 8 9 10 11 12 |
11 night nealchen beimingyouyu echo rankinf dntcrybecthlev lagoon cyc alphagem leehwincing clin |
-
样例输出
1 2 3 4 5 6 7 8 9 10 11 12 |
1 g a m e r b o y l w c |
-
数据规模与约定
保证 \(n \leq 300\) ,每个名字的长度不超过 \(300\)。