OneCompiler

Fourth program(Java)

156

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);
    }

}