// PR Bab 13, soal 3 -- pembahasan. // // Perulangan luar menelusuri koin: setiap koin "ditawarkan" sekali kepada // seluruh nilai, sehingga 1+3 dan 3+1 tidak terhitung dua kali. #include using namespace std; const int MOD = 1000000007; const int MAKS = 1000005; long long dp[MAKS]; int c[20]; int main() { int m, k; cin >> m >> k; for (int i = 0; i < m; i++) cin >> c[i]; dp[0] = 1; // satu cara membentuk nilai 0 for (int i = 0; i < m; i++) for (int v = c[i]; v <= k; v++) dp[v] = (dp[v] + dp[v - c[i]]) % MOD; cout << dp[k] << "\n"; return 0; }