Lập trình tìm phần tử yên ngựa trong Pascal
PHẦN TỬ YÊN NGỰA
Cho mảng 2 chiều A có kích thước MxN số nguyên. Phần tử A[i,j] được gọi là phần tử yên ngựa nếu nó là phần tử nhỏ nhất trong hàng i đồng thời là phần tử lớn nhất trong cột j.
Em hãy lập chương trình tìm phần tử yên ngựa của mảng A.
Dữ liệu vào: cho file PTYN.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 PTYN.OUT vị trí của các phần tử yên ngựa (nếu có) hoặc dòng thông báo “Không có phần tử yên ngựa”.
Ví dụ:
PTYN.INP | PTYN.OUT |
3 3
15 3 9 55 4 6 76 1 2 |
(2,2) |
Hoặc :
PTYN.INP | PTYN.OUT |
3 315 10 555 4 676 1 2 | Khong co phan tu yen ngua |
var dem,i,j,m,n,min_i,k:longint;yn:boolean; f:text;a:array[1..100,1..100] of longint; begin assign(f,'PTYN.inp'); reset(f); readln(f,m,n); for i:=1 to m do begin for j:=1 to n do read(f,a[i,j] ); readln(f); end; close(f); {--------------------------------} assign(f,'PTYN.out'); rewrite(f); dem:=0; for i:=1 to m do begin k:=1;min_i:=a[i,1] ; for j:=1 to n do if min_i > a[i,j] then begin min_i:=a[i,j] ; k:=j; end; yn:=true; for j:=1 to m do if a[i,k] <a[j,k] then yn:=false; if yn then begin dem:=dem+1; write(f,'(',i,' ',k,')',' '); end; end; if dem=0 then write(f,'khong co pt yn'); close(f); end.