Question: 
Write a function to find the maximum product formed by multiplying numbers of an increasing subsequence of that array.


Model's Code:
def max_product(arr, n):
    if n == 0:
        return 0

    max_product_array = [0] * n
    max_product_array[0] = arr[0]

    for i in range(1, n):
        max_product_array[i] = arr[i]
        for j in range(i):
            if arr[j] < arr[i]:
                max_product_array[i] = max(max_product_array[i], max_product_array[j] * arr[i])

    return max(max_product_array)



Sample Correct Code:
def max_product(arr, n ): 
	mpis =[0] * (n) 
	for i in range(n): 
		mpis[i] = arr[i] 
	for i in range(1, n): 
		for j in range(i): 
			if (arr[i] > arr[j] and
					mpis[i] < (mpis[j] * arr[i])): 
						mpis[i] = mpis[j] * arr[i] 
	return max(mpis)


Asserts:
assert max_product([3, 100, 4, 5, 150, 6], 6) == 45000 
assert max_product([4, 42, 55, 68, 80], 5) == 50265600
assert max_product([10, 22, 9, 33, 21, 50, 41, 60], 8) == 21780000 


Tests:
Test 1 of 3: PASS
Test 2 of 3: PASS
Test 3 of 3: PASS

Test 468 of 974: 343/468 (73.29059829059828%): success