[ad_1]
import java.io.*;
import java.util.*;
class GFG {
static int min = Integer.MAX_VALUE;
static void subset(Listing<Integer> arr,
int index,
int sum, int whole)
{
if (index >= arr.measurement()) {
if (sum != 0)
min = Math.min(min,
sum - (whole - sum));
return;
}
subset(arr, index + 1,
sum + arr.get(index), whole);
subset(arr, index + 1, sum, whole);
}
static void print(int index, int arr[],
int whole,
Listing<Integer> ans)
{
if (whole == 0) {
int sum = 0;
for (int parts : ans) {
sum += parts;
}
subset(ans, 0, 0, sum);
return;
}
if (index >= arr.size) {
return;
}
ans.add(arr[index]);
print(index + 1, arr, whole - 1, ans);
ans.take away(ans.measurement() - 1);
print(index + 1, arr, whole, ans);
}
public static void clear up(int arr[], int N)
{
int chosen = arr.size - N;
if (chosen <= 1) {
System.out.println(-1);
return;
}
Listing<Integer> ans = new ArrayList<>();
print(0, arr, chosen, ans);
}
public static void most important(String[] args)
{
int arr[] = { 7, 9, 5, 8, 1, 3 };
int N = 2;
clear up(arr, N);
System.out.println(min);
}
}
[ad_2]