def resolv_dym(numlist, target): f = [[0, []] for i in xrange(0, target + 1)] for c, w in numlist: for v in xrange(target, c – 1, -1): if f[v - c][0] + w > f[v][0]: f[v][0] = f[v - c][0] + w f[v][1] = f[v - c][1] + [(c, w),] return f[target][1], float(abs(target – f[target][0])) #//python/7201