A. Сделай массив красивым
ограничение по времени на тест
3 секунды
ограничение по памяти на тест
512 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Назовем массив $$$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$$$. Если таких массивов несколько, выведите любой из них.
Пример
Входные данные
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