Cod sursa(job #718469)
Utilizator | Data | 20 martie 2012 20:27:30 | |
---|---|---|---|
Problema | Subsir crescator maximal | Scor | 10 |
Compilator | fpc | Status | done |
Runda | Arhiva educationala | Marime | 1.51 kb |
var i,j,poz,n,max:integer;
t,l:array[1..100000] of integer;
procedure citire;
var f:text;
begin
assign(f,'scmax.in');
reset(f);
readln(f,n);
for i:=1 to n do
read(f,t[i])
end;
procedure sir;
begin
l[n]:=1;
for i:=n-1 downto 1 do
begin
max:=0;
for j:=i+1 to n do
if (t[i]<t[j]) and (l[j]>max) then
begin
max:=l[j];
l[i]:=max+1;
end;
end;
max:=0;
for i:=1 to n do
if l[i]>max then
begin
max:=l[i];
poz:=i;
end;
end;
procedure scrie;
var f:text;
begin
assign(f,'scmax.out');
rewrite(f);
writeln(f,max);
write(f,t[poz],' ');
for i:=poz to n do
if (t[i]>t[poz]) and (l[i]=max-1)
then begin
write(f,t[i],' ');
dec(max);
end;
close(f);
end;
begin
citire;
sir;
scrie;
readln
end.