80分求助
#include<bits/stdc++.h>
using namespace std;
using ll = long long;
const int N=1010;
ll a[N][N],n,vis[N][N],sf,sg;
int fx[9][3]={{-1,0},{-1,1},{0,1},{1,1},{1,0},{1,-1},{0,-1},{-1,-1}};
string dfs(int ii,int jj,string s){
for(int i=0;i<8;i++){
int ni = ii+fx[i][0];
int nj = jj+fx[i][1];
if(ni>=1&&ni<=n&&nj>=1&&nj<=n){
if(a[ni][nj]>a[ii][jj])s[0]='1';
if(a[ni][nj]<a[ii][jj])s[1]='1';
if(vis[ni][nj]==0&&a[ni][nj]==a[ii][jj]){
vis[ni][nj]=1;
s = dfs(ni,nj,s);
}
}
}
return s;
}
int main(){
ios::sync_with_stdio(false);
cin.tie(0);
cin>>n;
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
cin>>a[i][j];
}
}
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
if(vis[i][j]==0){
vis[i][j]=1;
string s = dfs(i,j,"00");
if(s[0]=='0'&&s[1]=='0')sg++,sf++;
if(s[0]=='0'&&s[1]=='1')sf++;
if(s[0]=='1'&&s[1]=='0')sg++;
}
}
}
cout<<sf<<" "<<sg;
return 0;
}