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

Задача . A. Круг студентов


Задача

Темы: реализация *1000

\(n\) студентов выстроились в кругу в некотором порядке. Индекс \(i\)-го студента равен \(p_i\). Гарантируется, что все индексы студентов — различные целые числа от \(1\) до \(n\) (то есть они образуют перестановку).

Студенты хотят станцевать хоровод. Прямой хоровод можно станцевать тогда, когда студент \(2\) идет сразу же после студента \(1\) в порядке по часовой стрелке (между ними не должно стоять студентов), студент \(3\) идет сразу же после студента \(2\) в порядке по часовой стрелке, и так далее, и студент \(n\) идет сразу же за студентом \(n - 1\) в порядке по часовой стрелке. Обратный хоровод — почти то же самое. Единственное отличие в том, что студент \(i\) должен идти сразу же после студента \(i - 1\) в порядке против часовой стрелки (это условие должно выполняться для всех \(i\) от \(2\) до \(n\)).

Например, если индексы студентов в порядке по часовой стрелке равны \([2, 3, 4, 5, 1]\), то они могут станцевать прямой хоровод. Если индексы студентов равны \([3, 2, 1, 4]\) в порядке по часовой стрелке, тогда они смогут станцевать обратный хоровод.

Ваша задача — определить, возможно ли станцевать хоровод. Заметьте, что студенты не могут менять своих позиций перед началом танца; они не могут меняться местами или покидать круг, а также никакой другой студент не может встать в круг.

Вам необходимо ответить на \(q\) независимых запросов.

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

Первая строк входных данных содержит одно целое число \(q\) (\(1 \le q \le 200\)) — количество запросов. Затем следуют \(q\) запросов.

Первая строка запроса содержит одно целое число \(n\) (\(1 \le n \le 200\)) — количество студентов.

Вторая строка запроса содержит перестановку индексов \(p_1, p_2, \dots, p_n\) (\(1 \le p_i \le n\)), где \(p_i\) равно индексу \(i\)-го студента (в порядке по часовой стрелке). Гарантируется, что все \(p_i\) — различные целые числа от \(1\) до \(n\) (то есть они образуют перестановку).

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

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


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

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

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