Cod sursa(job #559824)

Utilizator killerkaliKovacs Levente killerkali Data 18 martie 2011 09:51:17
Problema Subsir crescator maximal Scor 70
Compilator fpc Status done
Runda Arhiva educationala Marime 0.94 kb
uses crt;

type rekord=record
       a,c:longint;
     end;
    vektor=array[1..500000] of rekord;
    vektor1=array[1..500000] of longint;
var v:vektor;
    i,j,n,max,b,h,db,db1:longint;
     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
    max:=v1[i];
h:=max;
db1:=1;
for i:= 1 to n do
  if (v[i].a=h) and (v2[db1]<v[i].c)
   then
    begin

     v2[db1]:=v[i].c;
     dec(h);
     inc(db1);
    end;
assign(g,'scmax.out');
rewrite(g);
writeln(g,max);
dec(db1);
for i:= 1 to db1 do
 write(g,v2[i],' ');
close(g);
readln;
end.