Олимпиадный тренинг

Задача . B. Потерянная перестановка


Задача

Темы: математика *800

Последовательность из \(n\) чисел называется перестановкой, если она содержит в себе все числа от \(1\) до \(n\) ровно по одному разу. Например, последовательности [\(3, 1, 4, 2\)], [\(1\)] и [\(2,1\)] являются перестановками, а [\(1,2,1\)], [\(0,1\)] и [\(1,3,4\)] — нет.

Поликарп потерял свою любимую перестановку и нашёл только некоторые её элементы — числа \(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\)) — числа, которые Поликарпу удалось найти.

Выходные данные

Выведите \(t\) строк, каждая из которых является ответом на соответствующий набор входных данных. В качестве ответа выведите «YES», если к массиву \(b\) можно дописать несколько элементов, что их сумма равна \(s\) и в результате получится перестановка. Выведите «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]\), что является перестановкой.


Примеры
Входные данныеВыходные данные
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

time 1000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
С++ Mingw-w645
Комментарий учителя