Advertisement
Guest User

Untitled

a guest
Jan 19th, 2020
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.78 KB | None | 0 0
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3.  
  4. int n, arr[1000],INF = 999999;
  5. int mem[1000][1000];
  6.  
  7. int CoinChange(int idx, int b)
  8. {
  9.     if(b==0) return 0;
  10.     if(idx>n-1) return INF;
  11.     if(mem[idx][b] != -1) return mem[idx][b];
  12.     int a = CoinChange(idx+1, b);
  13.     int c;
  14.     if(arr[idx] <= b)
  15.         c = CoinChange(idx, b-arr[idx]) + 1;
  16.     else c = INF;
  17.     return mem[idx][b] = min(a,c);
  18. }
  19.  
  20. int main()
  21. {
  22.     int b;
  23.     memset(mem,-1,sizeof(mem));
  24.     printf("How many coin: ");
  25.     scanf("%d",&n);
  26.     printf("enter those coin: ");
  27.     for(int i=0;i<n;i++)
  28.         scanf("%d",&arr[i]);
  29.     printf("koy taka banaben?: ");
  30.     scanf("%d",&b);
  31.     int ans = CoinChange(0,b);
  32.     if(ans==INF) printf("Impossible\n");
  33.     else printf("%d\n",ans);
  34.     return 0;
  35. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement