05:计算鞍点
- 总时间限制:
- 1000ms
- 内存限制:
- 65536kB
- 描述
-
给定一个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列的矩阵
- 输出
- 如果存在鞍点,输出鞍点所在的行、列及其值,如果不存在,输出"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
1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 using namespace std; 5 #define max_ 0x7fff; 6 int a[1001][1001]; 7 int maxn[1001]; 8 int minn[1001]; 9 int main() 10 { 11 for(int i=1;i<=1001;i++) 12 minn[i]=100001; 13 for(int i=1;i<=5;i++) 14 { 15 for(int j=1;j<=5;j++) 16 { 17 cin>>a[i][j]; 18 if(a[i][j]>maxn[i]) 19 { 20 maxn[i]=a[i][j]; 21 } 22 if(a[i][j]<minn[j]) 23 { 24 minn[j]=a[i][j]; 25 } 26 } 27 } 28 for(int i=1;i<=5;i++) 29 { 30 for(int j=1;j<=5;j++) 31 { 32 if((a[i][j]==maxn[i])&&(a[i][j]==minn[j])) 33 { 34 cout<<i<<" "<<j<<" "<<a[i][j]; 35 return 0; 36 } 37 } 38 } 39 cout<<"not found"; 40 return 0; 41 }