时间限制:1秒 内存限制:128M
题目描述
鞍点是数学中的一个非常重要的概念,围绕着鞍点我们会有一系列的计算。那么在二维数组中也会存在一个鞍点,而这个鞍点的寻找方式相对来说也比较简单一些,我们只需要找到既是这一行的最大值,又是这一列的最小值的那个数字就是鞍点。
现在给你一个5*5的矩阵,每行只有一个最大值,每列只有一个最小值,找一个这个矩阵的鞍点是谁并将其输出出来。
例如:在下面的例子中(第4行第1列的元素就是鞍点,值为8 )。
11 3 5 6 9
12 4 7 8 10
10 5 6 9 11
8 6 4 7 2
15 10 11 20 25
输入描述
输入包含一个5行5列的矩阵,矩阵中的数都在int范围内
输出描述
如果存在鞍点,输出鞍点所在的行、列及其值,如果不存在,输出"not found"
样例
输入
11 3 5 6 9 12 4 7 8 10 10 5 6 9 11 8 6 4 7 2 15 10 11 20 25
输出
4 1 8
AC Code:
#include<bits/stdc++.h>
using namespace std;
int a[10][10],b[10],c[10];
int main(){
memset(c,0x3f,sizeof(c));
for(int i=1;i<=5;i++){
for(int j=1;j<=5;j++){
cin>>a[i][j];
b[i]=max(b[i],a[i][j]);
c[j]=min(c[j],a[i][j]);
}
}
for(int i=1;i<=5;i++){
for(int j=1;j<=5;j++){
if(a[i][j]==b[i]&&a[i][j]==c[j]){
cout<<i<<" "<<j<<' '<<a[i][j];
return 0;
}
}
}
cout<<"not found";
return 0;
}

3571

被折叠的 条评论
为什么被折叠?



