[Usaco2007 Dec]队列变换
FJ 打算带他的 头奶牛参加一年一度的“全美农场主大奖赛”。在这场比赛中,每位参赛者都必须让自己的奶牛排成一列,并带领她们依次从裁判席前走过。
今年,竞赛委员会采用了一种新的登记规则:登记人员依次取出队伍中每头奶牛名字的首字母,并按照奶牛在队列中的顺序将这些字母组成队伍的登记名称。例如,如果 FJ 的奶牛依次为 Bessie、Sylvia、Dora,那么这支队伍的登记名称就是 BSD。登记结束后,组委会将所有队伍的登记名称按照字典序升序排列,以此确定出场顺序。
FJ 希望尽可能早地出场,因此打算重新调整奶牛的队形。调整时,他每次从原队列的首端或尾端牵出一头奶牛,并将她安排到新队列的尾部。随后,他对剩余的奶牛重复这一操作,直到所有奶牛都进入新队列。
给定奶牛的初始排列,请求出按照上述规则能够得到的字典序最小的新队列。
输入格式
第一行输入一个整数 ,表示奶牛的数量。
接下来 行,第 行输入一个 A 到 Z 之间的大写字母,表示初始队列中从前往后第 头奶牛名字的首字母。
输出格式
按照顺序输出字典序最小的新队列,共输出 行。
除最后一行外,每行恰好输出 个大写字母;最后一行输出剩余的字母。如果 是 的倍数,则最后一行也恰好输出 个字母。
样例输入
6
A
C
D
B
C
B
样例输出
ABCBCD
数据范围
- ;
- 每头奶牛名字的首字母均为
A到Z之间的大写字母。
来源与许可
本题为 USACO 2007 December 试题「队列变换」,题面与测试数据整理自 BZOJ。
样例 1
输入
6
A
C
D
B
C
B
输出
ABCBCD