i описан парой kinds[i] = [count, points]: таких задач count штук, каждая стоит points баллов.
Посчитайте, сколькими способами можно набрать ровно goal баллов. Задачи одного вида неразличимы: важно лишь, сколько задач каждого вида решено. Например, решить первую и вторую задачу вида — то же самое, что первую и третью.
Ответ может быть большим — верните его по модулю 10⁹ + 7.goal=5, kinds=[[3, 1], [2, 2], [1, 4]] → 3
Способы: 1+2+2, 1+1+1+2, 1+4. Набрать 5 одними единицами нельзя — их только три. Итого 3.
goal=7, kinds=[[2, 3]] → 0
Из троек можно набрать только 0, 3 или 6 — способов нет.
goal=5, kinds=[[3, 1], [2, 2], [1, 4]]
3
«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 81 тест на сервере, включая скрытые.