Вам дано \(n\) чисел \(a_1, a_2, \ldots, a_n\). Возможно ли расставить их по окружности таким образом, чтобы каждое число было строго меньше суммы своих соседей?
К примеру, для массива \([1, 4, 5, 6, 7, 8]\), расстановка слева удовлетворяет условию, в то время как расстановка справа нет, так как \(5\ge 4 + 1\) и \(8> 1 + 6\).
Выходные данные
Если решения не существует, в первой строке выведите «NO».
Если оно существует, в первой строке выведите «YES». После чего, во второй строке выведите \(n\) чисел — элементы массива в порядке в котором они будут стоять на окружности. Первый и последний элементы, которые вы выведете, считаются соседями на окружности. Если существует несколько решений, выведите любое из них. Вы можете выводить круг, начиная с любого из чисел.
Примечание
Одна из возможных расстановок указана в первом примере:
\(4< 2 + 3\);
\(2 < 4 + 3\);
\(3< 4 + 2\).
Одна из возможных расстановок указана в втором примере.
При любой расстановке чисел \(13, 8, 5\) на окружности в третьем примере, \(13\) будет иметь соседей \(8\) и \(5\), но \(13\ge 8 + 5\).
В четвертом примере нет нужной расстановки.
Примеры
| № | Входные данные | Выходные данные |
|
1
|
3 2 4 3
|
YES
4 2 3
|
|
2
|
5 1 2 3 4 4
|
YES
4 4 2 1 3
|
|
3
|
3 13 8 5
|
NO
|
|
4
|
4 1 10 100 1000
|
NO
|