#169. Tổ hợp đồng xu I (COINCOM1)

Bộ nhớ: 512 MiB Thời gian: 1000 ms Nhập/xuất từ luồng chuẩn
Kiểu bài: Thông thường Kiểu chấm: So sánh văn bản
Đưa lên bởi: Trùm CUỐI

Đề bài

Cho một tập hợp gồm n mệnh giá tiền xu. Nhiệm vụ của bạn là tính số cách khác nhau mà bạn có thể tạo ra tổng tiền x bằng cách sử dụng các đồng xu có sẵn. Bạn có thể sử dụng mỗi mệnh giá tiền xu không giới hạn số lần. Ví dụ, nếu các mệnh giá là \{2, 3, 5\} và tổng mục tiêu là 9 , có 8 cách:

  • 2+2+2+3
  • 2+2+5
  • 2+7 (nếu 7 có trong mệnh giá)
  • 3+3+3
  • 3+6 (nếu 6 có trong mệnh giá) ...

Thứ tự của các đồng xu không quan trọng. Tuy nhiên, trong bài toán này, thứ tự của các đồng xu quan trọng. Ví dụ, 2+2+5 , 2+5+2 , và 5+2+2 được coi là 3 cách khác nhau.

Dữ liệu:

  • Dòng đầu tiên chứa hai số nguyên n x : số lượng mệnh giá và tổng tiền mục tiêu.
  • Dòng thứ hai chứa n số nguyên c_1, c_2, \ldots, c_n : các mệnh giá tiền xu.

Kết quả: In ra số cách, theo modulo 10^9+7 .

Ví dụ:

Dữ liệu:

3 9
2 3 5

Kết quả:

8

Giải thích: Các cách là: 2+2+2+3 2+2+5 2+3+2+2 2+5+2 3+2+2+2 3+3+3 5+2+2

Giới hạn:

  • 1 \le n \le 100
  • 1 \le x \le 10^6
  • 1 \le c_i \le 10^6