Mã:
Uses crt;
Const
fi = ‘luoi.txt’;
fo = ‘luoi.out’;
d : array[1..4] of integer=(-1,0,1,0);
c : array[1..4] of integer=(0,1,0,-1);
Var
a : array[1..100,1..100] of integer;
b : array[0..101,0..101] of integer;
f : text;
n,m,sh,max : integer;
vmax,dem,r,s : integer;
[B]procedure nhap;[/B]
var i,j : integer;
begin
assign(f,fi);reset(f);
readln(f,n,m);
for i:=1 to n do
begin
for j:=1 to m do
read(f,a[i,j]);
readln(f);
end;
for i := 0 to n+1 do
for j := 0 to m+1 do
if (i = 0) or (i = n+1)or(j = 0)or( j = m+1) then
b[i,j] :=-1
else
b[i,j] := 0;
max := – maxint;
sh := 0;
close(f);
end;
function kiemtra(p,q : integer) : boolean;
var t,i : integer;
begin
t :=abs(p+q);
if t mod 2 = 0 then
lienthong := true
else
kiemtra :=false;
end;
procedure lt(x,y : integer);
var k : integer;
begin
b[x,y] := sh;
for k := 1 to 4 do
if (kiemtra(a[x,y], a[x+d[k],y+c[k]]))and(b[x+d[k],y+c[k]]= 0) then
begin
inc(dem);
lt(x + d[k], y + c[k]);
end;
if dem > max then
begin
max : = dem;
vmax : =sh;
end;
end;
procedure thong_bao
var t,i,j : integer;
begin
assign(f,fo);rewrite(f);
writeln(f,’ so vung lien thong la: ‘,sh);
for t := 1 to sh do
begin
write(f, ‘vung lien thong thu ‘, t,’ : ‘);
for i := 1 to n do
for j := 1 to m do
if b[i,j] = t then
write(f,'(‘,i,’,’,j,’)’,’ ‘);
writeln(f);
end;
writeln(f,’ so vung lien thong lon nhat la: ‘);
for i:=1 to n do
for j:=1 to m do
if b[i,j] = vmax then
write(f,'(‘,i,’,’,j,’)’,’ ‘);
end;
{============= Chuong trinh chinh ====================}
BEGIN
nhap;
for r:=1 to n do
for s:=1 to m do
if b[r,s] = 0 then
begin
dem:=1;
inc(sh);
lt(r,s);
end;
thong_bao;
close(f);
END.