大佬求改!
  • 板块灌水区
  • 楼主封禁用户
  • 当前回复6
  • 已保存回复6
  • 发布时间2024/10/30 17:32
  • 上次更新2024/10/30 20:52:35
查看原帖
大佬求改!
1116615
封禁用户楼主2024/10/30 17:32

马鞍数是指矩阵nm中在行上最小而在列上最大的数。如:数阵nm,其中 n=4,m=5

1 6 7 8 9

4 5 6 7 8

3 4 5 2 1

5 6 7 6 8

则第4行第1列的数字“5”即为该数阵的一个马鞍数,答案有且只有一个。

【输入格式】

第一行:两个数n和m(1≤m≤100,1≤n≤100);

以下n行:每行m个数。

【输出格式】

输出马鞍数的位置。

【输入样例】

4 5

1 6 7 8 9

4 5 6 7 8

3 4 5 2 1

5 6 7 6 8

【输出样例】

4 1

#include<bits/stdc++.h>
using namespace std;
int n,m,a[105][105],maxi[105][105],mini[105][105]; 
int main()
{
    cin>>n>>m;
	for(int i=1;i<=n;i++)
		for(int j=1;j<=m;j++)
			cin>>a[i][j];
	
	for(int i=1;i<=n;i++)
    {
		int minii=1e9,x;
		for(int j=1;j<=m;j++)
			if(a[i][j]<minii)
             {
				minii=a[i][j];
				x=j;
			}
		mini[i][x]=minii;
	}
    for(int i=1;i<=n;i++)
    {
		int maxii=0,y;
		for(int j=1;j<=m;j++)
			if(a[j][i]>maxii)
            {
				maxii=a[j][i];
				y=j;
			}
		maxi[y][i]=maxii;
	}
	for(int i=1;i<=n;i++)
		for(int j=1;j<=m;j++)
			if(maxi[i][j]!=0&&mini[i][j]!=0)
            {
				cout<<i<<" "<<j<<endl;
				return 0;
			}
	cout<<"not found"<<endl;
	return 0;
}
2024/10/30 17:32
加载中...