10714: Розподіл цукерок


Відправити розв'язок

Бали: 100 (partial)
Time limit: 1.0s
Memory limit: 256M

Author:
Problem type
Allowed languages
Brain****, C++, Java, Pascal, Python, v8js

\(N\) дітей хочуть розділити між собою \(K\) цукерок.
Для кожної дитини номер \(i\) відомо число \(Ai\) - скільки максимально цукерок він може отримати (може отримати будь-яку кількість цукерок від \(0\) до \(Ai\)).
Також всі \(K\) цукерок мають бути розподілені між дітьми без залишку.

Визначіть кількість способів розділити цукерки між дітьми Відповідть обчисліть за модулем \(10^9 + 7\)

Формат вхідних даних

В першому рядку два цілих числа \(N,K\) (\(1 \le N \le 100\) , \(0 \le K \le 10^5\))
В другому рядку \(N\) цілих чисел \(Ai\) (\(0 \le Ai \le K\))

Формат вихідних даних

Виведіть кількість способів за модулем \(10^9+7\)

Приклад вхідних даних-1

3 4
1 2 3

Приклад вихідних даних-1

5

Пояснення до прикладу-1

Існує 5 способів розподілити 4 цукерки між трьома заданими дітьми
(0,1,3)
(0,2,2)
(1,0,3)
(1,1,2)
(1,2,1)

Приклад вхідних даних-2

1 10
9

Приклад вихідних даних-2

0

Приклад вхідних даних-3

2 0
0 0

Приклад вихідних даних-3

1

Пояснення до прикладу-3

Існує лише оди спосіб розподілити 0 цукерок між 2 заданими дітьми
(0,0)

Приклад вхідних даних-4

4 100000
100000 100000 100000 100000

Приклад вихідних даних-4

665683269

Коментарі

Ще немає коментарів.