‹ 上一题 下一题 ›

06782. 展签排布 未做

2000 ms 256 MB 测试点 20 通过率 100% CSP-J模拟赛001文件OI邀请赛
文件读写输入label.in输出label.out

题目描述

展览馆准备将所有展签排成一行。展签分为m种,用大写字母A、B、C、…依次表示。例如时,种类为A、B、C。

第i种展签有张,它的连续上限为:排列中任意连续相同的第i种字母,长度都不能超过。不同种类可以有不同的连续上限。你必须使用全部展签,同一种展签之间没有区别。

请在所有合法排列中,找出字典序最小的排列。如果不存在合法排列,输出-1。

这里比较的字符串长度都相同。找到从左到右第一个不同的位置,字母较小的字符串字典序较小,字母顺序为A < B < … < Z。例如AAB小于ABA。

输入格式

从文件label.in读入数据。

第一行包含一个正整数m。接下来m行,第i行包含一个非负整数和一个正整数。

输出格式

输出到文件label.out。

如果存在合法排列,输出一行,由所有展签对应的字母组成,表示字典序最小的合法排列,不含空格。否则输出一行-1。

样例1

样例输入:

3
2 1
3 2
1 1

样例输出:

ABABBC

排列使用了2张A、3张B和1张C;A、C都不能连续出现,B最多连续出现2次。

样例2

样例输入:

2
1 1
4 2

样例输出:

BBABB

虽然A比B小,但如果把A放在最前面,剩余4张B将连续出现。因此合法排列不能以A开头。

样例3

样例输入:

2
4 1
1 1

样例输出:

-1

一张B无法将四张A分隔到每段最多一张。

数据范围

令N表示所有的和。对于所有测试数据:,,,。为0时,仍会给出该种类的。

共20个测试点,每点5分,独立计分。

测试点 附加限制
1-4 ,
5-8 ,所有
9-12 每一种都满足
13-16 所有
17-20 无附加限制
输入
输出

            
答案