Cod sursa(job #680376)

Utilizator andreifirstCioara Andrei Ioan andreifirst Data 15 februarie 2012 15:16:02
Problema Cerere Scor 0
Compilator fpc Status done
Runda Arhiva de probleme Marime 0.89 kb
var v, best, pre:array [1.. 100000] of longint;
    i, j, n, m, max, maxi, max2, maxi2, ri:longint;
    f, g:text;
    r:array [1..100000] of longint;
    buf1, buf2:array [1.. 1 shl 17] of char;

begin
assign (f, 'scmax.in'); settextbuf (f, buf1); reset (f);
assign (g, 'scmax.out'); settextbuf (g, buf2); rewrite (g);

read (f, n); for i := 1 to n do read (f, v[i]);

best[1]:=1;

for i := 2 to n do
  begin
  max:=0; maxi:=0;
  for j := i-1 downto 1 do
    begin

    if v[i]>v[j] then
      begin
      if best[j]>max then begin max := best[j]; maxi := j; end;
      end;
    end;
  best[i] := max+1; pre[i]:=maxi;
  if best[i]> max2 then begin max2:=best[i]; maxi2:=i; end;
  end;

writeln (g, max2);
i:=maxi2;
while i <> 0 do
  begin
  inc (ri); r[ri]:=v[i];
  i:=pre[i];
  end;

for i := ri downto 1 do write (g, r[i], ' ');

close (f); close (g);
end.