AT_utpc2023_j.Japanese Gift Money

通过率:0%

AC君温馨提醒

该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

现在有 NN 种不同面额的纸币,第 ii 种纸币的面额为 AiA_i 日元。每种面额的纸币都有 1010010^{100} 张。已知 A1<A2<⋯<ANA_1 < A_2 < \cdots < A_N,并且对于每个 i (1≤i≤N−1)i\ (1 \leq i \leq N - 1),都有 Ai+1A_{i+1} 是 AiA_i 的倍数。

你可以从这些纸币中选出任意张,放入一个口袋中。

对于下列条件,同时满足的放法称为 xx 日元的好放法:

  • 放入口袋的所有纸币的总金额恰好为 xx 日元。
  • 不能从口袋中的纸币中选出若干张,使得这些纸币的总金额为 x2\dfrac{x}{2} 日元。

另外,如果存在 xx 日元的好放法,则称 xx 日元为好金额。

请你计算 LL 日元以上 RR 日元以下的金额中,有多少个是好金额。

输入格式

输入由一行组成,格式如下:

N L R A1 A2 … ANN\ L\ R\ A_1\ A_2\ \ldots\ A_N

输出格式

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

输入输出样例

  • 输入#1

    3 20 30
    1 5 10

    输出#1

    8
  • 输入#2

    8 500007484602844543 985892611352151235
    1 1971 151767 10927224 87417792 118975614912 263174060185344 43686893990767104

    输出#2

    483957600323779237

说明/提示

样例解释 1

例如,如果放入三张 10 日元纸币,则可以得到 3030 日元,这是 3030 日元的好放法,因此 3030 日元是好金额。

另一方面,2020 日元的好放法不存在,因此 2020 日元不是好金额。

从 21,23,25,26,27,28,29,3021, 23, 25, 26, 27, 28, 29, 30 共 88 个金额是好金额,答案是 88。

数据范围

  • 所有输入均为整数。
  • 1≤N≤601 \leq N \leq 60
  • 1≤L≤R≤10181 \leq L \leq R \leq 10^{18}
  • 1=A1<A2<⋯<AN≤10181 = A_1 < A_2 < \cdots < A_N \leq 10^{18}
  • 对于 1≤i≤N−11 \leq i \leq N-1,有 Ai+1A_{i+1} 是 AiA_i 的倍数。

由 ChatGPT 5 翻译

输入解题思路,AI测评打分。不知道怎么写?

首页