Codeforces 462 A Appleman and Easy Task(水題)
6005 ワード
タイトルリンク:Codeforces 462 A Appleman and Easy Task
各位置の周囲に存在する「o」が偶数であるか否かを判断する図を与える.
問題を解く構想:水の問題は、一度遍歴すればいい.
各位置の周囲に存在する「o」が偶数であるか否かを判断する図を与える.
問題を解く構想:水の問題は、一度遍歴すればいい.
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
const int maxn = 105;
const int dir[4][2] = {{0, 1}, {0, -1}, {1, 0}, {-1, 0}};
int N;
char g[maxn][maxn];
int check (int x, int y) {
int ret = 0;
for (int i = 0; i < 4; i++) {
int p = x + dir[i][0];
int q = y + dir[i][1];
if (p < 0 || p >= N || q < 0 || q >= N)
continue;
if (g[p][q] == 'x')
continue;
ret++;
}
return ret;
}
bool judge () {
for (int i = 0; i < N; i++) {
for (int j = 0; j < N; j++)
if (check(i, j) & 1)
return false;
}
return true;
}
int main () {
scanf("%d", &N);
for (int i = 0; i < N; i++)
scanf("%s", g[i]);
printf("%s
", judge() ? "YES" : "NO");
return 0;
}