nums = [0,3,7,12,14,1,4]
n = len(nums) - 1
t = 9
a = [None] * (n + 1)
for i in range(n+1):
a[i] = [None] * (t + 1)
for j in range(t+1):
a[i][j] = 0
for i in range(1,n+1):
for j in range(1,t+1):
if nums[i] > j:
a[i][j] = a[i-1][j]
else:
a[i][j] = max(a[i-1][j], nums[i] + a[i-1][max(j-nums[i], 0)])
for i in range(len(a)-1, -1,-1):
print(a[i])
print('------')
for i in range(0, len(a)):
print(a[i])
print('------')
print(a[n][t] == t)
myset = []
for x in range(len(nums) - 1, 0, -1):
if (a[n - 1][max(t - nums[x],0)]) == t - nums[x]:
myset.append(nums[x])
t -= nums[x]
n -= 1
print(myset)