奶牛排队 (Standard IO)

题意/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.



原文地址:https://www.cnblogs.com/zyx-crying/p/9319640.html