atcoder#ARC108D. [ARC108D] AB
[ARC108D] AB
配点 : 点
問題文
整数 と つの文字 $c_{\mathrm{AA}},c_{\mathrm{AB}},c_{\mathrm{BA}},c_{\mathrm{BB}}$ が与えられます。
ここで、与えられる つの文字はいずれも A
か B
であることが保証されます。
すぬけ君は文字列 を持っています。
ははじめ AB
です。
の長さを と書くことにします。 すぬけ君は以下の 種類の操作を任意の順序で 回以上行うことができます。
- =
A
, =A
なる を選んで、 の 文字目と 文字目の間に を挿入する。 - =
A
, =B
なる を選んで、 の 文字目と 文字目の間に を挿入する。 - =
B
, =A
なる を選んで、 の 文字目と 文字目の間に を挿入する。 - =
B
, =B
なる を選んで、 の 文字目と 文字目の間に を挿入する。
の長さが になるまで操作を行ったあとの としてありうる文字列の個数を で割ったあまりを求めてください。
制約
- $c_{\mathrm{AA}},c_{\mathrm{AB}},c_{\mathrm{BA}},c_{\mathrm{BB}}$ は
A
かB
入力
入力は以下の形式で標準入力から与えられる。
出力
の長さが になるまで操作を行ったあとの としてありうる文字列の個数を で割ったあまりを出力せよ。
4
A
B
B
A
2
- としてありうる文字列は
ABAB
とABBB
の 通りです。
1000
B
B
B
B
1
- としてありうる文字列は 通りです。