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

Число інверсій

Число інверсій

Перестановка це послідовність довжини \textbf{n} різних цілих чисел від \textbf{1} до \textbf{n}. Наприклад, (\textbf{5}, \textbf{3}, \textbf{2}, \textbf{1}, \textbf{4}) це перестановка. Інверсією перестановки \textbf{p} називається така упорядкована пара індексів (\textbf{i}, \textbf{j}), що \textbf{i} < \textbf{j} и \textbf{p_i} > \textbf{p_j}. У прикладі вище пара індексів (\textbf{2}, \textbf{4}) утворює інверсію, так як \textbf{2} < \textbf{4} і \textbf{3} > \textbf{1}. Задано пару чисел \textbf{n} і \textbf{t}. Знайдіть кількість перестановок з \textbf{n} елементів, у яких рівно \textbf{t} інверсій. Виведіть найменшу у лексикографічному порядку перестановку з \textbf{t} інверсіями. \InputFile У першому рядку вхідного файлу записано пару цілих чисел \textbf{n} і \textbf{t} (\textbf{1} ≤ \textbf{n} ≤ \textbf{18}; \textbf{0} ≤ \textbf{t} ≤ \textbf{200}). \OutputFile У перший рядок виведіть кількість перестановок з \textbf{n} елементів, які мають рівно \textbf{t} інверсій. У другий рядок виведіть найменшу у лексикографічному порядку перестановку з заданим числом інверсій \textbf{t}. Якщо такої перестановки не існує, виведіть у перший рядок "\textbf{0}", а у другий -- символ "\textbf{-}".
Ліміт часу 4 секунди
Ліміт використання пам'яті 64 MiB
Вхідні дані #1
3 0
Вихідні дані #1
1
1 2 3