Cod sursa(job #298636)

Utilizator frozen62iceBLue FirE frozen62ice Data 6 aprilie 2009 11:44:08
Problema Subsir crescator maximal Scor 10
Compilator fpc Status done
Runda Arhiva educationala Marime 0.6 kb
var f,g:text;
    n,i,u,max,poz:longint;
    a,c:array[0..100001] of longint;
begin
assign(f,'scmax.in');reset(f);
assign(g,'scmax.out');rewrite(g);
read(f,n);
for i:=1 to n do read(f,a[i]);
for i:=1 to n-1 do c[i]:=0;
c[n]:=1;
u:=n;
for i:=n-1 downto 1 do begin
 c[i]:=1;
 while a[u-1]>a[i] do dec(u);
 if a[u]>a[i] then c[i]:=1+c[u];
 if c[i]>max then begin
  max:=c[i];
  poz:=i;
 end;
end;
writeln(g,max);
write(g,a[poz],' ');
max:=max-1;
for i:=poz+1 to n do
 if (c[i]=max)and(a[poz]<a[i]) then begin
  write(g,a[i],' ');
  poz:=i;
  max:=max-1;
 end;
close(f);
close(g);
end.