atcoder#CODEFESTIVAL2017QUALBF. Largest Smallest Cyclic Shift

Largest Smallest Cyclic Shift

题目描述

文字列 S S に対し、 f(S) f(S) S S の巡回シフトのうち辞書順最小のものとします。 たとえば、 S = S\ = babca のとき、 S S の巡回シフト (babca, abcab, bcaba, cabab, ababc) のうち最小の ababcf(S) f(S) となります。

あなたは、三個の整数 X, Y X,\ Y , Z Z が与えられます。 あなたは、 a をちょうど X X 個、b をちょうど Y Y 個、c をちょうど Z Z 個含む文字列 T T を構成したいです。 そのような文字列が複数存在する場合は、 f(T) f(T) を辞書順で最大化したいです。

f(T) f(T) の辞書順での最大値を求めてください。

输入格式

入力は以下の形式で標準入力から与えられる。

X X Y Y Z Z

输出格式

答えを出力せよ。

题目大意

定义 f(S)f(S) 为:对于一个字符串 SS,每次将它最左边的字符放置到字符串末尾生成的字符串集合中,字典序最小的字符串。例如:对于 SSbabca 的情况,f(S)f(S) 即为 babcaabcabbcabacababababc 中最小的那个,即 ababc

你需要构造一个字符串 TT,共包含 XX 个字符 aYY 个字符 bZZ 个字符 c,使得 f(T)f(T) 尽可能大,输出这个 f(T)f(T)

2 2 0
abab
1 1 1
acb

提示

制約

  • 1  X + Y + Z  50 1\ \leq\ X\ +\ Y\ +\ Z\ \leq\ 50
  • X, Y, Z X,\ Y,\ Z は非負整数である。

Sample Explanation 1

T T a 二個と b 二個からならなければなりません。 - T = T\ = aabb のとき f(T) = f(T)\ = aabb. - T = T\ = abab のとき f(T) = f(T)\ = abab. - T = T\ = abba のとき f(T) = f(T)\ = aabb. - T = T\ = baab のとき f(T) = f(T)\ = aabb. - T = T\ = baba のとき f(T) = f(T)\ = abab. - T = T\ = bbaa のとき f(T) = f(T)\ = aabb. となるので、 f(T) f(T) の最大値は abab です。