Joao_Joao

Min Coin Change - Bottom Up

Jul 17th, 2022
988
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.42 KB | None | 0 0
  1. #include <stdio.h>
  2.  
  3. #define INF (1<<30)
  4. #define min(x, y) (x < y ? x : y)
  5.  
  6. int x, n, c;
  7. int dp[100010];
  8.  
  9. int main() {
  10.   scanf("%d%d", &x, &n);
  11.   dp[0] = 0;
  12.   for(int i = 1; i <= x; ++i) dp[i] = INF;
  13.   while(n--) {
  14.     scanf("%d", &c);
  15.     for(int i = 0; i <= x - c; ++i) { // reutilizando moedas
  16.       if(dp[i] != INF) {
  17.         dp[i + c] = min(dp[i + c], dp[i] + 1);
  18.       }
  19.     }
  20.   }
  21.   printf("%d\n", dp[x]);
  22. }
  23.  
Advertisement
Add Comment
Please, Sign In to add comment