atcoder#AGC025B. [AGC025B] RGB Coloring
[AGC025B] RGB Coloring
配点 : 点
問題文
高橋君はタワーを つ持っており、それは 個のブロックが縦一列に重なって構成されています。 はじめすべてのブロックは無色ですが、高橋君はいくつかのブロックを赤色、緑色、青色のいずれかの色で塗ることで、 タワーを美しくしようとしています。そこで、高橋君は タワーの美しさ を以下のように定義することにしました。
- 各ブロックの得点を、赤色に塗られていれば 点、緑色に塗られていれば 点、青色に塗られていれば 点、無色ならば 点として、 個のブロックの得点の合計をタワーの美しさとする。
ただし、 はあらかじめ与えられる正整数の定数であり、各マスが つ以上の色で同時に塗られることがないことにも注意してください。
高橋君はタワーの美しさがちょうど になるようにブロックを塗ろうと考えています。 そのようにタワーを塗る方法は何通りあるでしょうか。 で割った余りを求めてください。 ただし、 つのタワーを塗る方法が異なるとは、あるブロックが存在し、そのブロックに塗られている色が異なること、もしくは、そのブロックが一方では塗られているが、 他方では無色であることを指します。
制約
- 入力される値は全て整数である
入力
入力は以下の形式で標準入力から与えられる。
出力
タワーを塗る方法の個数を で割った余りを出力せよ。
4 1 2 5
40
この場合、赤色 つにつき 点、緑色 つにつき 点、青色 つにつき 点なので、美しさが になるのは、
- 緑色 つ、青色 つ
- 赤色 つ、青色 つ
- 赤色 つ、緑色 つ
- 赤色 つ、青色 つ
のいずれかの場合だけです。よって、求める答えは になります。
2 5 6 0
1
美しさが であるタワーは、すべてのブロックが無色であるものだけです。よって、答えは になります。
90081 33447 90629 6391049189
577742975