Cod sursa(job #308480)
Utilizator | FII Andrei Netedu netedu_andrei | Data | 27 aprilie 2009 13:04:25 |
---|---|---|---|
Problema | Subsir crescator maximal | Scor | 0 |
Compilator | fpc | Status | done |
Runda | Arhiva educationala | Marime | 1.04 kb |
var f,g:text;
n,i,j,max,poz:longint;
lg,nr,a:array[1..500]of longint;
begin
assign(f,'scmax.in');reset(f);
assign(g,'scmax.out');rewrite(g);
readln(f,n);
for i:=1 to n do
read(f,a[i]);
lg[n]:=1;
nr[n]:=0;
for i:=n-1 downto 1 do
begin
j:=i+1;
max:=0;
while j<=n do
begin
if (a[j]>a[i]) and (lg[j]>max) then begin
max:=lg[j];
poz:=j;
end;
j:=j+1;
end;
if max>0 then begin
lg[i]:=lg[j]+1;
nr[i]:=j-1;
end
else begin
lg[i]:=1;
nr[i]:=0;
end;
end;
max:=0;
for i:=1 to n do
if lg[i]>max then begin
max:=lg[i];
poz:=i;
end;
writeln(g,max);
while max>0 do
begin
max:=max-1;
write(g,a[poz]);
poz:=nr[poz];
end;
close(g);
end.