Задача звучит так:
Обозначим через

подмножество множества всех перестановок чисел

, для элементов которого истинны следующие утверждения:
Первое число

,
разница между любыми соседними числами не превышает

.
Дано:

Требуется найти

Я немножко подумал, и вот что решил:
Задача относится к семейству задач динамического программирования, значит должна быть
какая-та рекуррентная формула. Но вот найти ее не могу.
Вот решение задачи перебором для

Код:
f(1) = 1
f(2) = 1
f(3) = 2
f(4) = 4
f(5) = 6
f(6) = 9
f(7) = 14
f(8) = 21
f(9) = 31
f(10) = 46
f(11) = 68
f(12) = 100
Решения надо найти для

.