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

Задача . A. Перестановка


Задача

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

Для заданного массива \(a\) из \(n\) целых чисел и целого числа \(m\) узнайте, можно ли изменить порядок элементов массива \(a\) так, чтобы \(\sum_{i=1}^{n}{\sum_{j=i}^{n}{\frac{a_j}{j}}}\) было равно \(m\)? Удалять элементы, а также добавлять новые запрещается. Обратите внимание, при делении не происходит округления, например, \(\frac{5}{2}=2.5\).

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

В первой строке задается целое число \(t\) — количество тестовых случаев (\(1 \le t \le 100\)). Далее задаются сами тестовые случаи, в двух строках каждый.

В первой строке тестового случая задаются два целых числа \(n\) и \(m\) (\(1 \le n \le 100\), \(0 \le m \le 10^6\)). Во второй строке задаются целые числа \(a_1, a_2, \ldots, a_n\) — элементы массива (\(0 \le a_i \le 10^6\)).

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

Для каждого тестового случая выведите «YES», если существует такая перестановка элементов массива, что заданная формула равна заданному значению, а иначе выведите «NO».

Примечание

В первом тесте перестановка может быть \([1, 2, 5]\). Сумма будет равна \((\frac{1}{1} + \frac{2}{2} + \frac{5}{3}) + (\frac{2}{2} + \frac{5}{3}) + (\frac{5}{3}) = 8\). Скобки обозначают внутреннюю сумму \(\sum_{j=i}^{n}{\frac{a_j}{j}}\), а сумма скобок обозначает сумму по \(i\).


Примеры
Входные данныеВыходные данные
1 2
3 8
2 5 1
4 4
0 1 2 3
YES
NO

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

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