AT_utpc2023_j Japanese Gift Money

题目描述

现在有 $N$ 种不同面额的纸币,第 $i$ 种纸币的面额为 $A_i$ 日元。每种面额的纸币都有 $10^{100}$ 张。已知 $A_1 < A_2 < \cdots < A_N$,并且对于每个 $i\ (1 \leq i \leq N - 1)$,都有 $A_{i+1}$ 是 $A_i$ 的倍数。 你可以从这些纸币中选出任意张,放入一个口袋中。 对于下列条件,同时满足的放法称为 $x$ 日元的**好放法**: - 放入口袋的所有纸币的总金额恰好为 $x$ 日元。 - 不能从口袋中的纸币中选出若干张,使得这些纸币的总金额为 $\dfrac{x}{2}$ 日元。 另外,如果存在 $x$ 日元的**好放法**,则称 $x$ 日元为**好金额**。 请你计算 $L$ 日元以上 $R$ 日元以下的金额中,有多少个是**好金额**。

输入格式

输入由一行组成,格式如下: > $N\ L\ R\ A_1\ A_2\ \ldots\ A_N$

输出格式

输出一个整数,表示答案。

说明/提示

### 样例解释 1 例如,如果放入三张 10 日元纸币,则可以得到 $30$ 日元,这是 $30$ 日元的**好放法**,因此 $30$ 日元是**好金额**。 另一方面,$20$ 日元的**好放法**不存在,因此 $20$ 日元不是**好金额**。 从 $21, 23, 25, 26, 27, 28, 29, 30$ 共 $8$ 个金额是**好金额**,答案是 $8$。 ### 数据范围 - 所有输入均为整数。 - $1 \leq N \leq 60$ - $1 \leq L \leq R \leq 10^{18}$ - $1 = A_1 < A_2 < \cdots < A_N \leq 10^{18}$ - 对于 $1 \leq i \leq N-1$,有 $A_{i+1}$ 是 $A_i$ 的倍数。 由 ChatGPT 5 翻译