BT pascal Dãy thuật loang !

N

nguyentaingoc

[TẶNG BẠN] TRỌN BỘ Bí kíp học tốt 08 môn
Chắc suất Đại học top - Giữ chỗ ngay!!

ĐĂNG BÀI NGAY để cùng trao đổi với các thành viên siêu nhiệt tình & dễ thương trên diễn đàn.

nhập vào mảng 2 chiều vuông giá trị mỗi phần từ là một số 0 hay 1. Các số 1 được gọi là láng giềng với nhau khi chúng ở hai ô có chung cạnh. Các số 1 được gọi là liên kết với nhau khi tồn tại các ô láng giềng kết nối với nó (khái niệm giống bài trên). Hãy tính miền diện tích lớn nhất bao gồm các số một trên mảng hình vuông này.

VD:
0000000000
0111001111
0100001101
0100100111
0000000001
0111100000
0000000000
0000111000
0000010000
0000000000
Theo dữ liệu trên có 5 miền có diện tích lần lượt là: 5, 11, 1, 4, 4. Chương trình sẽ in ra 11.
Các bạn suy nghĩ và cùng giải quyết nha !
Mình thấy dãy thuật loang này cũng hay nên post !
 
1

11thanhkhoeo

Chắc không sai nhỉ

Mã:
uses crt;
const inp='loang.inp';   outp= 'loang.out';


var a:array[1..100,1..100] of byte;
    i,j,dem,max,m,n:byte;
    fo,fi:text;
procedure   nhap;
    begin
        assign(fi,inp);
        reset(fi);
           read(fi,n,m );
           for i:=1 to n do
              for j := 1 to m do
                 read(fi,a[i,j]);
        close(fi);
    end;
procedure loang(x,y:byte);
   begin
     if a[x,y] = 1 then
       begin
         dem :=dem+1;
         a[x,y]:=0;
         if  x>1 then loang(x-1,y);
         if  y>1 then loang(x,y-1);
         if  x<n then loang(x+1,y);
         if  y<m then loang(x,y+1);
       end;
   end;
procedure xuli;
   begin
      for i:= 1 to n do
         for j :=1 to m do
            begin
               dem:=0;
               if a[i,j]=1 then loang(i,j);
               if dem> max then max:=dem;
            end;

   end;
procedure xuat;
   begin
     assign(fo,outp);
     rewrite(fo);
        write(fo,max);
     close(fo);
   end;
begin
   nhap;
   xuli;
   xuat;
end.
 
Last edited by a moderator:
Q

quanghero100

Bài anh Thành đúng ròi á chỉ có cái tội anh chưa đóng file nên hông in kết quả thôi hjhj
 
Top Bottom