Контест Middle Лямбды и функциональные объекты обновлено
Рекурсивная лямбда с мемоизацией: разбиения числа
Условие
Сколькими способами можно представить n в виде суммы натуральных слагаемых, каждое не больше k? Порядок слагаемых не важен (2 + 1 и 1 + 2 один способ). Для n = 0 ответ 1 (пустая сумма). Ответ по модулю 10⁹ + 7.
Напишите решение рекурсивной лямбдой с мемоизацией в таблице, захваченной по ссылке.
Ввод: q (1 ≤ q ≤ 2000), затем q пар n k (0 ≤ n ≤ 500, 1 ≤ k ≤ 500).
Вывод: q строк с ответами.
Пример 1
Ввод:
4
4 4
4 2
0 7
5 1
Вывод:
5
3
1
1
Пример 2
Ввод:
2
1 1
10 3
Вывод:
1
14
Решите в тренажёре
Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.