Help e bài này ạ
viết chương trình nhập n và mảng a gồm n phần tử, in ra dãy tăng lớn nhất trong mảng và độ dài dãy đó.
vd:
Input: n=5, a={-2;3;6;8;4;5}
Output: -2; 3; 6; 8 do dai day 4
*Đệ quy hoặc quy hoạch động ạ
Help e bài này ạ
viết chương trình nhập n và mảng a gồm n phần tử, in ra dãy tăng lớn nhất trong mảng và độ dài dãy đó.
vd:
Input: n=5, a={-2;3;6;8;4;5}
Output: -2; 3; 6; 8 do dai day 4
*Đệ quy hoặc quy hoạch động ạ
uses crt;
var n,i,j:longint; a,l,t:array[0..100000]of longint;
begin
clrscr;
readln(n);
for i:=1 to n do read(a[i]); readln;
a[n+1]:=high(longint);
a[0]:=low(longint);
for i:=n downto 0 do
for j:=i to n+1 do
if(a[i]<a[j])and(l[i]<l[j]+1)then begin l[i]:=l[j]+1; t[i]:=j; end;
i:=0;
while t[i]<>0 do
begin
i:=t[i];
if i<n+1 then write(a[i],’ ‘);
end;
readln
end.
uses crt;
var n,i,j,x,vt,max:longint;l,a,t:array[0..1000]of longint;
begin
clrscr;
readln(n);
for i:=1 to n do
readln(a[i]);
for i:=n-1 downto 1 do
begin
for j:=i+1 to n do
if(i<>j)and(l[i]<l[j]+1)and(a[i]<a[j])then begin l[i]:=l[j]+1;t[i]:=j;end;
end;
for i:=1 to n do
if(max<l[i])then begin max:=l[i];vt:=i;end;
t[0]:=vt;
l[0]:=max+1;
x:=t[0];
repeat
write(a[x],’ ‘);
x:=t[x];
until x=0;
readln;
end.
readln;
end.