n=5 m=55 6 7 8 94 5 6 7 83 4 5 2 12 3 4 9 01 2 5 4 8则1行1列上的数就是马鞍数。输入:共n+1行第一行:nmnm10第2到n+1行:每行m个整数每个数都10输出:输出若干行:如果存在马鞍数则输出所有马鞍数每行一个为行和列以及马鞍数。如果不存在马鞍数则输出not exit。用C++
#include
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<pair<int, pair<int, int>>> saddlePoints;
for (int i = 0; i < n; i++) {
int minRow = matrix[i][0];
int minColIndex = 0;
for (int j = 1; j < m; j++) {
if (matrix[i][j] < minRow) {
minRow = matrix[i][j];
minColIndex = j;
}
}
bool isSaddlePoint = true;
for (int k = 0; k < n; k++) {
if (matrix[k][minColIndex] > minRow) {
isSaddlePoint = false;
break;
}
}
if (isSaddlePoint) {
saddlePoints.push_back({minRow, {i, minColIndex}});
}
}
if (saddlePoints.empty()) {
cout << "not exist" << endl;
} else {
for (const auto& saddlePoint : saddlePoints) {
cout << saddlePoint.second.first + 1 << " " << saddlePoint.second.second + 1 << " " << saddlePoint.first << endl;
}
}
return 0;
原文地址: https://www.cveoy.top/t/topic/inpS 著作权归作者所有。请勿转载和采集!