Cod sursa(job #1111939)

Utilizator sataSata Balint sata Data 19 februarie 2014 11:46:24
Problema Subsir crescator maximal Scor 70
Compilator fpc Status done
Runda Arhiva educationala Marime 1.21 kb
program fel;
uses crt;
type vektor=array[1..100000]of longint;
var
v,hosz,os:vektor;
n,i,j,maximum:longint;
f,g:text;
function max(a,b:longint):longint;
  begin
   if a>b then max:=a
   else max:=b;
  end;
procedure beolvas(var v:vektor);
begin
 assign(f,'scmax.in');
 reset(f);
 readln(f,n);
 for i:=1 to n do
  begin
   read(f,v[i]);
  end;
 close(f);
end;
procedure kiir(i:longint);
var j:longint;
begin
 assign(g,'scmax.out');
 rewrite(g);
 writeln(g,hosz[i]);
 for j:=1 to hosz[i] do
  begin
   write(g,v[i],' ');
   i:= os[i];
  end;
 close(g);
end;
{fooooo}
begin
 beolvas(v);
 hosz[n]:=1;
 os[n]:=0;
 for i:=n-1 downto 1 do
  begin
   maximum:=0;
   for j:=i+1 to n do
    begin
      if v[i]<v[j] then  begin if hosz[j]>maximum then begin
                                                        os[i]:=j;
                                                        maximum:=hosz[j];
                                                       end;
                                hosz[i]:=maximum+1;
                          end;
    end;
   if hosz[i]=0 then begin hosz[i]:=1; os[i]:=0; end;
  end;

  i:=1;
 for j:=2 to n do
  if hosz[j]>hosz[i] then i:=j;
 kiir(i);
end.