#J00251. T1 妙手编织(weave)

0

T1 妙手编织(weave)

T1 妙手编织(weave)

题目描述

小真是一名手工课代表。老师交给她一捆毛线,毛线共有 2626 种颜色,编号依次为 a 到 z,其中第 ii 种颜色的毛线恰有 cic_i 段。

小真要用这些毛线织成一根长条。她希望把所有线段都用上,并且相邻两段毛线的颜色不能相同(否则花纹会连在一起,不好看)。在所有可行的长条中,她希望得到字典序最小的那一条。

如果根本织不出满足要求的长条,请输出 -1。

输入文件 weave.in,输出文件 weave.out。

输入格式

第一行一个正整数 nn,表示毛线的总段数。

第二行 2626 个非负整数 ca,cb,…,czc_a,c_b,\dots,c_z,依次表示每种颜色的段数。保证 ∑ci=n\sum c_i = n。

输出格式

输出共一行。若存在合法方案,输出字典序最小的字符串;否则输出 -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

数据规模与约定

  • 对于 30%30\% 的数据,保证 n≤10n \le 10。
  • 对于 100%100\% 的数据,保证 1≤n≤1051 \le n \le 10^5,0≤ci≤n0 \le c_i \le n。