QOJ.ac

QOJ

시간 제한: 2.0 s 메모리 제한: 256 MB 총점: 100 해킹 가능 ✓

#15198. 筷子

통계

消毒柜里有 $n$ 种筷子,这 $n$ 种筷子被编号为 $1$ 到 $n$。第 $i$ 种筷子有 $a_i$ 支。两支不同的筷子可以组成一双,当且仅当它们属于同一种类。每支筷子最多只能属于一双筷子。请找出最少需要从消毒柜中取出多少支筷子,使得无论具体取出了哪些筷子,它们都至少能组成 $m$ 双筷子。

输入格式

第一行包含一个整数 $T$ ($1 \le T \le 10^6$) — 测试用例的数量。接下来是 $T$ 个测试用例的描述。

对于每个测试用例:

第一行包含两个整数 $n, m$ — 筷子的种类数和需要组成的筷子双数。保证 $1 \le n \le 10^6$,$1 \le m \le 10^{15}$,且 $\sum n \le 10^6$。

第二行包含 $n$ 个整数 $a_1, a_2, \dots, a_n$,其中 $a_i$ 表示第 $i$ 种筷子的数量($1 \le a_i \le 10^9$)。

输出格式

对于每个测试用例,输出一个整数,表示最少需要取出的筷子数量。如果不存在满足条件的最少数量,输出 -1。

样例

输入样例 1

3
3 4
6 2 3
3 114514
6 2 3
3 3
6 2 3

输出样例 1

10
-1
8

说明

设 $b_i$ 表示从消毒柜中取出的第 $i$ 种筷子的数量。

在第一个样例中,如果 $(b_1, b_2, b_3) = (5, 1, 3)$,那么取出的筷子总数是 9,但在这种情况下只能组成 3 双筷子。因此答案必须大于 9,可以证明答案是 10。

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.