NKTREE - Cây nhị phân tìm kiếm
Tác giả: ll931110
Ngôn ngữ: Pascal
{$MODE DELPHI}
program NKTREE;
const
input = '';
maxn = 50000;
maxv = (1 shl 31) - 1;
var
a: array[1..maxn] of integer;
inf,sup: integer;
n: integer;
procedure init;
var
f: text;
i,x: integer;
begin
assign(f, input);
reset(f);
n := 0;
while not seekeoln(f) do
begin
inc(n);
read(f, x);
a[n] := x;
end;
close(f);
inf := -maxv;
sup := maxv;
end;
function check: boolean;
var
i: integer;
begin
if n = 1 then exit(true);
if a[2] > a[1] then inf := a[1] else sup := a[1];
for i := 3 to n do
begin
if (a[i] < inf) or (a[i] > sup) then exit(false);
if a[i] < a[i - 1] then sup := a[i - 1] else inf := a[i - 1];
end;
check := true;
end;
begin
init;
if check then writeln('YES') else writeln('NO');
end.