問題一覧 > 通常問題

No.997 Jumping Kangaroo

レベル : / 実行時間制限 : 1ケース 2.000秒 / メモリ制限 : 256 MB / 標準ジャッジ問題
タグ : / 解いたユーザー数 98
作問者 : ganmodokix / テスター : monkukui2
12 ProblemId : 3559 / 出題時の順位表 / 自分の提出
問題文最終更新日: 2020-02-22 00:25:32

問題文

カンガルーのガンモ君は、一列に並んだ岩の端から端までジャンプして渡ろうとしています。

岩はWK+1個等間隔で一列に並んでおり、左から順に0,1,2, ,WKと番号が付けられています。 番号がWの倍数の岩はすべて白く、ガンモ君は今岩0の上に着地しており、岩WKまで渡ろうとしています。

ガンモ君は、今いる岩から番号がA1,A2,,AN大きい岩に渡ることができます。 これはつまり、岩iにいるとき、好きな整数1jNを選んでジャンプし、岩i+Ajの上に着地することができるということです。 番号の小さいほうに飛ぶことはできません。

ただし、ガンモ君は白い岩を2つ連続で飛び越すことはしないことにしました。 これはつまり、すべての整数0i<Kについて、岩iWに着地しないならば必ず岩(i+1)Wに着地するということです。

以上の跳び方で、岩0から岩WKまでジャンプする方法は何通りあるか、109+7で割った余りを求めてください。 ただし、ジャンプの方法が異なるとは、一方の方法で着地するがもう一方の方法で着地しないような岩が存在することをいいます。

入力

N W K
A1 A2  AN

入力は以下の制約を満たします。

  • 入力はすべて整数
  • 1W40
  • 1N2W
  • 1Ai2W
  • ijならばAiAj
  • 1K1018

出力

ジャンプの方法の数を109+7で割った余りを出力し、最後に改行してください。

サンプル

サンプル1
入力
2 4 1
1 2
出力
5

ジャンプの方法は、
01234
0234
0134
0124
024
の5通りです。

サンプル2
入力
2 5 1
1 2
出力
8

サンプル3
入力
5 40 31415926535
2 3 5 7 11
出力
320973216

出力が109+7で割った余りであることに注意してください。

提出するには、Twitter 、GitHub、 Googleもしくは右上の雲マークをクリックしてアカウントを作成してください。