鞍点计算
来源:互联网 发布:聚合数据 奖项 编辑:程序博客网 时间:2024/05/29 15:09
鞍点计算
Time Limit: 1000MS Memory Limit: 65536KB
Problem Description
找出具有m行n列二维数组Array的“鞍点”,即该位置上的元素在该行上最大,在该列上最小,其中1<=m,n<=10。同一行和同一列没有相同的数。
Input
输入数据有多行,第一行有两个数m和n,下面有m行,每行有n个数。
Output
按下列格式输出鞍点:
Array[i][j]=x
其中,x代表鞍点,i和j为鞍点所在的数组行和列下标,我们规定数组下标从0开始。
一个二维数组并不一定存在鞍点,此时请输出None。
我们保证不会出现两个鞍点的情况,比如:
3 3
1 2 3
1 2 3
3 6 8
Example Input
3 31 2 34 5 67 8 9
Example Output
Array[0][2]=3
Hint
Author
#include <stdio.h>
int main (){
int i , j , max , min ,s[111][111] , l =0;
int m , n ,a , b;
scanf("%d%d" , &m , &n);
for (i = 0 ; i < m ;i++)
{
for (j = 0 ; j < n ; j++)
{
scanf("%d" , &s[i][j]);
}
}
for (i = 0 ; i < m ; i++)
{
max = s[0][0];
for (j = 0 ; j < n ;j++)
{
if (max < s[i][j])
{
max = s[i][j];
a = i;
b = j;
}
}
min = s[a][b];
for (j = 0 ; j < m ; j++)
{
if (min > s[j][b])
min = s[j][b];
}
if (max == min)
{
printf("Array[%d][%d]=%d\n" , a , b , max);
l = 1;
break ;
}
}
if (l==0)
printf("None\n");
return 0;
}
阅读全文