题意/Description:
奶牛在熊大妈的带领下排成了一条直队。
显然,不同的奶牛身高不一定相同。。。。。
现在,奶牛们想知道,如果找出一些连续的奶牛,要求最左边的奶牛A是最矮的,最右边的B是最高的,且B高于A奶牛,中间如果存在奶牛,则身高不能和A,B奶牛相同。问这样的奶牛最多会有多少头?
从左到右给出奶牛的身高,请告诉它们符合条件的最多的奶牛数(答案可能是0,2,但不会是1)。
读入/Input:
第一行一个数N(2<=N<=100000),表示奶牛的头数。
接下来N个数,每行一个数,从上到下表示从左边到右奶牛的身高(1<=身高<=maxlongint)。
输出/Output:
第一行,表示最多奶牛数。
题解/solution:
就是一个优美的暴力。
代码/Code:
var
n,maxx:longint;
a:array [0..100001] of longint;
procedure init;
var
i:longint;
begin
readln(n);
for i:=1 to n do
readln(a[i]);
maxx:=0;
end;
function max(o,p:longint):longint;
begin
if o>p then exit(o);
exit(p);
end;
procedure main;
var
i,j,k:longint;
bo:boolean;
begin
for i:=n downto 1 do
begin
for j:=i-1 downto 1 do
begin
if a[i]<=a[j] then break;
bo:=true;
for k:=j+1 to i-1 do
if (a[k]<=a[j]) or (a[k]>=a[i]) then
begin
bo:=false;
break;
end;
if bo then
begin
maxx:=max(maxx,i-j+1);
if maxx=n then
begin
write(n);
exit;
end;
end;
end;
end;
write(maxx);
end;
begin
init;
main;
end.