Bài toán: Một phần tử được gọi là điểm cực tiểu của mảng 2 chiều A[m.n] nếu nó không lớn hơn các phần tử kề nó. Hãy lập trình tìm các điểm cực tiểu (cho m,n 100, các giá trị của phần tử mảng có giá trị tuyệt đối không quá 32000) Dữ liệu vào: cho file CUCTIEU.INP gồm: – Dòng đầu tiên gồm 2 số M, N (0 ≤ M,N ≤100) – M dòng tiếp theo, mỗi dòng gồm có N số nguyên của mảng A (các giá trị cách nhau ít nhất 1 khoảng cách). Dữ liệu ra: ghi ra file CUCTIEU.OUT vị trí của các điểm cực tiểu Ví dụ: CUCTIEU.INP CUCTIEU.OUT 3 4 (2, 2) 7 4 9 2 (3, 4) 9 3 6 1 6 7 8 0 KO CẦN FILE , TEXT AI GIÚP EM VỚI
1 câu trả lời
uses crt;
var a: array[0..100, 0..100] of longint;
i, j, n, m: longint;
function check(u, v: longint):boolean;
var i, j: longint;
begin
for i:=u - 1 to u + 1 do
for j:=v - 1 to v + 1 do
if (i <> u) or (j <> v) then
if a[i][j] < a[u][v] then
exit(false);
exit(true);
end;
begin
clrscr;
readln(n, m);
for i:=1 to n do
for j:=1 to m do
read(a[i][j]);
for i:=1 to n do
begin
a[i][0]:=32000;
a[i][m + 1]:=32000;
end;
for i:=1 to m do
begin
a[0][i]:=32000;
a[n + 1][i]:=32000;
end;
for i:=1 to n do
for j:=1 to m do
if check(i, j) then
writeln('(', i, ', ', j, ')');
readln;
end.