import java.util.*;
class Solution {
private static int count = 0;
public int solution(int[] numbers, int target) {
solve(numbers, 0, new ArrayList<>(), target);
return count;
}
private static void solve(int[] numbers, int depth,List<Integer> box, int target){
if(depth == numbers.length){
int sum = 0;
for(int v : box){
sum += v;
}
if(sum == target){
++count;
}
return;
}
box.add(numbers[depth]);
solve(numbers, depth + 1, box, target);
box.remove(box.size() - 1);
box.add(numbers[depth] * -1);
solve(numbers, depth + 1, box, target);
box.remove(box.size() - 1);
}
}