answer = 0
def dfs(numbers, target, idx, total):
global answer
if idx == len(numbers):
if target == total:
answer += 1
return
dfs(numbers, target, idx+1, total+numbers[idx])
dfs(numbers, target, idx+1, total-numbers[idx])
# def graph(numbers):
# graph = [[] for _ in range(len(numbers)+1)]
# for i in range(len(numbers)):
# graph[i+1].append(+numbers[i])
# graph[i+1].append(-numbers[i])
# return graph
def solution(numbers, target):
global answer
dfs(numbers, target, 0, 0)
return answer