NKOJ1709

问题描述

求一个n×n(n<=10)矩阵中的马鞍数(马鞍数的特点是在它所在的行,它的值最小。在它所在的列,它的值最大)
矩阵中的数字都不超过100的非负整数。

输入格式

第一行一个整数n
接下来是一个n*n的矩阵,用空格作为间隔

输出格式

一行三个空格间隔的整数,表示马鞍数所在的位置坐标和对应的数值

样例输入 1

3
1 4 8
6 7 9
5 1 3

样例输出 1

2 1 6

样例输入 2

5
9 6 2 11 6 
14 14 6 8 10 
7 7 5 9 3 
3 7 4 9 8 
3 6 4 5 4 

样例输出 2

2 3 6

#include <bits/stdc++.h>
using namespace std;
int a[11][11];
int main() {
    int n;
    cin>>n;
    for(int i=1;i<=n;i++)
    {
        for(int j=1;j<=n;j++)cin>>a[i][j];
    }
    for(int i=1;i<=n;i++)
    {
        int min=a[i][1];
        for(int j=1;j<=n;j++)
        {
            if(a[i][j]<min) min=a[i][j];   
        }     
        for(int j=1;j<=n;j++)
        {
            if(a[i][j]==min){
                int flag=1;
                for(int jo=1;jo<=n;jo++)
                {
                    if(a[jo][j]>min)flag=0;
                }
                if(flag==1)
                cout<<i<<" "<<j<<" "<<a[i][j]<<endl;
            }
        }
    }
}