Pagini recente » Cod sursa (job #1634314) | Cod sursa (job #3152891) | Cod sursa (job #281269) | iconcurs16 | Cod sursa (job #1356968)
program infoarena4;
type vector = array[1..100000] of longint;
var f,g:text;
n,i,poz,k,max:longint;
v,lung,pred:vector;
procedure afisare(p:integer); //afisare recursiva
begin
if p <> -1 then
begin
afisare(pred[p]);
write(g,v[p],' ');
end;
end;
begin
assign(f,'scmax.in'); reset(f);
assign(g,'scmax.out'); rewrite(g);
readln(f,n);
//citire
for i:=1 to n do
read(f,v[i]);
//DINAMICA
pred[1]:=-1; max:=0; //primul element nu are predecesor
for i:=1 to n do
begin
pred[i]:=-1; lung[i]:=1;
for k:=1 to i-1 do
begin
if (v[i] > v[k]) and (lung[k]+1 > lung[i]) then //daca as putea pune v[i] dupa v[k]
begin
lung[i]:=lung[k]+1;
pred[i]:=k;
end;
end;
if max < lung[i] then //actualizare maxim
begin
max:=lung[i]; poz:=i;
end;
end;
writeln(g,max);
afisare(poz);
close(f); close(g);
end.