/* package whatever; // don't place package name! */
import java.util.*;
import java.lang.*;
import java.io.*;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
public static void main
(String[] args
) {
int[] arr={9,1,7,13,3};
int i = 0;
int res = SubsetSum(arr, 22, 0, 0);
while (res > 0) {
if ((res & 1) > 0)
i++;
res >>= 1;
}
}
public static int SubsetSum(int[] arr, int sum, int index, int used){
if(sum==0)
return used;
if(sum<0 | index>=arr.length)
return 0;
int a = SubsetSum(arr,sum,index+1, used);
int b = SubsetSum(arr,sum-arr[index],index+1, used | (1 << index));
if (a > 0)
return a;
else
return b;
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgovKiBOYW1lIG9mIHRoZSBjbGFzcyBoYXMgdG8gYmUgIk1haW4iIG9ubHkgaWYgdGhlIGNsYXNzIGlzIHB1YmxpYy4gKi8KY2xhc3MgSWRlb25lCnsKICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB7CgogICAgaW50W10gYXJyPXs5LDEsNywxMywzfTsKICAgIGludCBpID0gMDsKICAgIGludCByZXMgPSBTdWJzZXRTdW0oYXJyLCAyMiwgMCwgMCk7CiAgICB3aGlsZSAocmVzID4gMCkgewogICAgCWlmICgocmVzICYgMSkgPiAwKSAKICAgIAkgICAgU3lzdGVtLm91dC5wcmludGxuKGkpOwogICAgCWkrKzsKICAgIAlyZXMgPj49IDE7CiAgICB9CSAgICAKfSAgIAoKcHVibGljIHN0YXRpYyBpbnQgU3Vic2V0U3VtKGludFtdIGFyciwgaW50IHN1bSwgaW50IGluZGV4LCBpbnQgdXNlZCl7CiAgICBpZihzdW09PTApCiAgICAgICAgcmV0dXJuIHVzZWQ7CiAgICBpZihzdW08MCB8IGluZGV4Pj1hcnIubGVuZ3RoKQogICAgICAgIHJldHVybiAwOwogICAgICAgaW50IGEgPSBTdWJzZXRTdW0oYXJyLHN1bSxpbmRleCsxLCB1c2VkKTsKICAgICAgIGludCBiID0gU3Vic2V0U3VtKGFycixzdW0tYXJyW2luZGV4XSxpbmRleCsxLCB1c2VkIHwgKDEgPDwgaW5kZXgpKTsKICAgICAgIGlmIChhID4gMCkKICAgICAgICAgIHJldHVybiBhOwogICAgICAgZWxzZQogICAgICAgICAgcmV0dXJuIGI7Cn0gIAp9