Iamtui1010

dp-coin

Oct 27th, 2022 (edited)
149
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.67 KB | None | 0 0
  1. #include<iostream>
  2. #include<vector>
  3. #include<algorithm>
  4.  
  5. #define long long long
  6. #define nln '\n'
  7.  
  8. const long INF = 1e18;
  9.  
  10. using namespace std;
  11.  
  12. int main()
  13. {
  14.     long n, s;
  15.     cin >> n >> s;
  16.     vector<long> a(n+1, 0);
  17.     for (long i = 1; i <= n; ++i)
  18.     cin >> a[i];
  19.     vector<long> dp(s+1, INF);
  20.     dp[0] = 0;
  21.     for (long i = 1; i <= s; ++i)
  22.         for (long j = 1; j <= n; ++j)
  23.             if (a[j] <= i)
  24.                 dp[i] = min(dp[i-a[j]]+1, dp[i]);
  25.  
  26.     vector<long> f(s+1, INF);
  27.     f[0] = 0;
  28.     for (long i = 1; i <= n; ++i)
  29.         for (long j = 1; j <= s; ++j)
  30.             if (a[i] <= j)
  31.                 f[j] = min(f[j], f[j-a[i]]+1);
  32.  
  33.     for (long i = 1; i <= s; ++i)
  34.         cout << i << " : " << f[i] << nln;
  35.     return 0;
  36. }
Advertisement
Add Comment
Please, Sign In to add comment