Code dãy con đơn điệu dài nhất bằng pascal !!

· Quy hoạch động
Program Day_con_don_dieu_dai_nhat;
{Giải bài toán bằng phương pháp quy hoạch động}
uses crt;
Const Max = 5000;
fi='Day.INP';
fo='Day.OUT';
Var a,L,T:array [1..Max] of integer;
    i,j,N,jmax:integer;
    g:text;
Procedure Nhapdulieu;
Var f:text;
begin
assign(f,fi);
reset(f);
N:=0;
while not eof (f) do
      begin
      N:=N+1;
      read(f,a[N]);
      end;
close(f);
end;
procedure quyhoachdong;
Begin
L[1]:=1;T[1]:=0;a[N+1]:=32767;
for i:=2 to N+1 do
    begin
    jmax:=0;
    L[i]:=1;
    for j:=1 to i-1 do
        if (a[j]<=a[i])and (L[i]< L[j]+1) then
        begin
        L[i]:=L[j]+1;
        jmax:=j;
        end;
    T[i]:=jmax;
    end;
End;
Procedure Truyvet(m:integer);
Begin
m:=T[m];
if m=0 then exit;
truyvet(m);
write(g,a[m],' ');
end;
Procedure ghidulieu;
begin
assign(g,fo);
rewrite(g);
quyhoachdong;
truyvet(N+1);
close(g);
end;
begin
clrscr;
Nhapdulieu;
Ghidulieu;
end.

2 phản hồi

Comments RSS

Gửi phản hồi

Mời bạn điền thông tin vào ô dưới đây hoặc kích vào một biểu tượng để đăng nhập:

WordPress.com Logo

Bạn đang bình luận bằng tài khoản WordPress.com Log Out / Thay đổi )

Twitter picture

Bạn đang bình luận bằng tài khoản Twitter Log Out / Thay đổi )

Facebook photo

Bạn đang bình luận bằng tài khoản Facebook Log Out / Thay đổi )

Google+ photo

Bạn đang bình luận bằng tài khoản Google+ Log Out / Thay đổi )

Connecting to %s

%d bloggers like this: