atcoder#JSC2019QUALC. Cell Inversion

Cell Inversion

配点 : 500500

問題文

2N2N 個のマスが左右一列に並んでおり、各マスの色を表す長さ 2N2N の文字列 SS が与えられます。

左から ii 番目のマスの色は、SSii 文字目が B のとき黒色で、W のとき白色です。

あなたは異なる 22 マスを選んで、それらのマスおよびそれらの間にあるマスの色を反転する操作をちょうど NN 回行います。 ここで、マスの色を反転するとは、そのマスの色が黒色なら白色に、白色なら黒色にすることです。

ただし、操作を通して同じマスを 22 回以上選ぶことはできません。 つまり、各マスがちょうど 11 回ずつ選ばれることになります。

NN 回の操作終了後に全てのマスを白色にする方法が何通りあるかを 109+710^9+7 で割った余りを求めてください。

ここで、条件を満たす 22 つの方法が異なるとは、11 つ目の方法で ii 番目に選んだ 22 つのマスの組と 22 つ目の方法で ii 番目に選んだ 22 つのマスの組が異なるような ii (1iN)(1 \leq i \leq N) が存在することをいいます。

制約

  • 1N1051 \leq N \leq 10^5
  • S=2N|S| = 2N
  • SS の各文字は B または W である。

入力

入力は以下の形式で標準入力から与えられる。

NN

SS

出力

NN 回の操作終了後に全てのマスを白色にする方法の個数を 109+710^9+7 で割った余りを出力せよ。そのような方法が存在しない場合、代わりに 00 を出力せよ。

2
BWWB
4

全てのマスを白色にする方法は次の 44 通りあります。

  • 最初の操作では 1,31, 3 番目のマスを選び、次の操作では 2,42, 4 番目のマスを選びます。
  • 最初の操作では 2,42, 4 番目のマスを選び、次の操作では 1,31, 3 番目のマスを選びます。
  • 最初の操作では 1,41, 4 番目のマスを選び、次の操作では 2,32, 3 番目のマスを選びます。
  • 最初の操作では 2,32, 3 番目のマスを選び、次の操作では 1,41, 4 番目のマスを選びます。
4
BWBBWWWB
288
5
WWWWWWWWWW
0