1. 程式人生 > >YTUOJ——求二維陣列中的鞍點【陣列】

YTUOJ——求二維陣列中的鞍點【陣列】

題目描述

如果矩陣A中存在這樣的一個元素A[i,j]滿足條件:A[i,j]是第i行中值最小的元素,且又是第j列中值最大的元素,則稱之為該矩陣的一個馬鞍點。請程式設計計算出m*n的矩陣A的所有馬鞍點。

輸入

輸入m,n

然後輸入陣列中的每個元素

輸出

輸出m*n的矩陣A的所有馬鞍點

樣例輸入

3 3
1  7  3
5  4  6
17 18 9

樣例輸出

9

答案

#include "iostream"
using namespace std;
int main()
{
	int m,n,i,j,a[10][10];
	int hmin[10],lmax[10];
	cin>>m>>n;
	for(i=0;i<m;i++){
		for(j=0;j<n;j++)
			cin>>a[i][j];
	}
	for(i=0;i<m;i++){
		hmin[i] = a[i][0];
		for(j=0;j<n;j++){
			if(a[i][j] < hmin[i]) hmin[i] = a[i][j];
		}
	}

	for(j=0;j<n;j++){
		lmax[j] = a[0][j];
		for(i=0;i<m;i++){
			if(a[i][j] > lmax[j]) lmax[j] = a[i][j];
		}
	}
	for(i=0;i<m;i++){
		if(hmin[i] == lmax[i])
			cout<<hmin[i];
	}
	
	return 0;
}