题目描述
JamesJames 同学发现了在二维数组中有这样一类数,这个数正好比自己上下左右四个方向的数都大(由于需要比四个方向的数都大,因此这个数不可能在第一行、最后一行、第一列、最后一列), JamesJames 把它们称为靶心数。
请你编程求出一个二维数组的靶心数有哪些,输出他们。
输入
第一行是两个整数 nn 和 mm(nn 和 mm 都是 4∼1004∼100 之间的整数),代表接下来的二维数组有 nn 行 mm 列。
接下来 nn 行,每行有 mm 个整数。
输出
请按照输入的顺序输出满足条件的靶心数,每行 11 个。
样例
输入
4 4 1 2 3 4 5 6 5 8 9 1 11 10 13 4 5 16
输出
6 11
#include<bits/stdc++.h>
using namespace std;
int main(){
int n,m;
int a[101][101];
int dx[4]={-1,0,1,0};
int dy[4]={0,1,0,-1};
bool flag=true;
cin>>n>>m;
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
cin>>a[i][j];
}
}
for(int i=1;i<n-1;i++){
for(int j=1;j<m-1;j++){
flag=true;
for(int k=0;k<4;k++){
if(a[i][j]<=a[i+dx[k]][j+dy[k]]){
flag=false;
break;
}
}
if(flag==true)cout<<a[i][j]<<endl;
}
}
}