Fourth program(Java)
import java.util.*;
public class Fourth {
public static void main(String[] args) {
int[] nums = { 3, 5, 3, 100, 4, 1, 83, 54, 23, 20 };
List<Integer> list = new ArrayList<>();
List<Integer> list2 = new ArrayList<>();
boolean[] visited = new boolean[nums.length];
int sum = 0;
for (int i = 0; i < nums.length; i++)
sum = sum + nums[i];
func(nums.length - 1, sum / 2, nums, visited, list);
for (int i = 0; i < visited.length; i++)
if (!visited[i])
list2.add(nums[i]);
// Answer
System.out.println(list);
System.out.println(list2);
}
private static boolean func(int index, int sum, int[] nums, boolean[] visited, List<Integer> list) {
if (sum == 0) {
return true;
}
if (sum < 0 || index < 0) {
return false;
}
// pick
list.add(nums[index]);
visited[index] = true;
if (func(index - 1, sum - nums[index], nums, visited, list)) {
return true;
}
// not pick
list.remove(list.size() - 1);
visited[index] = false;
return func(index - 1, sum, nums, visited, list);
}
}