操作を繰り返すことで,文字列を自由に並べ替えることはできるか考えてみましょう.
問題原案:uni_kakurenbo
まず, のとき明らかに Yes です.
また, と とに含まれている文字とそれらの個数が一致していない場合,No です.
以下では かつ と とが含む文字と個数は一致しているものとします.
Yes です.
これは次のように証明できます:
文字列 1234 を操作によって 2134, 1324, 1243 の 通りに並べ替えることができるならば, で任意の隣接する 文字を交換することが可能なので,このとき を任意に並び変えて とすることができます. (バブルソートなどを考えると明らかです.)
1234 4231 4132 21341234 12431234 2143 3142 1324以上より従います.
場合分けを行うことで AC を得ることができます:
NoYesNo解説:uni_kakurenbo