Tin học 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 25/07/2021 By Sarah 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;beginclrscr; 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;readlnend. Trả lời
uses crt;var n,i,j,x,vt,max:longint;l,a,t:array[0..1000]of longint;beginclrscr;readln(n);for i:=1 to n doreadln(a[i]);for i:=n-1 downto 1 dobeginfor j:=i+1 to n doif(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 doif(max<l[i])then begin max:=l[i];vt:=i;end;t[0]:=vt;l[0]:=max+1;x:=t[0];repeatwrite(a[x],’ ‘);x:=t[x];until x=0;readln;end.readln;end. Trả lời