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

Задача . B. Переливайка


Дан массив \(a\) длины \(n\). За одну операцию можно выбрать индекс \(i\) от \(2\) до \(n-1\) и сделать одно из следующих действий:

  • Вычесть \(1\) из \(a_{i-1}\), затем прибавить \(1\) к \(a_{i+1}\).

  • Вычесть \(1\) из \(a_{i+1}\), затем прибавить \(1\) к \(a_{i-1}\).

При этом все полученные после каждой операции числа должны оставаться неотрицательными. Можно ли сделать все элементы массива равными за какое-то количество таких операций?

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

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

Первая строка каждого набора данных содержит число \(n\) (\(3 \le n \le 2\cdot 10^5\)).

Вторая строка каждого набора данных содержит \(n\) чисел \(a_i\) (\(1 \le a_i \le 10^9\)).

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

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

Для каждого набора данных выведите «YES» без кавычек, если можно сделать все элементы равными после некоторого числа данных операций, иначе выведите «NO» без кавычек.

Ответ можно выводить в любом регистре: «yes», «YeS», «nO»  — также являются корректными выводами.


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

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

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