D - 天下一ボディービルコンテスト
Editorial
Time Limit: 2 sec / Memory Limit: 256 MB
問題文
高橋君は、頭には自信がありませんが、体には自信があります。そこで、高橋君はボディービルコンテストに出ることにしました。
高橋君には筋肉が 個ついています。 高橋君は、ボディービルコンテストが開かれるまでの 日間、毎日トレーニングをすることにしました。
高橋君は、毎日筋肉をひとつ選び、トレーニングしてその筋肉を kg 増やします。
高橋君は、ボディービルコンテストで優勝するために、各筋肉をどれだけ増やすか、目標を設定しました。ですが、その目標を達成するために、どのようなスケジュールでトレーニングをすれば良いかが分かりません。
高橋君のために、トレーニングスケジュールが何通りあるかを、mod で求めてください。
入力
入力は以下の形式で標準入力から与えられる。
- 行目は、高橋君の筋肉の数 () と トレーニング日数 () が空白区切りで与えられる。
- 行目から 行目までの 行は、 () 番目の筋肉を最低何kg増やしたいかの目標 が与えられる。
部分点
- の入力に正解すると、 点満点に対して部分点として、 点が与えられる。
- の入力に正解すると、 点満点に対して部分点として、上記とは別に 点が与えられる。
出力
高橋君が全ての目標を達成するための、スケジュールの組み方が何通りあるかを、 で割った余りを出力しなさい。
また、出力の最後には改行をいれること。
入力例 1
2 3 1 1
出力例 1
6
鍛えるべき筋肉がつあり、日間トレーニングします。
スケジュールの組み方は、1日目から順番に、{1,1,2}, {1,2,1}, {1,2,2}, {2,1,1}, {2,1,2}, {2,2,1}の通りです。
入力例 2
4 4 1 1 1 1
出力例 2
24
鍛えるべき筋肉がつあり、日間のトレーニングでそれぞれつの筋肉を選ぶ必要があり、その組み合わせは通りです。
入力例 3
13 12345678 1 2 3 4 5 6 7 8 9 10 11 12 13
出力例 3
910759485