Cod sursa(job #844879)

Utilizator RusuAlexeiRusu Alexei RusuAlexei Data 29 decembrie 2012 21:43:35
Problema Subsir crescator maximal Scor 100
Compilator fpc Status done
Runda Arhiva educationala Marime 0.79 kb
program subsir_crescator_maxim;
  var f1,f2:text;
      n,lmax,i,pmax:longint;
      a,l,min,d,p:array [0..100000] of longint;
procedure scrie(x:longint);
  begin
    if x<>0 then
      begin
        scrie(d[x]);
        write(f2,a[x],' ');
      end;
  end;
begin
  assign(f1,'scmax.in');
  reset(f1);
  assign(f2,'scmax.out');
  rewrite(f2);
  readln(f1,n);
  for i:=1 to n do read(f1,a[i]);
  for i:=1 to n do min[i]:=2000000001;
  for i:=1 to n do
    begin
      l[i]:=lmax;
      while (min[l[i]]>=a[i]) and (l[i]>0) do dec(l[i]);
      d[i]:=p[l[i]];
      inc(l[i]);
      if l[i]>lmax then begin lmax:=l[i]; pmax:=i; end;
      if a[i]<min[l[i]] then begin min[l[i]]:=a[i]; p[l[i]]:=i; end;
    end;
  writeln(f2,lmax);
  scrie(pmax);
  close(f1);
  close(f2);
end.