Untitled

 avatar
unknown
c_cpp
2 years ago
822 B
4
Indexable
#include <bits/stdc++.h>
#define ll long long
using namespace std ;
const int maxn = 1e6+7;
ll dp[maxn];
int c[maxn];

int main(){
   int a, b;
   cin >> a >> b;
   for(int i = 0 ; i <= b ; i++){
      dp[i] = 0;
   }
   for(int i = 0 ; i < a; i++){
      cin >> c[i];
      dp[c[i]] = 1;
   }
   ll res;
   if(dp[b] != 0) cout << dp[b];
   else{
      for(int i = 1 ; i <= b ; i++){
         res = 1e16 ;
         for(int j = 1 ; j < a ; j++){
            res = min(dp[i-c[j]] , res);
               if(dp[i] > 0) continue;
               if(dp[i-c[j]]!=0){
                  dp[i] = res +1;
                  res++;
               }
               else dp[i] = -1;
         }
      //   cout << res << ' ';
      
      }
   //cout << dp[7];
   //cout << dp[b];
   }
    return 0;
}
Editor is loading...