泽泽在英国
题目描述
泽泽用了100000000000000000000 mod 10天的时间爬出了长城。长城的另一端是一条隧道,泽泽走了进去……
泽泽不小心又到了英国。英国多雨,基本上隔2天就要下一场雨。泽泽人品不好,到这里的时候天正在下酸雨。
酸雨会腐蚀建筑物,让那些建筑物显得很难看。英国有家工厂免费为一条街道的建筑物的墙面涂油漆。心肠虽好,但是由于技术问题,他们只能涂出一个矩形。现在由于酸雨事态严重,街道办主任下命令涂出面积最大的矩形。
街道上的建筑物高度参差不齐,那该怎么办呢?
他们想到了泽泽。
泽泽接到了这个任务,就去测量了这个街道上的所有建筑物的高度。
请根据泽泽的数据,计算出最大面积。
输入格式:
第1行1个整数n。表示有几幢楼。
之后的一行有n个整数,表示第几幢楼的高度,最高的楼的高度为m。
输出格式:
一个整数,制作防护板的最大面积。
样例输入:
20
5 3 7 4 8 9 2 4 5 5 5 4 4 4 8 7 4 4 5 10
样例输出:
52
数据范围:
对于30%的数据,n<=100,m<=20
对于100%的数据,n<=100000,m<=50
时间限制:
1000
空间限制:
65536
首先看到这道题,明显注意到这应该是一个单调栈题目。
但是,我们充分发挥人类智慧,注意到 m\le 50 ,于是聪明的我们可以想到,只需要循环枚举,最低的建筑到最高的建筑,每枚举一个高度 i,就再开一个循环,看看连续的不比 i 低的建筑最多是多少,然后与 i 相乘即可。得到了这么多的结果,找到最大值就完成了。这样速度快的飞起,完全可以在 30ms 里卡过。