Cod sursa(job #270611)

Utilizator MBlueGheorghevici Mihai MBlue Data 4 martie 2009 11:57:47
Problema Subsir crescator maximal Scor 0
Compilator fpc Status done
Runda Arhiva educationala Marime 1.39 kb
type refa = ^a1;
     a1 = record
       val : longint;
       urm : refa;
       end;
var el,primu,ultimu : refa;
    i,n,b,max1,max,j : longint;
    fin,fout : text;

begin
     assign(fin,'scmax.in');
     reset(fin);
     assign(fout,'scmax.out');
     rewrite(fout);
     read(fin,n);
     read(fin,el^.val);
     el^.urm := nil;
     primu := el;
     ultimu := el;
     max := 1;
     while not eof(fin) do begin
           read(fin,b);
           if el^.val < b then begin
              ultimu := el;
              new(el);
              el^.val := b;
              ultimu^.urm := el;
              max := max +1;
              j := j +1;
           end
           else if el^.val > b then begin
                if max > max1 then begin
                                   max1 := max;
                                   end;
                ultimu := el;
                new(el);
                ultimu^.urm := el;
                el^.val := b;
                j := j +1;
           end else n := n -1;
     end;
     close(fin);
     if max > max1 then begin
        max1 := max;
     end;
     writeln(fout,max1);
     el := primu;
     for i := 1 to n do begin
         if i = j+2 then begin
            break;
         end
         else if i >= n - j + 1 then
              write(fout,el^.val,' ');
         el := el^.urm;
     end;
     close(fout);
end.