AtCoder Beginner Contest 301 C問題 AtCoder Cards
問題
提出解答
問題の概要
英小文字と からなる長さが等しい文字列 がある. この に対して, 以下の操作を順に行う.
- にある をそれぞれ のどれかに置き換える.
- を適用に並び替える.
にすることは可能か?
制約
- は英小文字と からなる長さ 以上 以下の文字列.
解法
文字列 に含まれる の数を と書く. ここで, 並び替えが自由にできるので, 結局は にのみ着目すれば良いことがわかる.
このとき, ではない英小文字 については でなくてはならない.
一方で, のどれかである英小文字については, を比較し, 小さい方の文字列における をその差分だけ に置き換えなければならず, 実際に, その差だけ置き換えれば良い.
この置き換えによって, が不足してしまうと, 不可能であり, 不足しなければ可能である.