def maxProduct(nums): if not nums: return 0 # 初始化最大值、最小值和结果 max_dp = min_dp = result = nums[0] for i in range(1, len(nums)): # 如果当前数是负数,交换最大值和最小值 if nums[i] < 0: max_dp, min_dp = min_dp, max_dp # 更新最大值和最小值 max_dp = max(nums[i], max_dp * nums[i]) min_dp = min(nums[i], min_dp * nums[i]) # 更新结果 result = max(result, max_dp) return result # 输入处理 n = int(input()) nums = list(map(int, input().split())) # 输出结果 print(maxProduct(nums))