#include <iostream>
#include <vector>

using namespace std;

int main() {
    int n, m;
    cin >> n >> m;
    vector<vector<int>> matrix(n, vector<int>(m));
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < m; j++) {
            cin >> matrix[i][j];
        }
    }

    vector<int> row_min(n, INT_MAX);
    vector<int> col_max(m, INT_MIN);

    // 找出每一行的最小值和每一列的最大值
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < m; j++) {
            row_min[i] = min(row_min[i], matrix[i][j]);
            col_max[j] = max(col_max[j], matrix[i][j]);
        }
    }

    bool exist = false;
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < m; j++) {
            if (matrix[i][j] == row_min[i] && matrix[i][j] == col_max[j]) {
                cout << i+1 << " " << j+1 << " " << matrix[i][j] << endl;
                exist = true;
            }
        }
    }

    if (!exist) {
        cout << "not exit" << endl;
    }

    return 0;
}
``
题目描述 求一个n行m列数阵中的马鞍数输出它的位置。所谓马鞍数是指在行上最小而在列上最大的数。如下 n=5 m=5 56789 45678 34 52 1 23490 1 2 548 则1行1列上的数就是马鞍数。输入: 共n+1行第一行:nmnm10 第2到n+1行:每行m个

原文地址: https://www.cveoy.top/t/topic/inrt 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录