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

Задача . B. Конструктив от MKnez


MKnez хочет построить массив \(s_1,s_2, \ldots , s_n\), удовлетворяющий следующим условиям:

  • Каждый элемент массива является целым числом, отличным от \(0\);
  • Сумма любых двух соседних элементов равна сумме всех элементов массива.

Формально, \(s_i \neq 0\) должно выполняться для всех \(1 \leq i \leq n\). Также должно выполняться \(s_1 + s_2 + \cdots + s_n = s_i + s_{i+1}\) для всех \(1 \leq i < n\).

Помогите MKnez построить массив с такими свойствами, или определите, что это невозможно.

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

Каждый тест состоит из нескольких наборов входных данных. В первой строке находится одно целое число \(t\) (\(1 \leq t \leq 100\)) — количество наборов входных данных. Далее следует описание наборов входных данных.

Первая строка каждого набора входных данных содержит одно целое число \(n\) (\(2 \leq n \leq 1000\)) — требуемую длину массива.

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

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

Если ответ «YES», то на следующей строке выведите массив \(s_1,s_2, \ldots, s_n\), удовлетворяющий условиям. Каждый элемент должен быть ненулевым целым числом в отрезке \([-5000,5000]\), т. е. для каждого \(1 \leq i \leq n\) должно выполняться \(-5000 \leq s_i \leq 5000\) и \(s_i \neq 0\).

Можно показать, что если решение существует, то также существует решение, удовлетворяющее дополнительным ограничениям на значения чисел.

Если существует несколько решений, выведите любое из них.

Примечание

В первом примере \([9,5]\) является корректным ответом, потому что \(9+5\) (сумма двух элементов \(s_1+s_2\)) равна \(9+5\) (сумме всех элементов). Существуют также другие решения, например, \([6,-9], [-1,-2], [-5000,5000], \ldots\)

Для второго примера покажем, почему некоторые массивы не удовлетворяют ограничениям:

  • \([1,1,1]\): \(s_1+s_2 = 1+1 = 2\) и \(s_1+s_2+s_3=1+1+1 = 3\) различны;
  • \([1,-1,1]\): \(s_1+s_2=1+(-1)=0\) и \(s_1+s_2+s_3=1+(-1)+1 = 1\) различны;
  • \([0,0,0]\): массив \(s\) не может содержать \(0\).

Это не является доказательством, но можно показать, что ответ — «NO».


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

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

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