【问题描述】
最近,afy决定给TOJ印刷广告,广告牌是刷在城市的建筑物上的,城市里有紧靠着的N个建筑。afy决定在上面找一块尽可能大的矩形放置广告牌。我们假设每个建筑物都有一个高度,从左到右给出每个建筑物的高度H1,H2…HN,且0<Hi<=1,000,000,000,并且我们假设每个建筑物的宽度均为1。要求输出广告牌的最大面积。
【输入文件】
中的第一行是一个数n (n<= 400,000 )
第二行是n个数,分别表示每个建筑物高度H1,H2…HN,且0<Hi<=1,000,000,000。
【输出文件】
输出文件 ad.out 中一共有一行,表示广告牌的最大面积。
【输入样例】
6
5 8 4 4 8 4
【输出样例】
24
var
h,left,right,p,q:array[0..400000] of longint;
i,n,start,over,max:longint;
begin
readln(n);
for i:=1 to n do read(h[i]);
start:=1;
for i:=1 to n do begin
while (over>=start) and (h[i]<=h[p[over]]) do dec(over);
inc(over);
p[over]:=i;
left[i]:=p[over]-p[over-1];
end;
start:=0;over:=0;
f