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

Задача . G. Циклические палиндромы


Мы говорим, что последовательность из \(n\) целых чисел \(a_1, a_2, \ldots, a_n\) является палиндромом, если для всех \(1 \leq i \leq n\) выполняется \(a_i = a_{n-i+1}\). Вам дана последовательность из \(n\) целых чисел \(a_1, a_2, \ldots, a_n\), и вы должны найти, если она существует, такую циклическую перестановку \(\sigma\), что последовательность \(a_{\sigma(1)}, a_{\sigma(2)}, \ldots, a_{\sigma(n)}\) — палиндром.

Перестановка \(1, 2, \ldots, n\) — это биективная функция из \(\{1, 2, \ldots, n\}\) в \(\{1, 2, \ldots, n\}\). Мы говорим, что перестановка \(\sigma\) является циклической перестановкой, если \(1, \sigma(1), \sigma^2(1), \ldots, \sigma^{n-1}(1)\) — попарно различные числа. Здесь \(\sigma^m(1)\) обозначает \(\underbrace{\sigma(\sigma(\ldots \sigma}_{m \text{ раз}}(1) \ldots))\).

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

Входные данные состоят из нескольких наборов входных данных. В первой строке записано единственное целое число \(t\) (\(1 \leq t \leq 3 \cdot 10^4\)) — количество наборов входных данных. Далее следуют описания наборов входных данных.

Первая строка каждого набора входных данных содержит целое число \(n\) (\(2 \leq n \leq 2 \cdot 10^5\)) — длину последовательности.

Вторая строка каждого набора входных данных содержит \(n\) целых чисел \(a_1, \ldots, a_n\) (\(1 \leq a_i \leq n\)).

Гарантируется, что сумма значений \(n\) по всем наборам входных данных не превосходит \(2 \cdot 10^5\).

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

Для каждого набора входных данных выведите одну строку с «YES», если необходимая циклическая перестановка существует, иначе выведите одну строку с «NO».

Если ответ «YES», выведите еще одну строку с \(n\) целыми числами \(\sigma(1), \sigma(2), \ldots, \sigma(n)\) — перестановкой. Если существует более одной подходящей перестановки, вы можете вывести любую.


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

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

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