AT_agc009_c [AGC009C] Division into Two
题目描述
有一个包含 $N$ 个互不相同整数的集合。该集合中第 $i$ 小的元素为 $S_i$。现在要将这个集合划分为 $X$ 和 $Y$ 两个集合,使得:
- 属于 $X$ 的任意两个不同元素,其差的绝对值不少于 $A$;
- 属于 $Y$ 的任意两个不同元素,其差的绝对值不少于 $B$。
请计算满足上述条件的划分方法数,并对 $10^9+7$ 取模输出。注意,允许 $X$ 或 $Y$ 为空集。
输入格式
输入以如下格式从标准输入读入:
> $N$ $A$ $B$ $S_1$ $S_2$ $\ldots$ $S_N$
输出格式
输出满足条件的划分方法数,对 $10^9+7$ 取模。
说明/提示
## 限制条件
- 所有输入均为整数。
- $1 \leq N \leq 10^5$
- $1 \leq A, B \leq 10^{18}$
- $0 \leq S_i \leq 10^{18}\ (1 \leq i \leq N)$
- $S_i < S_{i+1}\ (1 \leq i \leq N-1)$
## 样例解释 1
有如下 $5$ 种划分方法:
- $X=\{1,6,9,12\}$,$Y=\{3\}$
- $X=\{1,6,9\}$,$Y=\{3,12\}$
- $X=\{3,6,9,12\}$,$Y=\{1\}$
- $X=\{3,6,9\}$,$Y=\{1,12\}$
- $X=\{3,6,12\}$,$Y=\{1,9\}$
由 ChatGPT 4.1 翻译