#include<bits/stdc++.h>
#define endl "\n"
#define int long long
using namespace std;
int d[4][2] = {{0, 1}, {0, -1}, {1, 0}, {-1, 0}};
void slove() {
int n;
std::cin >> n;
std::vector<std::vector<int>> a(n + 2, std::vector<int>(n + 2, 0));
for (int i = 1; i <= n; i++) for (int j = 1; j <= n; j++) std::cin >> a[i][j];
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n; j++) {
int cnt1 = 0, cnt2 = 0;
for (int k = 0; k < 4; k++) {
int dx = i + d[k][0], dy = j + d[k][1];
if (a[dx][dy] != 0 && a[i][j] != 0 && (a[i][j]*a[dx][dy] > 0)) {
std::cout << "NO" << endl;
return ;
}
}
}
}
std::cout << "YES" << endl;
}
signed main() {
std::ios::sync_with_stdio(false);
std::cin.tie(nullptr);
std::cout.tie(nullptr);
int T = 1;
//std::cin>>T;
while (T--) {
slove();
}
return 0;
}
发现第一行和最后一行不能更改且为0,所以最终状态是固定的,一定为0.并且我们发现,如果要令一个正数变为0,那么他的四个方向都不能有正数,负数同理。那么完美AC。



京公网安备 11010502036488号