Cod sursa(job #559803)

Utilizator killerkaliKovacs Levente killerkali Data 18 martie 2011 09:15:56
Problema Subsir crescator maximal Scor 0
Compilator fpc Status done
Runda Arhiva educationala Marime 1.07 kb
uses crt;

type rekord=record
       a,c:integer;
     end;
    vektor=array[1..1000] of rekord;
    vektor1=array[1..1000] of integer;
var v:vektor;
    i,j,n,max,b,h,db,db1:integer;
     g,f:text;
    v1,v2:vektor1;
begin
clrscr;
assign(f,'scmax.in');
reset(f);
readln(f,n);
for i:= 1 to n do
 read(f,v[i].c);
close(f);
v[n].a:=1;
b:=n-1;
db:=1;
v1[db]:=1;
for i:= b downto 1 do
 begin
  max:=0;
  for j:=i to n do
   if v[i].c<v[j].c
    then
     if max<v[j].a
      then
       max:=v[j].a;
  v[i].a:=max+1;
  inc(db);
  v1[db]:=max+1;
  end;
max:=v1[1];
db1:=0;
for i:= 2 to db do
  if v1[i]>max
   then
    begin
    max:=v1[i];
    v2[1]:=i;
    end;
for i:= 1 to n do
 if v[i].a=max
  then
   begin
   inc(db1);
   v2[db1]:=v[i].c;
   end;
h:=max;
db1:=1;
repeat
dec(h);
for i:= 1 to n do
  if (v[i].a=h) and (v2[db1]<v[i].c)
   then
    begin
     inc(db1);
     v2[db1]:=v[i].c;
    end;
until h=1;
assign(g,'scmax.out');
rewrite(g);
writeln(g,max);
for i:= 1 to db1 do
 write(g,v2[i],' ');
close(g);
readln;
end.