// 題目

湊出總額的有序投幣方式數

Count Ordered Token Sequences for a Total・apcs-14-01

  • APCS 高級
  • 0/1 背包
  • APCS 實作專題・DP — Knapsack

時間限制 2 秒・記憶體 64 MB

到 Aki-Judge 送出

送出程式要先用 Discord 帳號登入 Aki-Judge,並加入註解 Annotated 的 Discord 伺服器(免費)。看題目不用登入。

題目敘述

販賣機有 n 種代幣,面額分別為 c1, …, cn,每種代幣的數量不限。你要依序投入代幣,使投入的面額總和恰好為 x。請問有幾種不同的投幣序列?投入的順序不同就算不同的序列,例如先投 1 再投 2,與先投 2 再投 1 是兩種。

答案可能很大,請輸出除以 109+7 的餘數。

輸入格式

第一行有兩個整數 n 與 x。 第二行有 n 個整數,依序為各種代幣的面額。

輸出格式

輸出一個整數,表示投幣序列數除以 109+7 的餘數。

限制

  • 1 ≤ n ≤ 100
  • 1 ≤ x ≤ 106
  • 1 ≤ ci ≤ 106

範例

範例 1

輸入

3 9
2 3 5

輸出

8

範例 2

輸入

2 4
1 2

輸出

5

說明

  • 範例 1 的八種序列總和都是 9。
  • 範例 2 只有面額 1 與 2,序列共五種。

到 Aki-Judge 送出

送出程式要先用 Discord 帳號登入 Aki-Judge,並加入註解 Annotated 的 Discord 伺服器(免費)。看題目不用登入。

卡住了可以到 Discord 的 #程式問題 發問,小墨助教會先給提示,不會直接給答案。