题目描述
如果矩阵A中存在这样的一个元素A[i,j]满足条件:A[i,j]是第i行中值最小的元素,且又是第j列中值最大的元素,则称之为该矩阵的一个马鞍点。请编程计算出m*n的矩阵A的所有马鞍点。
输入格式
第一行输入N,接下来N行,每行N个数字
输出格式
马鞍点所在的行列。
代码
var c:array[1..1000,1..1000] of integer;
min:array[1..1000] of integer;
max:array[1..1000] of integer;
i,j,n,y:integer;
begin
readln(n);
for i:= 1 to n do
for j:= 1 to n do
read (c[i,j]);
for i:=1 to n do
begin
y:=c[i,1];
min[i]:=1;
for j:=1 to n do begin
if(c[i,j] < y) then
begin
y:=c[i,j];
min[i]:=j;
end;
end;
end;
for j:=1 to n do begin
y:=c[1,j];
max[j]:=1;
for i:=1 to n do
begin
if(c[i,j]>y) then
begin
y:=c[i,j];
max[i]:=i;
end;
end;
end;
for i:=1 to n do
if(max[min[i]]=i) then
writeln(i,min[i]);
readln;
end.
网友评论