Cod sursa(job #271128)

Utilizator MBlueGheorghevici Mihai MBlue Data 4 martie 2009 22:07:32
Problema Subsir crescator maximal Scor 20
Compilator fpc Status done
Runda Arhiva educationala Marime 1.44 kb
type ref = ^elem;
     elem = record
       val : longint;
       urm : ref;
       end;
var prim, primmax, ultim, c : ref;
    n,nmax,m:longint;
    fin,fout:text;
begin
     assign(fin,'scmax.in');
     reset(fin);
     assign(fout,'scmax.out');
     rewrite(fout);
     read(fin,m);
     prim := nil;
     ultim := nil;
     n := 0;
     nmax:=0;
     while (not eof(fin)) do begin
           new(c);
           read(fin,c^.val);
           c^.urm := nil;
           if (prim = nil) then begin
              n := n + 1;
              prim := c;
              ultim := c;
           end
           else begin
                if (ultim^.val < c^.val) then begin
                   n := n + 1;
                   ultim^.urm := c;
                   ultim := c;
                end
                else if ultim^.val > c^.val then begin
                        if (n >= nmax) then begin
                           nmax := n;
                           primmax := prim;
                        end;
                        prim := c;
                        ultim := c;
                        n := 1;
                     end;
           end;
     end;
     if (nmax < n) then begin
        nmax := n;
        primmax := prim;
     end;
     writeln(fout,nmax);
     for n := 1 to nmax do begin
         write(fout,primmax^.val,' ');
         primmax := primmax^.urm;
     end;
     close(fin);
     close(fout);
end.