不是VIP会员,不能显示答案

题目解答

题目:
(矩阵中的数字)有一个n*n(1≤n≤5000)的矩阵a,对于1≤i<n, 1≤j≤n, a[i,j]<a[i+1,j] a[j,i]<a[j,i+1]。即矩阵中左右相邻的两个元素,右边的元素一定比左边的大。上下相邻的两个元素,下面的元素一定比上面的大。给定矩阵a中的一个数字k,找出k所在的行列(注意:输入数据保证矩阵中的数各不相同)。
var
    n,k,answerx,answery:integer;
    a:array[1..5000,1..5000] of integer;
Procedure FindKPosition;
Var I,j:integer;
Begin
	i:=n; j:=n;
	while j>0 do begin
           if a[n,j]<k then break;
           dec(j);
        end;
         inc(j) ;
        while a[i,j]<>k do
        begin
           while ( a[i,j]>k ) and (i>1) do dec(i);
           while ( a[i,j]<k ) and (j<=n) do inc(j);
        end;
         answerx:=i ;
         answery:=j ;
end;

var i,j:integer;
begin
   read(n);
   for i:=1 to n do
      for j:=1 to n do
              read(a[i,j]);
      read(k);
      FindKPosition;
   writeln(answerx,' ',answery);
end.
考点:
分析:
解答:
评论:
老师: