测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A16754. Alice and Bob

编程题 普及-
知识点

题目描述

Alice 和 Bob 有一个袋子,里面有 $n$ 个弹珠,第 $i$ 个弹珠上写着整数 $v_i$。他们玩如下游戏:首先,每个玩家选择一个整数(Alice 选择的整数记为 $a$,Bob 选择的记为 $b$)。之后,他们按照任意顺序依次从袋子中取出弹珠,直到袋子为空。对于每个弹珠,谁的选择整数距离弹珠上的数更近,谁就获得 **1 分**;如果两人距离相等,则分数归 Alice。

例如,若 $a=10$,$b=30$,那么:

- 对于弹珠上的数为 $10, 1, 7, 18, 20$ 等,Alice 获得分数(注意,她会获得 $20$ 这颗弹珠)。
- 对于弹珠上的数为 $59, 25, 30, 21$ 等,Bob 获得分数。

Bob 事先得知了 Alice 会选择的整数。请你帮他选择一个整数,使他能获得最多分数。

输入格式

第一行包含一个整数 $t$($1 \le t \le 10^4$),表示测试用例数量。

每个测试用例包含两行:

- 第一行包含两个整数 $n$ 和 $a$($1 \le n \le 3 \times 10^5$,$1 \le a \le 10^9$),分别表示弹珠数量和 Alice 选择的整数。
- 第二行包含 $n$ 个整数 $v_1, v_2, \dots, v_n$($1 \le v_1 \le v_2 \le \dots \le v_n \le 10^9$)。

输入保证所有测试用例中的 $n$ 之和不超过 $3 \times 10^5$。

输出格式

对于每个测试用例,输出一个整数 $b$($0 \le b \le 2 \times 10^9$),表示 Bob 为了获得最多分数应该选择的整数。如果有多个答案,输出其中任意一个即可。

输入输出样例

输入 #1
3
7 21
10 20 30 40 50 60 70
6 500
200 200 300 500 600 600
2 7
7 7
输出 #1
35
333
1337

说明/提示

在第一个测试用例中,如果 Bob 选择 $35$,则对于 $30, 40, 50, 60, 70$ 这五颗弹珠,Bob 都能获得分数。

在第三个测试用例中,无论 Bob 选择哪个整数,他都无法获得任何分数。
上一题 去做题 下一题