Cod sursa(job #567231)

Utilizator oancea_horatiuOancea Horatiu oancea_horatiu Data 29 martie 2011 21:14:16
Problema Subsir crescator maximal Scor 70
Compilator fpc Status done
Runda Arhiva educationala Marime 0.92 kb
program scmax;
type sir=array[0..100001] of longint;
     siruletz=array[0..100001] of longword;
var a:sir;
    next,x:siruletz;
    i,j,n,maxt,max,maxi:longword;
    d,o:text;
procedure citire;
begin
  readln(d,n);
  for i:=1 to n do read(d,a[i]);
  close(d);
end;
procedure smaxi;
begin
  max:=0;
  for j:=i+1 to n do
    if (a[j]>a[i])and(x[j]>max) then
      begin
        max:=x[j];
        next[i]:=j;
      end;
end;
procedure afisare;
begin
  writeln(o,maxt);
  i:=maxi;
  repeat
      write(o,a[i],' ');
      i:=next[i];
  until next[i]=0;
  write(o,a[i],' ');
end;
begin
assign(d,'scmax.in');assign(o,'scmax.out');
reset(d);rewrite(o);
citire;
x[n]:=1;
maxt:=1;
for i:=n-1 downto 1 do
  begin
    smaxi;
    x[i]:=max+1;
    if x[i]>maxt then begin
                        maxi:=i;
                        maxt:=x[i];
                      end;
  end;
afisare;
close(o);
end.