Cod sursa(job #805033)
Utilizator | Data | 30 octombrie 2012 20:35:51 | |
---|---|---|---|
Problema | Subsir crescator maximal | Scor | 0 |
Compilator | fpc | Status | done |
Runda | Arhiva educationala | Marime | 1.25 kb |
program secv;
type vector=array[1..20] of integer;
var a,l,u:vector;
n,i,j,ind,max,imax:integer;
procedure citire(var a:vector; var n:integer);
var i:integer;
begin
write('n=');
readln(n);
for i:=1 to n do
read(a[i]);
end;
Begin
citire(a,n);
l[n]:=1;
u[n]:=0;
for i:=n-1 downto 1 do
begin
max:=0; imax:=0;
for j:=i+1 to n do
if (l[j]>max) and (a[i]<=a[j]) then
begin
max:=l[j];
imax:=j;
end;
l[i]:=1+max;
u[i]:=imax;
end;
max:=l[1];
imax:=1;
for j:=2 to n do
if l[j]>max then
begin
max:=l[j];
imax:=j;
end;
writeln(max);
repeat
write(a[imax],' ');
imax:=u[imax];
until imax=0;
end.