Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<stdio.h>
- int arr[5] = {1,2,5,10,20};
- int trgAm = 67;
- int dp[6][100];
- int make(int i, int amount)
- {
- if(i >=4)
- {
- if(amount == trgAm) return 1;
- else return 0;
- }
- if(dp[i][amount] !=0) return dp[i][amount];
- int ret1 = 0, ret2 = 0;
- if(amount+arr[i]<=trgAm)
- ret1 = make(i, amount+arr[i]);
- ret2 = make(i+1, amount);
- return dp[i][amount] = ret1 | ret2;
- }
- int main()
- {
- int i,j;
- for(i=0; i<5; i++)
- {
- for(j=0; j<100; j++)
- {
- dp[i][j]=0;
- }
- }
- int x = make(0, 0);
- printf("%d ", x);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement