E - Enormous Atcoder Railroad
Editorial
/
最後には改行を入れること。
よって、合計で 2^6 - 9 = 55 個となります。


Time Limit: 1 sec / Memory Limit: 512 MB
配点:1000 点
これは、駅 0 から駅 N までの N + 1 個の駅で成り立っており、一直線上に並んでいる。
普通電車はすべての駅に停車し、駅 i と i + 1 の間を1分で走行する。(両方向に行ける)
急行電車は駅 S_0, S_1, S_2,..., S_{K-1} に停車し、駅 S_i と S_{i + 1} の間を1分で走行する。(両方向に行ける)
しかし、これだけでは足りないと思ったAtcoder鉄道の社長であるsemiexpさんは、新たに「準急列車」というものを作ろうと計画した。
準急列車の停車する駅 T_0, T_1, T_2,..., T_{L-1} (L は準急電車の停車駅の個数で、0 = T_0 < T_1 < T_2 < ... < T_{L-1} = N) は、次の条件を満たすように決めることにしました。
ただし、その場合は駅 T_i と T_{i + 1} の間を1分で走行するものとする。(両方向に行ける)
ただし、こたえが大きくなる可能性があるので、10^9 + 7 で割った余りを求めなさい。
問題文
Atcoder国には、「Atcoder鉄道」という鉄道会社がある。これは、駅 0 から駅 N までの N + 1 個の駅で成り立っており、一直線上に並んでいる。
普通電車はすべての駅に停車し、駅 i と i + 1 の間を1分で走行する。(両方向に行ける)
急行電車は駅 S_0, S_1, S_2,..., S_{K-1} に停車し、駅 S_i と S_{i + 1} の間を1分で走行する。(両方向に行ける)
しかし、これだけでは足りないと思ったAtcoder鉄道の社長であるsemiexpさんは、新たに「準急列車」というものを作ろうと計画した。
準急列車の停車する駅 T_0, T_1, T_2,..., T_{L-1} (L は準急電車の停車駅の個数で、0 = T_0 < T_1 < T_2 < ... < T_{L-1} = N) は、次の条件を満たすように決めることにしました。
ただし、その場合は駅 T_i と T_{i + 1} の間を1分で走行するものとする。(両方向に行ける)
- Atcoder国の中心地は駅0なので、普通、急行、準急を最適に使うことによって駅0から乗車時間 X 分以内ですべての街にたどり着けるようにしたい。
- 急行列車の停車する駅は、必ず準急列車が停車しなければならない。
ただし、こたえが大きくなる可能性があるので、10^9 + 7 で割った余りを求めなさい。
入力
N K X S_0 S_1 S_2 ... S_{K-1}
出力
通り数を 10^9 + 7 で割った余りを1行に出力しなさい。最後には改行を入れること。
制約
- 2 ≤ K ≤ 2500.
- 1 ≤ X ≤ 2500.
- S_0 = 0, S_{K-1} = N.
- 1 ≤ S_{i + 1} - S_i ≤ 10000.
得点
小課題1 [120 点]- N, K, X ≤ 15.
- K, X ≤ 15 .
- S_{i + 1} - S_i ≤ 15.
- K, X ≤ 40.
- S_{i + 1} - S_i ≦ 40.
- K, X ≤ 300.
- S_{i + 1} - S_i ≤ 300.
- 追加の制約はない。
入力例1
7 2 3 0 7
出力例1
55目的を達成できない駅の集合は、[0, 7], [0, 1, 7], [0, 1, 2, 7], [0, 1, 6, 7], [0, 1, 2, 6, 7], [0, 1, 2, 3, 6, 7], [0, 1, 2, 5, 6, 7], [0, 1, 2, 3, 5, 6, 7], [0, 1, 2, 3, 4, 5, 6, 7] の 9 個です。
よって、合計で 2^6 - 9 = 55 個となります。