/* 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 Set<List<Integer>> subsets(Set<List<Integer>> result, ArrayList<Integer> curr, int[] nums, int idx) {
result.add((List<Integer>)curr.clone());
if(idx < nums.length){
subsets(result, curr, nums, idx + 1);
final ArrayList<Integer> next = (ArrayList<Integer>) curr.clone();
next.add(nums[idx]);
subsets(result, next, nums, idx + 1);
}
return result;
}
public static void main
(String[] args
){ int[] x = {1,2};
System.
out.
println(subsets
(new HashSet
<>(),
new ArrayList
<>(), x,
0)); }
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgovKiBOYW1lIG9mIHRoZSBjbGFzcyBoYXMgdG8gYmUgIk1haW4iIG9ubHkgaWYgdGhlIGNsYXNzIGlzIHB1YmxpYy4gKi8KY2xhc3MgSWRlb25lCnsKCXB1YmxpYyBzdGF0aWMgU2V0PExpc3Q8SW50ZWdlcj4+IHN1YnNldHMoU2V0PExpc3Q8SW50ZWdlcj4+IHJlc3VsdCwgQXJyYXlMaXN0PEludGVnZXI+IGN1cnIsIGludFtdIG51bXMsIGludCBpZHgpIHsKICAgIHJlc3VsdC5hZGQoKExpc3Q8SW50ZWdlcj4pY3Vyci5jbG9uZSgpKTsKICAgIGlmKGlkeCA8IG51bXMubGVuZ3RoKXsKICAgICAgICAgc3Vic2V0cyhyZXN1bHQsIGN1cnIsIG51bXMsIGlkeCArIDEpOwogICAgICAgICBmaW5hbCBBcnJheUxpc3Q8SW50ZWdlcj4gbmV4dCA9IChBcnJheUxpc3Q8SW50ZWdlcj4pIGN1cnIuY2xvbmUoKTsKICAgICAgICAgbmV4dC5hZGQobnVtc1tpZHhdKTsKICAgICAgICAgc3Vic2V0cyhyZXN1bHQsIG5leHQsIG51bXMsIGlkeCArIDEpOwogICAgfQogICAgcmV0dXJuIHJlc3VsdDsKfQpwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKXsKICAgIGludFtdIHggPSB7MSwyfTsKICAgIFN5c3RlbS5vdXQucHJpbnRsbihzdWJzZXRzKG5ldyBIYXNoU2V0PD4oKSwgbmV3IEFycmF5TGlzdDw+KCksIHgsIDApKTsKfQp9