#J00251. T1 妙手编织(weave)
0
T1 妙手编织(weave)
T1 妙手编织(weave)
题目描述
小真是一名手工课代表。老师交给她一捆毛线,毛线共有 种颜色,编号依次为 a 到 z,其中第 种颜色的毛线恰有 段。
小真要用这些毛线织成一根长条。她希望把所有线段都用上,并且相邻两段毛线的颜色不能相同(否则花纹会连在一起,不好看)。在所有可行的长条中,她希望得到字典序最小的那一条。
如果根本织不出满足要求的长条,请输出 -1。
输入文件 weave.in,输出文件 weave.out。
输入格式
第一行一个正整数 ,表示毛线的总段数。
第二行 个非负整数 ,依次表示每种颜色的段数。保证 。
输出格式
输出共一行。若存在合法方案,输出字典序最小的字符串;否则输出 -1。
样例 1 输入
6
2 3 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
样例 1 输出
ababcb
样例 1 解释
共有 a 两段、b 三段、c 一段。一种字典序最小的合法织法为 ababcb,相邻颜色均不同。
样例 2 输入
3
3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
样例 2 输出
-1
数据规模与约定
- 对于 的数据,保证 。
- 对于 的数据,保证 ,。
相关
在下列比赛中: