CF1399A Remove Smallest
题目描述
给定一个由 $n$ 个正整数(大于零)组成的数组 $a$。
每次操作,你可以选择两个下标 $i$ 和 $j$($i \ne j$),使得 $a_i$ 和 $a_j$ 的绝对差不超过 $1$(即 $|a_i - a_j| \le 1$),然后移除这两个元素中较小的一个。如果两个元素相等,你可以移除其中任意一个(但只能移除一个)。
你的任务是判断,是否可以通过若干次(可能为零次)上述操作,将数组变为只剩下一个元素。
你需要回答 $t$ 组独立的测试用例。
输入格式
输入的第一行包含一个整数 $t$($1 \le t \le 1000$),表示测试用例的数量。接下来是 $t$ 组测试用例。
每组测试用例的第一行包含一个整数 $n$($1 \le n \le 50$),表示数组 $a$ 的长度。第二行包含 $n$ 个整数 $a_1, a_2, \dots, a_n$($1 \le a_i \le 100$),表示数组 $a$ 的各个元素。
输出格式
对于每组测试用例,输出一行答案:如果可以通过若干次操作将数组变为只剩下一个元素,输出 "YES";否则输出 "NO"。
说明/提示
在示例的第一个测试用例中,我们可以按如下顺序进行操作:
- 选择 $i=1$ 和 $j=3$,移除 $a_i$(此时 $a$ 变为 $[2, 2]$);
- 选择 $i=1$ 和 $j=2$,移除 $a_j$(此时 $a$ 变为 $[2]$)。
在第二个测试用例中,可以任意选择 $i$ 和 $j$ 进行操作,移除哪个元素都无所谓。
在第三个测试用例中,无法消除 $2$ 和 $4$。
由 ChatGPT 4.1 翻译