eolymp
bolt
Спробуйте наш новий інтерфейс для відправки розв'язків
Задачі

Перестановки

Перестановки

Задано множину з \textbf{n} різних натуральних чисел. Перестановку елементів цієї множини назвемо \textbf{k}\textit{-перестановкою}, якщо для довільних двох сусідніх елементів цієї перестановки їх найбільший спільний ділбник не менше \textbf{k}. Наприклад, якщо задано множину елементів \textbf{S} = \{\textbf{6}, \textbf{3}, \textbf{9}, \textbf{8}\}, то перестановка \{\textbf{8}, \textbf{6}, \textbf{3}, \textbf{9}\} є \textbf{2}\textit{-перестановкою}, а перестановка \{\textbf{6}, \textbf{8}, \textbf{3}, \textbf{9}\} -- ні. Перестановка \{\textbf{p_1}, \textbf{p_2}, …, \textbf{p_n}\} буде \textit{лексикографічно меншою }перестановки \{\textbf{q_1}, \textbf{q_2}, …, \textbf{q_n}\}, якщо існує таке натуральне число \textbf{i} (\textbf{1} ≤ \textbf{i} ≤ \textbf{n}), для якого \textbf{p_j}\textit{ = }\textbf{q_j} при \textbf{j}\textit{ < }\textbf{i} и \textbf{p_i}\textit{ < }\textbf{q_i}. Для прикладу впорядкуємо всі \textbf{k}\textit{-перестановки за}даної вище множини у лексикографічному порядку. Наприклад, існує рівно чотири \textbf{2}\textit{-перестановки} множини \textbf{S}: \{\textbf{3}, \textbf{9}, \textbf{6}, \textbf{8}\}, \{\textbf{8}, \textbf{6}, \textbf{3}, \textbf{9}\}, \{\textbf{8}, \textbf{6}, \textbf{9}, \textbf{3}\} и \{\textbf{9}, \textbf{3}, \textbf{6}, \textbf{8}\}. Відповідно, першою \textbf{2}\textit{-перестановкою} у лексикографічному порядку є множина \{\textbf{3}, \textbf{9}, \textbf{6}, \textbf{8}\}, а четвертою -- множина \{\textbf{9}, \textbf{3}, \textbf{6}, \textbf{8}\}. \textbf{Потрібно} написати програму, яка дозволяє знайти \textbf{m}-у \textbf{k}\textit{-перестановку} у цьому порядку. \InputFile Перший рядок містить три натуральних числа \textbf{n }(\textbf{1}\textit{ }≤\textit{ }\textbf{n}\textit{ }≤\textit{ }\textbf{16}), \textbf{m}\textit{ }і \textbf{k}\textit{ (}\textbf{1}\textit{ ≤ }\textbf{m}\textit{, }\textbf{k}\textit{ ≤ }\textbf{10^9}\textit{)}. Другий рядок містить \textbf{n} різних натуральних чисел, які не перевищують \textbf{10^9}. \OutputFile Вивести \textbf{m}-ту \textbf{k}-перестановку заданої множини або -\textbf{1}, якщо такої немає.
Ліміт часу 2 секунди
Ліміт використання пам'яті 64 MiB
Вхідні дані #1
1 1 1
1
Вихідні дані #1
1
Джерело 2009 Областная олимпиада школьников по информатике, Вологда, Задача H