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

Задача . B. Сделай равными


В ряду стоят \(n\) сосудов с водой, пронумерованных слева направо от \(1\) до \(n\). В каждый сосуд может поместиться любое количество воды, изначально \(i\)-й сосуд содержит \(a_i\) единиц воды. Сумма \(a_i\) делится нацело на \(n\).

Вы можете любое (возможно нулевое) количество раз применить следующую операцию: перелить любое количество воды из \(i\)-го сосуда в \(j\)-й, причём \(i\) должно быть меньше \(j\) (т.е., \(i<j\)). Любой индекс может быть выбран в качестве \(i\) или \(j\) любое количество раз.

Определите, возможно ли с помощью этой операции сделать количество воды во всех сосудах одинаковым.

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

Первая строка входных данных содержит одно целое число \(t\) (\(1 \le t \le 10^4\)) — количество наборов входных данных. Далее следуют описания наборов.

Первая строка каждого набора содержит одно целое число \(n\) (\(1 \le n \le 2 \cdot 10^5\)) — количество сосудов с водой.

Вторая строка каждого набора содержит \(n\) целых чисел \(a_1, a_2, \dots, a_n\) (\(0 \le a_i \le 10^9\)) — количества воды в сосудах. Гарантируется, что сумма \(a_i\) в каждом наборе входных данных не превосходит \(2 \cdot 10^9\). Кроме того, сумма \(a_i\) делится на \(n\).

Гарантируется, что сумма \(n\) по всем наборам входных данных теста не превосходит \(2 \cdot 10^5\).

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

Выведите \(t\) строк, каждая из которых является ответом на соответствующий набор входных данных. В качестве ответа выведите «YES», если возможно с помощью применения описанной операции сделать количество воды во всех сосудах одинаковым. Иначе выведите «NO».

Вы можете выводить каждую букву в любом регистре (строчную или заглавную). Например, строки «yEs», «yes», «Yes» и «YES» будут приняты как положительный ответ.

Примечание

В третьем наборе входных данных примера (\(a=[4, 5, 2, 1, 3]\)) можно поступить следующим образом:

  • перелить из первого сосуда в четвёртый \(1\) единицу воды, тогда \(a=[3, 5, 2, 2, 3]\);
  • перелить из второго сосуда в третий \(1\) единицу воды, тогда \(a=[3, 4, 3, 2, 3]\);
  • перелить из второго сосуда в четвёртый \(1\) единицу воды, тогда \(a=[3, 3, 3, 3, 3]\).

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

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

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