Напомним, что Зиниум — это шахматная доска размером n × n клеток.
Клетка в левом нижнем её углу имеет координаты (1, 1), а клетка в правом
верхнем углу — координаты (n, n). По легенде, если на доске расставить
n ферзей таким образом, что ни один из них не будет атаковать другого,
то освобождённая энергия Зиниума изменит мир до неузнаваемости. Реки повернутся
вспять, небо упадёт на землю, люди научатся называть вещи своими
именами…
Все верили в легенду про Зиниум, пока артефакт не попал в руки к Игорю.
Когда Игорю удалось расставить n ферзей требуемым образом, ничего не
произошло (во всяком случае, Игорь не заметил ничего необычного).
Тогда Игорь предположил, что в легенде говорилось не об обычной, а о
торической шахматной доске. Чтобы получить торическую шахматную доску
размера n × n, нужно взять обычную доску такого же размера, после
чего склеить её верхнюю горизонталь с нижней, а левую вертикаль с правой.
На рисунке показано, какие клетки торической шахматной доски 8 × 8 держит под
боем один ферзь. Чтобы проверить свою гипотезу, Игорь пытается расставить
на торической доске n ферзей так, чтобы ни один из них не атаковал
другого. Помогите ему в этом.
Исходные данные
В единственной строке записано целое число n (4 ≤ n ≤ 105).
Результат
Если искомая расстановка существует, выведите в первой строке «Yes», а
во второй — n целых чисел. i-е число должно равняться y-координате
ферзя, x-координата которого равна i. Если возможных расстановок несколько,
выведите любую из них. Если расстановки не существует, в единственной строке выведите «No».
Примеры
исходные данные | результат |
---|
5
| Yes
2 4 1 3 5
|
8
| No
|
Автор задачи: Игорь Чевдарь (подготовка — Евгений Курпилянский)
Источник задачи: Открытый командный чемпионат УрФУ по программированию — 2011