atcoder#AGC037B. [AGC037B] RGB Balls
[AGC037B] RGB Balls
配点 : 点
問題文
色のついたボールが 個あり、それぞれには から の番号がついています。
各ボールの色は長さ の文字列 によって表されており、ボール の色は が R
のとき赤色、G
のとき緑色、B
のとき青色です。
赤色のボール、緑色のボール、青色のボールはそれぞれ 個ずつあります。
高橋君はこの 個のボールを、各人が赤、青、緑のボールを つずつ割り当てられるよう、 人の人に分配することにしました。 ただし、ボールをもらう人たちはできるだけ近い番号のボールが欲しいので、高橋君はさらに以下の条件をみたすように分配することにしました。
- 番目の人が受け取ったボールの番号を小さい順に とする。
- このとき ができるだけ小さくなるように分配する。
高橋君がボールを分配する方法は何通りあるか求めてください。 答えは非常に大きくなることがあるので、 で割ったあまりを求めてください。 ただし、 つのボールの分配方法が異なるとは、ある人が存在して、その人が受け取ったボールの集合が異なることを指します。
制約
- は
R
,G
,B
のみからなり、それぞれ 回ずつ に登場する
入力
入力は以下の形式で標準入力から与えられる。
出力
高橋君のボールの分配方法が何通りあるかを で割ったあまりを出力せよ。
3
RRRGGGBBB
216
例えば以下のようにボールを分配したとき、 の値が となり最小となります。
- 番目の人にボール を渡す。
- 番目の人にボール を渡す。
- 番目の人にボール を渡す。
5
BBRGRRGRGGRBBGB
960