计算鞍点
(时间限制:3000MS 内存限制:32768KB)
描述
给出一个整数的二维数组,请找出该数组中的鞍点,即该位置上的元素在所在行最大,在所在列最小。(注意,本题中的数据保证要么只有一个鞍点,要么没有鞍点。)
输入
输入数据只有一组,包括两行。第一行是两个正整数n,m(2<=n,m<=20),表示数组的行数和列数;接下来有n行,每行上输入m个整数。
输出
输出鞍点所在位置(行坐标和列坐标)和鞍点元素值。
难度
较难
输入示例
3 4
1 2 3 13
5 6 7 8
9 10 11 12
输出示例
1 3 8
#include<iostream>
using namespace std;
int main() {
int a[100][100] = { 0 }, max, i, j, m, n, t;
bool flag;
cin >> n >> m;
for (i = 0; i < n; i++)
for (j = 0; j < m; j++)
cin >> a[i][j];
for (i = 0; i < n; i++)
{ t = 0; flag = true;
for (j = 0; j < m; j++)
if (a[i][j] > a[i][t])
t = j;
max = a[i][t];
for (int v = 0; v < n; v++)
{
if (max > a[v][t])
{ flag = false; break; }
}
if (flag == true)
{ cout << i << " " << t << " " << max << endl;}
}
return 0;
}