from sys import prefix from itertools import accumulate N = int(input()) arr = list(map(int, input().split())) + [0] res = 0 stack_index = [] prefix_sum = [0] for i , v in enumerate(arr): while stack_index and arr[stack_index[-1]] > v: idx = stack_index.pop() mmin = arr[idx] #积累的就是prefix_sum[i] #TODO 弹出的prefix_sum[i] 如果更小 accumulate = prefix_sum[i] if not stack_index else prefix_sum[i] - prefix_sum[stack_index[-1] + 1] res = max(res,mmin * accumulate) stack_index.append(i) prefix_sum.append(prefix_sum[-1] + v) print(res)