------
## 最终结论
```python
def max_product(arr, n):
    if n == 0:
        return 0
    
    # Initialize an array to store the maximum product for each element
    max_prod = [0] * n
    
    # Initialize the maximum product as the elements themselves
    for i in range(n):
        max_prod[i] = arr[i]
    
    # Calculate maximum product for increasing subsequence
    for i in range(1, n):
        for j in range(i):
            if arr[i] > arr[j]:
                max_prod[i] = max(max_prod[i], max_prod[j] * arr[i])
    
    # Return the maximum product found
    return max(max_prod)

# Test cases
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 
```