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
- としてありうる文字列は 通りです。