奶牛在熊大妈的带领下排成了一条直队。
显然,不同的奶牛身高不一定相同。。。。。
现在,奶牛们想知道,如果找出一些连续的奶牛,要求最左边的奶牛A是最矮的,最右边的B是最高的,且B高于A奶牛,中间如果存在奶牛,则身高不能和A,B奶牛相同。问这样的奶牛最多会有多少头?
显然,不同的奶牛身高不一定相同。。。。。
现在,奶牛们想知道,如果找出一些连续的奶牛,要求最左边的奶牛A是最矮的,最右边的B是最高的,且B高于A奶牛,中间如果存在奶牛,则身高不能和A,B奶牛相同。问这样的奶牛最多会有多少头?
从左到右给出奶牛的身高,请告诉它们符合条件的最多的奶牛数(答案可能是0,2,但不会是1)。
题解:
从后往前搜,枚举区间,满足则加,不满足Break。
代码:
var
a:array[0..1000000] of longint;
n,i,j,k,ans,max:longint;
temp:boolean;
begin
readln(n);
for i:=1 to n do
readln(a[i]);
for i:=n downto 1 do
for j:=i-1 downto 1 do
begin
if a[j]>a[i] then
break;
temp:=true;
for k:=j+1 to i-1 do
if (a[k]<=a[j])or(a[k]>=a[i])then
begin
temp:=false;
break;
end;
if temp then
begin
if max<i-j+1 then max:=i-j+1;
if max=n then
begin
writeln(n);
exit;
end;
end;
end;
writeln(max);
end.