AT_code_festival_2018_quala_d 通勤

题目描述

高桥君的家位于 $x$ 轴上的 $0$ 点,AtCoder 公司的办公室位于 $x$ 轴上的 $D$ 点。此外,$x$ 轴上还有 $N$ 个加油站,这些加油站的坐标分别为 $X_1,\ X_2,\ ...,\ X_N$。 高桥君每天都要开车从家到办公室。他的汽车油箱容量为 $F$ 升,每行驶 $1$ 单位距离消耗 $1$ 升燃料。高桥君从家出发时油箱是满的,每经过一个加油站时,按照以下规则进行加油: - 如果剩余燃料不少于 $T$ 升,则不加油。 - 否则,将油箱加满。 在前往办公室的途中,汽车只能沿 $x$ 轴正方向行驶。如果在非加油站或非办公室的位置燃料耗尽,则无法到达办公室。 你打算将 $N$ 个加油站中的若干个(可以是 $0$ 个)改建为书店。请计算有多少种选择加油站改建为书店的方案,使得改建后高桥君依然可以按照上述方法从家到办公室。将答案对 $10^9+7$ 取模后输出。

输入格式

输入通过标准输入按以下格式给出。 > $D$ $F$ $T$ $N$ $X_1$ $X_2$ $...$ $X_N$

输出格式

输出一个整数,表示满足条件的方案数。

说明/提示

### 限制条件 - $0 < T \leq F \leq 10^9$ - $1 \leq N \leq 100,\!000$ - $0 < X_1 < X_2 < ... < X_N < D \leq 10^9$ - 所有输入值均为整数。 ### 样例说明 1 当加油站坐标为 $X_1=3,\ X_2=7$ 时,分别编号为 $1,\ 2$,满足条件的集合有 $\{\}$、$\{1\}$,共 $2$ 种。 由 ChatGPT 4.1 翻译