atcoder#CODEFESTIVAL2017QUALBF. Largest Smallest Cyclic Shift

Largest Smallest Cyclic Shift

配点 : 16001600

問題文

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

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

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

制約

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

入力

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

XX YY ZZ

出力

答えを出力せよ。

2 2 0
abab

TTa 二個と 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 です。

1 1 1
acb