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

Задача . A. Сделай массив красивым


Назовем массив \(a\) уродливым, если в нем есть хотя бы один элемент, который равен сумме всех элементов до него. Если массив не уродливый, назовем его красивым.

Например:

  • массив \([6, 3, 9, 6]\) — уродливый: элемент \(9\) равен \(6 + 3\);
  • массив \([5, 5, 7]\) — уродливый: элемент \(5\) (второй) равен \(5\);
  • массив \([8, 4, 10, 14]\) — красивый: \(8 \ne 0\), \(4 \ne 8\), \(10 \ne 8 + 4\), \(14 \ne 8 + 4 + 10\), значит, ни один элемент не равен сумме всех элементов до него.

Вам дан массив \(a\), для элементов которого выполняется условие \(1 \le a_1 \le a_2 \le \dots \le a_n \le 100\). Вы должны поменять порядок элементов \(a\) так, чтобы получился красивый массив. Обратите внимание, что нельзя ни добавлять новые элементы, ни удалять существующие — вы можете только переставлять элементы массива \(a\). Если массив \(a\) уже красивый, вы можете оставить его без изменений.

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

В первой строке задано одно целое число \(t\) (\(1 \le t \le 2000\)) — количество наборов входных данных.

Каждый набор входных данных состоит из двух строк. В первой строке задано одно целое число \(n\) (\(2 \le n \le 50\)). Во второй строке заданы \(n\) целых чисел \(a_1, a_2, \dots, a_n\) (\(1 \le a_1 \le a_2 \le \dots \le a_n \le 100\)).

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

Для каждого набора входных данных выведите ответ следующим образом:

  • если нельзя переставить элементы \(a\) так, чтобы он стал красивым, выведите NO;
  • иначе в первой строке выведите YES. Во второй строке выведите \(n\) целых чисел — красивый массив, который можно получить, поменяв порядок элементов в \(a\). Если таких массивов несколько, выведите любой из них.

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

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

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