josiftepe

Untitled

Nov 7th, 2020
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.64 KB | None | 0 0
  1. #include <iostream>
  2. using namespace std;
  3. int arr[100];
  4. const int MOD = 1e9 + 7;
  5. const int maxn = 1e6 + 10;
  6. int x,n;
  7. int dp[maxn];
  8. int rec(int a){
  9.     if(dp[a] != -1) {
  10.         return dp[a];
  11.     }
  12.     if (a==0){
  13.         return 1;
  14.     }
  15.     else {
  16.     int sum=0;
  17.     for (int i=n-1;i>=0;i--){
  18.         if (a-arr[i]>=0){
  19.         sum=(sum+rec(a-arr[i])) % MOD;
  20.            
  21.     }
  22.     }
  23.         dp[a] = sum;
  24.     return sum;
  25.     }
  26. }
  27.  
  28. int main(){
  29.     cin>>n;
  30.     cin>>x;
  31.     for(int i=0;i<n;i++){
  32.         cin>>arr[i];
  33.        
  34.     }
  35.     for(int i = 0; i < maxn; ++i) {
  36.         dp[i] = -1;
  37.     }
  38.     cout<<rec(x);
  39.    
  40. }
  41.  
Advertisement
Add Comment
Please, Sign In to add comment