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.

Câu hỏi trong lớp Xem thêm