VK
Вопрос по этой задаче. Дошел до чего-то подобного:
import math
import functools
@functools.lru_cache(maxsize=None)
def factorial( n ):
if n <1: # base case
return 1
else:
return n * factorial( n - 1 ) # recursive call
k = int(input())
n = 4;
q = factorial(n +k -1)/(factorial(n-1)*factorial(n+k -1 -n+1))
print(int(q))
Но не могу прикинуть, как учитывать число уникальных перестановок. Думаю в сторону генерации кеша уникальных перестановок, но тоже, считать permutation для каждого варианта цифр выглядит дорого. В какую сторону смотреть?

