CF1759B Lost Permutation
题目描述
一个长度为 $n$ 的数列被称为排列,当且仅当它恰好包含 $1$ 到 $n$ 的所有整数各一次。例如,序列 $3, 1, 4, 2$,$1$ 和 $2,1$ 都是排列,但 $1,2,1$,$0,1$ 和 $1,3,4$ 不是排列。
Polycarp 丢失了他最喜欢的排列,只找回了其中的一些元素——这些数为 $b_1, b_2, \dots, b_m$。他确定丢失的元素的和为 $s$。
请判断是否可以向给定的序列 $b_1, b_2, \dots, b_m$ 添加一个或多个数,使得添加的数的和恰好为 $s$,并且最终的新数组是一个排列?
输入格式
输入的第一行包含一个整数 $t$($1 \le t \le 100$),表示测试用例的数量。
接下来是每个测试用例的描述。
每个测试用例的第一行包含两个整数 $m$ 和 $s$($1 \le m \le 50$,$1 \le s \le 1000$),分别表示已找到的元素个数和丢失元素的和。
每个测试用例的第二行包含 $m$ 个不同的整数 $b_1, b_2, \dots, b_m$($1 \le b_i \le 50$),表示 Polycarp 找到的元素。
输出格式
输出 $t$ 行,每行对应一个测试用例的答案。如果可以向数组 $b$ 添加若干个数,使得它们的和为 $s$,且最终数组是一个排列,则输出 YES,否则输出 NO。
你可以用任意大小写输出答案(例如 yEs、yes、Yes 和 YES 都会被识别为肯定答案)。
说明/提示
在样例的第一个测试用例中,$m=3, s=13, b=[3,1,4]$。你可以向 $b$ 添加 $6,2,5$,它们的和为 $6+2+5=13$。注意,最终数组为 $[3,1,4,6,2,5]$,这是一个排列。
在样例的第二个测试用例中,$m=1, s=1, b=[1]$。你无法向 $[1]$ 添加一个或多个数,使得它们的和为 $1$ 并且结果是一个排列。
在样例的第三个测试用例中,$m=3, s=3, b=[1,4,2]$。你可以向 $b$ 添加 $3$。注意,最终数组为 $[1,4,2,3]$,这是一个排列。
由 ChatGPT 4.1 翻译