Chương trình đơn giản

Just a bad coder

Viết chương trình in ra dãy con tăng không liên tiếp dài nhất trong mảng a[1..n]

0 < n < 100000

0<a[i]<100

Bằng c++ hoặc pascal

Tự nhiên giáo viên lớp ra bài này, giúp em với :((((

Nguyễn Lê Phước Thịnh
17 tháng 1 2020 lúc 13:13

tăng liên tiếp thì được, chứ tăng không liên tiếp là cái gì? mình không hiểu lắm

Bình luận (1)
 Khách vãng lai đã xóa
Tran Nguyễn Đăng Dương
7 tháng 4 2021 lúc 20:10

Chắc muộn rồi nhưng code(dùng QHĐ):

uses crt,math;
var a:array[0..100000] of Integer;
    f:array[0..100000] of Integer;
    point:array[0..100000] of Integer;
    i,n,j,maxn,maxloc:integer;
    f1:text;
Procedure truyvet(vt:integer);
begin
    if vt<>0 then truyvet(point[vt])
    else exit();
    write(a[vt],' ');
end;
Begin
    clrscr;
    assign(f1,'daycontang.inp'); reset(f1);
    readln(f1,n);
    for i:=1 to n do read(f1,a[i]);
    a[0]:=-1; f[0]:=0;
    for i:=1 to n do
        begin
            for j:=i-1 downto 0 do
                if (a[i]>a[j]) and (f[j]<>0) then
                   begin
                       if f[i]<f[j] then point[i]:=j;
                       f[i]:=max(f[i],f[j]);
                   end;
            f[i]:=f[i]+1;
            if maxn<f[i] then
               begin
                   maxn:=f[i];
                   maxloc:=i;
               end;
        end;
    writeln(maxn);
    truyvet(n);
    readln;
End.

 

Bình luận (0)

Các câu hỏi tương tự
Nguyễn Thị Tươi
Xem chi tiết
Thiên Hà
Xem chi tiết
Lê Băng
Xem chi tiết
Heo Con🐷🐷🐷
Xem chi tiết
Thái Bảo
Xem chi tiết
Hà Phương
Xem chi tiết
Nguyễn Thu Trang
Xem chi tiết
Ẩn Khiết Amity
Xem chi tiết
Đức Huy
Xem chi tiết