题目描述
一排 根紧挨着的柱子,第 根宽为 、高为 。在这批柱子上框一个矩形:矩形的底必须落在连续的若干根柱子上,高不能超过这段里最矮的那根柱子。求矩形面积的最大值。
入栈时维持柱高递增;一旦来了一根更矮的,就不断结算:弹出每根柱子时,它的高度能向左右延伸到哪里已经确定——左边界是弹出后新栈顶的位置,右边界就是当前这根更矮的柱子。末尾补一根高度为 的哨兵柱,把栈里剩余的柱子全部逼出来结算。
输入格式
第一行一个整数 ()。
第二行 个整数 ()。
输出格式
一行一个整数:最大矩形面积。
样例
输入:
6
2 1 5 6 2 3
输出:
10
高 5、6 两根并排,矩形高取较矮的 5、宽为 2,面积 最大。
数据范围
,。面积最大可达 ,超出 int——请用 long long;结算宽度时左右边界都是不含的开区间端点,差一就错。