CF1759B.Lost Permutation

传统题 时间 2000 ms 内存 256 MiB 3 尝试 1 已通过 1 标签

Lost Permutation

题目描述

一个长度为 nn 的数列被称为排列,当且仅当它恰好包含 11nn 的所有整数各一次。例如,序列 3,1,4,23, 1, 4, 2112,12,1 都是排列,但 1,2,11,2,10,10,11,3,41,3,4 不是排列。

Polycarp 丢失了他最喜欢的排列,只找回了其中的一些元素——这些数为 b1,b2,,bmb_1, b_2, \dots, b_m。他确定丢失的元素的和为 ss

请判断是否可以向给定的序列 b1,b2,,bmb_1, b_2, \dots, b_m 添加一个或多个数,使得添加的数的和恰好为 ss,并且最终的新数组是一个排列?

输入格式

输入的第一行包含一个整数 tt1t1001 \le t \le 100),表示测试用例的数量。

接下来是每个测试用例的描述。

每个测试用例的第一行包含两个整数 mmss1m501 \le m \le 501s10001 \le s \le 1000),分别表示已找到的元素个数和丢失元素的和。

每个测试用例的第二行包含 mm 个不同的整数 b1,b2,,bmb_1, b_2, \dots, b_m1bi501 \le b_i \le 50),表示 Polycarp 找到的元素。

输出格式

输出 tt 行,每行对应一个测试用例的答案。如果可以向数组 bb 添加若干个数,使得它们的和为 ss,且最终数组是一个排列,则输出 YES,否则输出 NO。

你可以用任意大小写输出答案(例如 yEs、yes、Yes 和 YES 都会被识别为肯定答案)。

说明/提示

在样例的第一个测试用例中,m=3,s=13,b=[3,1,4]m=3, s=13, b=[3,1,4]。你可以向 bb 添加 6,2,56,2,5,它们的和为 6+2+5=136+2+5=13。注意,最终数组为 [3,1,4,6,2,5][3,1,4,6,2,5],这是一个排列。

在样例的第二个测试用例中,m=1,s=1,b=[1]m=1, s=1, b=[1]。你无法向 [1][1] 添加一个或多个数,使得它们的和为 11 并且结果是一个排列。

在样例的第三个测试用例中,m=3,s=3,b=[1,4,2]m=3, s=3, b=[1,4,2]。你可以向 bb 添加 33。注意,最终数组为 [1,4,2,3][1,4,2,3],这是一个排列。

由 ChatGPT 4.1 翻译

样例

5
3 13
3 1 4
1 1
1
3 3
1 4 2
2 1
4 3
5 6
1 2 3 4 5
YES
NO
YES
NO
YES

在线编程 IDE

建议全屏模式获得最佳体验