问题一百四十:鞍点

来源:互联网 发布:openstack源码大约多少 编辑:程序博客网 时间:2024/05/16 19:55

点击打开链接:(ACM)鞍点

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




Sample Input




3 3
1 2 3
4 5 6
7 8 9


Sample Output




Array[0][2]=3


#include <stdio.h>int main(){      int i;      int j;      int l;      int x;      int y;      int k;      int n;      int m;      int flag;      int num[10][10];      while(scanf("%d %d", &n, &m)!=EOF)      {          for(i=0; i<n; i++)          {               for(j=0; j<m; j++)               {                   scanf("%d", &num[i][j]);               }          }                    flag=0;  x=0;  y=0;          for(i=0; i<n; i++)          {             for(j=0; j<m; j++)             {   if(j==0) { k=num[i][j]; }                                if(k<num[i][j])                {                   k=num[i][j];                   x=i;                   y=j;                }             }             for(l=0; l<n; l++)             {                  if(k<=num[l][y])                  {                    flag=1;                  }                  else                  {                     flag=0;                      break;                  }             }             if(flag)             {                 printf("Array[%d][%d]=%d\n", x, y, k);                 break;             }          }          if(flag==0)          {              printf("None\n");          }      }     return 0;}


原创粉丝点击