提交时间:2025-10-31 15:39:33
运行 ID: 72314
#include <iostream> #include <vector> #include <climits> using namespace std; int main() { int n; cin >> n; // 读取二维数组 vector<vector<int>> matrix(n, vector<int>(n)); for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { cin >> matrix[i][j]; } } bool found = false; // 遍历每一行寻找鞍点 for (int i = 0; i < n; i++) { // 找到当前行的最大值及其列索引 int row_max = matrix[i][0]; int col_index = 0; for (int j = 1; j < n; j++) { if (matrix[i][j] > row_max) { row_max = matrix[i][j]; col_index = j; } } // 检查该值是否是其所在列的最小值 bool is_saddle_point = true; for (int k = 0; k < n; k++) { if (matrix[k][col_index] < row_max) { is_saddle_point = false; break; } } // 如果是鞍点,则输出 if (is_saddle_point) { cout << row_max << " "; found = true; } } // 如果没有找到鞍点 if (!found) { cout << "没有找到鞍点"; } cout << endl; return 0; }