#1 hades@2009-02-25 00:17:00
10427
回复
删除
program fg;
var
F:ARRAY[1..100000] OF longint;
i,j,k,m,n,l,r,t:longint;
a:longint;
procedure find;
var
mid:longint;
begin
while l<=r do
begin
mid:=(l+r) shr 1;
if f[mid]=a then begin
l:=mid;exit;
end else
if f[mid]>a then l:=mid+1 else r:=mid-1;
end;
end;
begin
readln(n);
for i:=1 to n do
begin
read(a);
if a=0 then continue;
l:=1;r:=t;
find;
if l<=t then f[l]:=a else
begin
inc(t);
f[t]:=a;
end;
end;
writeln(t);
end.
把自己的程序晾一下