古堡中的勇者
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 512 M,其他语言1024 M
64bit IO Format: %lld

题目描述

神秘的异世界中充满了机遇和挑战。一位充满活力的年轻勇者决定踏上冒险的旅途,探索古老的遗迹,寻找传说中的宝藏。

勇者来到了一座阴森的古堡,古堡内布置了许多宝箱,排列成一排。第 i 个宝箱被称为宝箱 i 。所有宝箱中共有 n 个宝物,第 i 个宝物在宝箱 x_i 中。勇者现在位于宝箱 a。古堡的守卫分为两部分,一部分守卫着宝箱 b (b < a),另一部分守卫着宝箱 c (c > a)。两部分守卫都不会离开守卫的宝箱。

每一秒钟,勇者可以选择取出当前宝箱中的宝物,或者移动到相邻的宝箱。然而,他不能在任何时候移动到被守卫的宝箱,否则可能会命丧黄泉。请确定勇者最多能够收集到的宝物的数量。

输入描述:

第一行包含三个用空格分隔的整数 a、b 和 c (1 ≤ b < a < c ≤ 10^9) ,表示勇者、第一部分守卫和第二部分守卫的位置。

第二行包含一个整数 n (1 ≤ n ≤ 10^5),表示宝物的数量。

第三行包含 n 个用空格分隔的整数x_i (1 ≤ x_i ≤ 10^9),表示第 i 个宝物位于第 x_i 个宝箱中。注意,x_i 不一定是唯一的。

输出描述:

输出一个整数:勇者最多能够收集到的宝物的数量。
示例1

输入

复制
5 3 7
8
4 7 5 5 3 6 2 8

输出

复制
4
示例2

输入

复制
6 5 7
5
1 5 7 92 3

输出

复制
0

备注: