问题 3875 --矩阵中的数字(完善程序)

3875: 矩阵中的数字(完善程序)★★

时间限制: 1 Sec  内存限制: 128 MB
提交: 56  解决: 47
[提交][状态][命题人:]

题目描述

有一个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所在的行列(注意:输入数据保证矩阵中的数各不相同)。

#include <cstdio>
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--;
    }
    __[1]__
    while (a[i][j] != k) {
         while (__[2]__ && i > 1) i--;
         while (__[3]__ && j <= n) j++;
    }
    __[4]__
    __[5]__
}
int main() {
    int i, j;
    scanf("%d", &n);
    for (i = 1; i <= n; i++)
        for (j = 1; j <= n; j++)
            scanf("%d", &a[i][j]);
    scanf("%d", &k);
    FindKPosition();
    printf("%d %d\n", answerx, answery);
    return 0;
}

输入

输出

样例输入
Copy
4
1   2  3  4 
5   6  7  8 
9  10 11 12
13 14 15 16
11
样例输出
Copy
3 3

提示

来源

[提交][状态]