@@ -28,36 +28,51 @@ def find_subset(weight, req_sum):
2828 else :
2929 dp_array [i ][j ]= dp_array [i - 1 ][j ]
3030
31-  print ("Subset for sum" ,req_sum ,' :' )
32- 3331 #Find out which Numbers should be in the subset 
3432 #give from index 0 
3533 row -= 1 
3634 col -= 1 
35+  sum_subset = []
36+ 37+  #check if the Subset is possible : if not, return None 
38+  if  dp_array [row ][col ] !=  req_sum  :
39+  return  None 
40+ 41+  #get the subset 
3742 while  col >= 0  and  row >= 0  and  req_sum > 0 :
3843 #First Row 
3944 if (row == 0 ):
40-  print (weight [row ])
45+  sum_subset . append (weight [row ])
4146 break 
4247
4348 #Bottom-Right most ele 
4449 if (dp_array [row ][col ]!= dp_array [row - 1 ][col ]):
4550 # print(req_sum,' : ',dp_array[row][col],dp_array[row-1][col],' : ',weight[row]) 
46-  print (weight [row ])
51+  sum_subset . append (weight [row ])
4752 req_sum -= weight [row ]
4853 col -= weight [row ]
4954 row -= 1 
5055 else :
5156 row -= 1 
5257
58+  return  sum_subset 
59+ 60+ 5361#main 
5462if  __name__ == "__main__" :
5563 array = list (map (int ,input ().split ()))
5664 req_sum = int (input ())
5765
5866 #Sort by ascending order 
5967 array .sort ()
60-  find_subset (array ,req_sum )
68+  sum_subset  =  find_subset (array ,req_sum )
69+ 70+  #If Sum is not possible 
71+  if  sum_subset  is  None  :
72+  print ("Sum :" ,req_sum ,"is not possible" )
73+  else :
74+  print ("Subset for sum" ,req_sum ,' :' )
75+  print (' ' .join (str (x ) for  x  in  sum_subset ))
6176
6277""" 
6378Input Explanation : 
@@ -70,8 +85,7 @@ def find_subset(weight, req_sum):
7085
7186Output : 
7287Subset for sum 13 : 
73- 8 
74- 5 
88+ 8 5 
7589
7690""" 
7791
0 commit comments