CF550B Preparing Olympiad

题目描述

你有 $n$ 道题目。你已经将第 $i$ 道题目的难度评估为整数 $c_i$。现在你想要为一次比赛准备一个题集,从你所出的题目中选取一些题目。 比赛的题集必须包含至少两道题目。你认为题集的总难度必须至少为 $l$,并且不超过 $r$。此外,你认为所选题目中最难题与最易题的难度之差必须至少为 $x$。 请你计算,为这次比赛选择一个合适题集的方法有多少种。

输入格式

第一行包含四个整数 $n$、$l$、$r$、$x$($1 \leq n \leq 15$,$1 \leq l \leq r \leq 10^9$,$1 \leq x \leq 10^6$),分别表示题目的数量,题集的总难度下限和上限,以及所选题目中最难题和最易题的难度之差的下限。 第二行包含 $n$ 个整数 $c_1, c_2, \ldots, c_n$($1 \leq c_i \leq 10^6$),表示每道题目的难度。

输出格式

输出为本次比赛选择一个合适题集的方法数。

说明/提示

在第一个样例中,有两种合适的集合,一种包含第 2 和第 3 道题,另一种包含全部三道题。 在第二个样例中,有两种合适的集合——包含难度为 10 和 30 的题目的集合,以及包含难度为 20 和 30 的集合。 在第三个样例中,任何由一题难度为 10 和一题难度为 20 组成的集合都是合适的。 由 ChatGPT 5 翻译