CF794A.Bank Robbery

传统题 时间 2000 ms 内存 256 MiB 3 尝试 1 已通过 1 标签

Bank Robbery

题目描述

一名劫匪试图抢劫银行但未能得手。不过,他成功打开了所有的保险箱。

银行客户 Oleg 非常喜欢钱(谁不喜欢呢),于是决定趁这次未遂抢劫的机会,从保险箱中偷些钞票。有很多保险箱排成一排,从左至右第 ii 个保险箱称为保险箱 ii。所有保险箱里一共剩下了 nn 张钞票,第 ii 张钞票在保险箱 xix_{i} 中。当前 Oleg 站在保险箱 aa 处。有两名保安,其中一人在保险箱 bb 处,满足 b<ab < a,也就是说,第一个保安在 Oleg 的左边;另一个在保险箱 cc 处,满足 c>ac > a,即在 Oleg 的右边。

这两名保安非常懒惰,不会移动。每一秒,Oleg 可以选择拿走当前位置保险箱内的所有钞票,或者移动到相邻的保险箱。但他不能在任何时候进入被保安守卫的保险箱,否则就会因盗窃而被抓。请问 Oleg 最多能拿到多少张钞票?

输入格式

输入的第一行包含三个用空格分隔的整数 aabbcc1b<a<c1091 \leq b < a < c \leq 10^{9}),表示 Oleg 所在的保险箱位置、第一名保安的位置和第二名保安的位置。

第二行输入一个整数 nn1n1051 \leq n \leq 10^{5}),表示钞票的总数量。

第三行输入 nn 个用空格分隔的整数 x1,x2,...,xnx_{1}, x_{2}, ..., x_{n}1xi1091 \leq x_{i} \leq 10^{9}),其中 xix_{i} 表示第 ii 张钞票所在的保险箱编号。注意,xix_i 可能不互不相同。

输出格式

输出一个整数,表示 Oleg 最多能拿到的钞票数量。

说明/提示

在第一个样例中,Oleg 可以拿到在位置 445566 的钞票(注意第 55 号位置有两张钞票)。Oleg 不能拿到 77 号和 88 号保险箱的钞票,因为不能越过第二名保安。同理,Oleg 也不能拿到 3322 号保险箱的钞票,因为不能越过第一名保安。因此,他最多可以拿到 44 张钞票。

在第二个样例中,Oleg 无法不用经过保安而拿到任何一张钞票。

由 ChatGPT 5 翻译

样例

5 3 7
8
4 7 5 5 3 6 2 8
4
6 5 7
5
1 5 7 92 3
0

在线编程 IDE

建议全屏模式获得最佳体验