josiftepe

Untitled

Nov 7th, 2020
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.76 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. using namespace std;
  4. const int maxn = 1e6 + 5;
  5. const int MOD = 1e9 + 7;
  6. const int INF = 2e9 + 10;
  7. int n, x;
  8. int a[maxn];
  9. int dp[maxn];
  10.  
  11. int main()
  12. {
  13.     ios_base::sync_with_stdio(false);
  14.     cin >> n >> x;
  15.     for(int i = 0; i < n; ++i) {
  16.         cin >> a[i];
  17.     }
  18.     for(int i = 0; i < maxn; ++i) {
  19.         dp[i] = INF;
  20.     }
  21.     dp[0] = 0; // za sum ednakva na 0 koristime 0 paricki
  22.     for(int left_sum = 0; left_sum <= x; ++left_sum) {
  23.         for(int i = 0; i < n; ++i) {
  24.             if(left_sum + a[i] <= x) {
  25.                 dp[left_sum + a[i]] = min(dp[left_sum + a[i]], dp[left_sum] + 1);
  26.             }
  27.         }
  28.     }
  29.     if(dp[x] == INF) {
  30.         dp[x] = -1;
  31.     }
  32.     cout << dp[x] << endl;
  33.     return 0;
  34. }
  35.  
Advertisement
Add Comment
Please, Sign In to add comment