(矩阵中的数字)有一个 n×n(1≤n≤5000) 的矩阵 a,对于 1≤i<n,≤j≤n,ai,j<ai+1,j ,aj,i<aj,i+1。
即矩阵中左右相邻的两个元素,右边的元素一定比左边的大。上下相邻的两个元素,
下面的元素一定比上面的大。给定矩阵 a 中的一个数字 k,找出 k 所在的行列(注意:输入数据保证矩阵中的数各不相同)。
#include <iostream> using namespace std; int n,k,answerx,answery; int a[5001][5001]; void FindKPosition() { int i = n,j = n; while (j > 0) { if (a[n][j] < k) break; j --; } ① while (a[i][j] != k) { while ( ② && i > 1) i --; while ( ③ && j <= n) j ++; } ④ ⑤ } int main() { int i,j; cin >> n; for (i = 1;i <= n;i ++) for (j = 1;j <= n;j ++) cin >> a[i][j]; cin >> k; FindKPosition(); cout << answerx << " " << answery << endl; return 0; }