Can someone help me with this one.

here is the link to my code.

https://www.codechef.com/viewsolution/16308609

Can someone help me with this one.

here is the link to my code.

https://www.codechef.com/viewsolution/16308609

Please also describe your approach, someone needs to understand your code in order to be able to help you.

So after reading the question, we know that you will get mugged "if there is a subset of your banknotes that sums to m ".

Let isSubSetSum(int set[], int n, int sum) be the function to find whether there is a subset of set[] with sum equal to sum. n is the number of elements in set[].

The isSubsetSum problem can be divided into two subproblems

(a) Include the last element, recur for n = n-1, sum = sum – set[n-1]

(b) Exclude the last element, recur for n = n-1.

```
#include <bits/stdc++.h>
using namespace std;
int arr[100];
bool isSubsetSum(int set[], int n, int sum) {
if (sum == 0)
return true;
if (n == 0 && sum != 0)
return false;
if (set[n - 1] > sum)
return isSubsetSum(set, n - 1, sum);
return isSubsetSum(set, n - 1, sum) || isSubsetSum(set, n - 1, sum - set[n - 1]);
}
int main() {
int t;
cin >> t;
while (t--) {
int n, sum;
cin >> n >> sum;
for (int k = 0; k < n; k++) cin >> arr[k];
if (isSubsetSum(arr, n, sum))
printf("Yes\n");
else
printf("No\n");
}
return 0;
}
```

**TEST CASE:**

1

15 5042

726

505

299

293

686

184

656

372

708

836

498

247

704

469

648

**EXPECTED OUTPUT:**

Yes

**YOUR OUTPUT:**

NO