Official

B - Balls of Three Colors Editorial by maroonrk_admin


赤いボールだけにするために必要な操作回数の最小値が求めます.

一般性を失わず,\(G \geq B\) であるとします. 緑のボールの個数と青いボールの個数の差に注目すると,この値を \(3\) で割った余りはどの操作を行っても変化しません. 最終的にはこの値が \(0\) になることから,\(G \equiv B \bmod 3\) が必要条件です.

\(G \equiv B \bmod 3\) であるとき,以下の手順により,すべてのボールを赤いボールに変えることができます.

  • 緑のボールと青いボールを赤いボールに変える操作を \(B\) 回行う.
  • \((G-B)/3\) 回,以下の操作を行う.
    • 赤いボールと緑のボールを青いボールに変える.
    • 緑のボールと青いボールを赤いボールに変える.
    • 緑のボールと青いボールを赤いボールに変える.

上の手順の操作回数は合計で \(G\) 回であり,明らかに必要な最小回数であるとわかります.

すべてのボールを赤いボールに変えるときの操作回数がわかったので,同様のことを青,緑についても行って,最終的に求めた値の最小値を出力すればよいです. 計算量は一ケースあたり \(O(1)\) 時間です.

posted:
last update: