fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. const int MOD = 1e9 + 7;
  5.  
  6. int main(){
  7. int t; cin >> t;
  8. while(t--){
  9. int n, k; cin >> n >> k;
  10. vector<int> a(n + 1);
  11. for(int i = 1; i <= n; i++) cin >> a[i];
  12.  
  13. //base case
  14. vector<int> dp(k + 1, 0);
  15. dp[0] = 1;
  16.  
  17. //order + transition
  18. for(int i = 1; i <= k; i++){
  19. for(int j = 1; j <= n; j++){
  20. if(i >= a[j]){
  21. dp[i] = (dp[i] + dp[i - a[j]]) % MOD;
  22. }
  23. }
  24. }
  25.  
  26. //result
  27. cout << dp[k] << '\n';
  28. }
  29. }
Success #stdin #stdout 0.01s 5288KB
stdin
2
3 7
1 5 6
4 14
12 3 1 9
stdout
6
150