Cod sursa(job #470617)

Utilizator lianaliana tucar liana Data 14 iulie 2010 21:23:01
Problema Subsir crescator maximal Scor 70
Compilator fpc Status done
Runda Arhiva educationala Marime 0.95 kb
program scmax;
var f, g:text;
    pozmax, i, n, j, max:longint;
    lg, v, poz:array[1..100000] of longint;

procedure citire;
  begin
    readln(f,n);
    for i:=1 to n do
      read(f,v[i]);
  end;

procedure reconstituire;
  begin
    while poz[pozmax]<>0 do
      begin
        write(g,v[pozmax],' ');
        pozmax:=poz[pozmax];
      end;
    writeln(g);
  end;

procedure rezolvare;
  begin
    n:=n+1;
    v[n]:=maxlongint;
    for i:=n-1 downto 1 do
      for j:=i+1 to n do
        if (v[i]<v[j]) and (lg[i]<lg[j]+1) then
          begin
            lg[i]:=lg[j]+1;
            poz[i]:=j;
          end;
    for i:=1 to n do
      if lg[i]>max then
        begin
          max:=lg[i];
          pozmax:=i;
        end;
    writeln(g,max);
    reconstituire;
  end;

  begin
    assign(f,'scmax.in'); reset(f);
    assign(g,'scmax.out'); rewrite(g);
    citire;
    rezolvare;
    close(f);
    close(g);
  end.