Если требуемая сумма s
, то каждая половина должна иметь сумму s/2
.Теперь вам нужно найти f(n, s/2)
: сколько n-значных чисел имеет сумму цифр s/2
.Зная f(n, s/2)
, вы можете получить ответ в одну строку (попробуйте выяснить это самостоятельно).
Что касается того, как рассчитать f(n, m)
: это стандартное DP.У вас есть рекурсивная формула типа f(n, m) = f(n-1, m) + f(n-1, m-1) + f(n-1, m-2) + ... + f(n-1, m-9)
.Здесь 0, 1, 2, .. 9
- это все возможные варианты последней цифры данного номера.Если последняя цифра - k
, то остальное - (n-1)
-длинное число с суммой цифр m - k
.
Надеюсь, это поможет.
PS В соответствии с ограничениями задачи выпонадобится какая-то длинная арифметика, чтобы пройти его.