#include <bits/stdc++.h>
using namespace std;
const int N = 1e3+10;
int a[N][N];
int dir[4][2]={1,0,-1,0,0,-1,0,1};
int main()
{
ios::sync_with_stdio(false);
cin.tie(0);
int n;
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++)
{
int cnt = 0;
int mn=INT_MAX;
int mx = INT_MIN;
int cnt1 = 0;
int cnt2 = 0;
for(int k=0;k<4;k++)
{
int cx = i+dir[k][0];
int cy = j+dir[k][1];
mn = min(mn,a[cx][cy]);
mx = max(mx,a[cx][cy]);
if(a[cx][cy]==a[i][j])cnt++;
if(a[cx][cy]>a[i][j])cnt1++;
if(a[cx][cy]<a[i][j])cnt2++;
}
if(cnt==4)continue;
else if(cnt1==4)
{
a[i][j]=mn;
}
else if(cnt2==4)
{
a[i][j] = mx;
}
}
}
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
{
for(int k=0;k<4;k++)
{
int cx = i+dir[k][0];
int cy = j+dir[k][1];
if(a[i][j]!=a[cx][cy])
{
cout<<"NO\n";
return 0;
}
}
}
}
cout<<"YES\n";
return 0;
}
有点神秘的写法,😋

京公网安备 11010502036488号