, . , n, arr ( , 1). A B, arr A B , . arr A, B. , (, i- ) A, -a[i], B, a[i]. , , 0, . n ( ). arr = {10,20,30,40}. .
set_1 = {10,-10}
set_2 = {30,-10,10,-30}
set_3 = {60,0,20,-40,-20,-60}
set_4 = {100,20,40,-40,60,-20,-80,0,-60,-100}
, - 0 , , i- a[i] a[i] -a[i], .. Team A B.
. , n set_1 set_n. list_A, , A list_B. set_n, , , current_set, n. 0 , , current_element, 0. ( , 1 n , , ). , 0 , .. .
sets = [ [0], #see this dummy set it is important, this is set_0
[10,-10],
[30,-10,10,-30],
[60,0,20,-40,-20,-60],
[100,20,40,-40,60,-20,-80,0,-60,-100]]
arr = [0,10,20,30,40]
list_A = []
list_B = []
current_element = 0
current_set = 4 # Total number of sets in this case is n=4
while current_set >= 1:
print current_set,current_element
for element in sets[current_set-1]:
if element + arr[current_set] == current_element:
list_B.append(arr[current_set])
current_element = element
current_set -= 1
break
elif element - arr[current_set] == current_element:
list_A.append(arr[current_set])
current_element = element
current_set -= 1
break
print list_A,list_B