\textbf{Данную задачу можно решать только на языке программирования C++.}

По кругу расположено $n$ различных чисел от $1$ до $n$, в $i$-й вершине при обходе против часовой стрелки записано число $p_i$. Для каждой пары значений $x$ и $y$ есть два способа добраться из $x$ в $y$~--- пойти по часовой стрелке или против. В этой задаче $n$ всегда нечетное, поэтому эти два пути будут иметь различную длину.

Скажем, что $f(x, y)$~--- это минимальное значение, которое мы встретим по пути, если добираться из числа $x$ в число $y$ по кратчайшему из путей.

Например, если $p = [1, 5, 3, 2, 7, 4, 6]$, то значения $5$ и $7$ соединены двумя путями, и значения вершин на этих путях, соответственно, равны $[5, 3, 2, 7]$ и $[5, 1, 6, 4, 7]$. Кратчайшим является первый указанный путь, а значит $f(5, 7) = \min \{ 5, 3, 2, 7 \} = 2$.

Скажем, что две перестановки $p$ и $q$~--- \textit{эквивалентные}, если значение функции $f$ для этих перестановок совпадает при всех $x$ и $y$. Вам загадана перестановка $p$, требуется отгадать любую эквивалентную ей перестановку $q$, задавая запросы к функции $f(x, y)$. 

\createsection{\Grader}{Формат решения}
\Grader

Это необычная задача. Она имеет формат тестирования с грейдером, где вам необходимо реализовать только функцию \t{guess} с решением. Эта функция будет вызвана тестирующей программой жюри (грейдером), и возвращаемое значение функции будет принято как решение задачи.

В частности, это означает, что в отправленном вами коде \textbf{не должно быть ввода или вывода}. Ваш код \textbf{не должен} содержать функцию \t{main}. При необходимости вы можете реализовать произвольное количество вспомогательных функций, структур, классов и глобальных переменных, но весь код вашего решения должен находиться в одном файле.

Вы должны реализовать следующую функцию:

\begin{verbatim}
std::vector<int> guess(int n);
\end{verbatim}

Функция \t{guess} принимает на вход число $n$~--- длину перестановки.

В реализации функции \t{guess} вы можете использовать функцию \t{min\_value}, которую реализует грейдер. Данная функция принимает на вход два значения $x$ и $y$, и возвращает $f(x, y)$ в качестве результата. Если сделать некорректный запрос или исчерпать количество запросов, то программа автоматически завершит свою работу.

Для того, чтобы получить доступ к функции \t{min\_value} в решении, первой строчкой вашего кода нужно подключить заголовочный файл следующей строчкой:

\begin{verbatim}
#include "checkpoint.h"
\end{verbatim}

Определение функции \t{min\_value} в заголовочном файле следующее:

\begin{verbatim}
int min_value(int x, int y);
\end{verbatim}

Все параметры (значения $x$, $y$, а так же возвращаемая вами перестановка $q$) заданы в \textbf{1-индексации}.

Ваша функция \t{guess} с помощью вызовов функции \t{min\_value} должна определить неизвестную перестановку $p$, с точностью до указанной эквивалентности. То есть если жюри загадали перестановку $p$, а функция \t{guess} вернула любую эквивалентную ей перестановку $q$, то такой ответ считается корректным.

За один запуск грейдера \textbf{жюри может делать несколько вызовов функции \t{guess}}, в таком случае функция \t{min\_value} будет возвращать значения $f(i, j)$, определенные для текущей загаданной перестановки $p$ в рамках конкретного вызова функции \t{guess}.

\textbf{Грейдер не является адаптивным}, то есть перестановки $p$ фиксируются заранее и не зависят от реализации функции \t{guess}.

\createsection{\Testing}{Тестирование}
\Testing

Вам предоставлен шаблон решения \texttt{checkpoint.cpp}, а так же заголовочный файл \texttt{checkpoint.h}, содержащий определение функций \t{min\_value} и \t{guess}.

Для удобства тестирования вам предоставлен грейдер~--- файл \texttt{grader.cpp}. В этом файле реализован ввод входных данных со стандартного потока ввода, запуск функции \t{guess} и вывод на стандартный поток вывода возвращаемого значения функции \t{guess}. В тестирующей системе эти файлы грейдеров могут отличаться. 

Чтобы скомпилировать ваш код \texttt{checkpoint.cpp} на языке C++, используйте команду \begin{verbatim}
g++ -std=c++20 grader.cpp checkpoint.cpp -o grader
\end{verbatim}

После выполнения данной команды будет создан исполняемый файл грейдера \texttt{grader} или \texttt{grader.exe}, в зависимости от вашей операционной системы, запустив который можно ввести тест в формате, указанном далее.

Если компиляция через команды вызывает у вас трудности, для локального тестирования вы можете скопировать реализацию функции \t{guess} в файл \t{grader.cpp} и запустить файл \t{grader.cpp}. При этом перед отправкой решения в тестирующую систему вам нужно будет оставить только реализацию функции \t{guess}, не забыв подключить заготовочный файл в начале кода.