INT_MIN = 0 def cutRod(price, n): # Initialisation tables de cache val = [0 for x in range(n+1)] val[0] = 0 for i in range(1, n+1): max_val = INT_MIN for j in range(i): max_val = max(max_val, price[j] + val[i-j-1]) val[i] = max_val return val[n] if __name__=="__main__": arr = [1, 5, 8, 9, 10, 17, 17, 20] size = len(arr) print("Valeur maximum de découpe " + str(cutRod(arr, size)))