Pascal小白|二维数组马鞍点

题目描述

如果矩阵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.

你可能感兴趣的:(Pascal小白|二维数组马鞍点)