Cod sursa(job #681393)

Utilizator aliveLechintan Adrian alive Data 17 februarie 2012 00:01:31
Problema Subsir crescator maximal Scor 100
Compilator fpc Status done
Runda Arhiva educationala Marime 0.73 kb
var
 v,a,x,c:array[1..100000] of longint;
 f,g:text;
 ok:boolean;
 n,i,j,lmax:longint;
begin
assign(f,'scmax.in');assign(g,'scmax.out');
reset(f);rewrite(g);
read(f,n);
lmax:=0;
for i:=1 to n do
  begin
  read(f,v[i]);
  ok:=true; j:=1;
  while (j<=lmax) and (ok=true) do
    begin
    if v[i]<=x[j] then
      begin
      x[j]:=v[i];
      ok:=false;
      a[i]:=j;
      end;
    inc(j);
    end;
  if ok then
    begin
    inc(lmax);
    x[lmax]:=v[i];
    a[i]:=lmax;
    end;
  end;

j:=lmax; i:=n;
while lmax<>0 do
  begin
  if a[i]=lmax then
    begin
    c[lmax]:=v[i];
    dec(lmax);
    end;
  dec(i);
  end;

writeln(g,j);
for i:=1 to j do
 write(g,c[i],' ');
close(f);close(g);
end.