足跡-sokuseki-

りかの日進月歩の記録

CODE FESTIVAL 2017 Final B Palindrome-phobia

B - Palindrome-phobia

問題概要


'a', 'b', 'c' の3種類の文字からなる文字列  S が与えられる。
文字列  S を自由に並び替えて、部分文字列に2文字以上の回文を含まないようにできるかどうか判定せよ。

制約
 1 \le |S| \le 10^5

解法

2文字以上の回文が含まれないとき、並べ替えた文字列は
…abcabcabc…
または
…acbacbacb…
のどちらかになる。
なので、各文字が含まれる個数を計算し、最も多く含まれる文字の文字数と最も少なく含まれる文字の文字数の差が1以下であるかを調べればよい。


Submission #1992543 - CODE FESTIVAL 2017 Final (Parallel)