预处理出每行每列的最大值和最小值,如果元素和其预处理的值相同,就直接输出对应的坐标就好
#include<bits/stdc++.h>
using namespace std;
#define inf 0x3f3f3f3f
#define N 1010
int n,m;
int a[N][N];
int min_row[N],max_line[N];
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<=max(n,m);i++){
min_row[i]=inf;
max_line[i]=-inf;
}
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
min_row[j]=min(min_row[j],a[i][j]);
max_line[i]=max(max_line[i],a[i][j]);
}
}
int f=true;
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
if(a[i][j]==min_row[j]&&a[i][j]==max_line[i]){
cout<<i<<" "<<j<<" "<<a[i][j]<<endl;
f=false;
}
}
}
if(f)cout<<"NO"<<endl;
return 0;
}