您的位置:首页 > 移动开发

【Codeforces Round 263 (Div 2)A】【水题 认真读题】Appleman and Easy Task 每个点的相邻o是否都为偶数

2016-03-21 15:14 369 查看
Appleman and Easy Task

time limit per test
1 second

memory limit per test
256 megabytes

input
standard input

output
standard output

Toastman came up with a very easy task. He gives it to Appleman, but Appleman doesn't know how to solve it. Can you help him?
Given a n × n checkerboard.
Each cell of the board has either character 'x', or character 'o'.
Is it true that each cell of the board has even number of adjacent cells with 'o'? Two cells of the board are adjacent if they share a side.

Input
The first line contains an integer n (1 ≤ n ≤ 100).
Then n lines follow containing the description of the checkerboard. Each of them
contains n characters (either 'x'
or 'o') without spaces.

Output
Print "YES" or "NO"
(without the quotes) depending on the answer to the problem.

Examples

input
3
xxo
xox
oxx


output
YES


input
4
xxxo
xoxo
oxox
xxxx


output
NO


#include<stdio.h>
#include<iostream>
#include<string.h>
#include<string>
#include<ctype.h>
#include<math.h>
#include<set>
#include<map>
#include<vector>
#include<queue>
#include<bitset>
#include<algorithm>
#include<time.h>
using namespace std;
void fre() { freopen("c://test//input.in", "r", stdin); freopen("c://test//output.out", "w", stdout); }
#define MS(x,y) memset(x,y,sizeof(x))
#define MC(x,y) memcpy(x,y,sizeof(x))
#define MP(x,y) make_pair(x,y)
#define ls o<<1
#define rs o<<1|1
typedef long long LL;
typedef unsigned long long UL;
typedef unsigned int UI;
template <class T1, class T2>inline void gmax(T1 &a, T2 b) { if (b>a)a = b; }
template <class T1, class T2>inline void gmin(T1 &a, T2 b) { if (b<a)a = b; }
const int N = 105, M = 0, Z = 1e9 + 7, ms63 = 0x3f3f3f3f;
int n;
char a

;
bool solve()
{
for (int i = 1; i <= n; ++i)
{
for (int j = 1; j <= n; ++j)//if (a[i][j] == 'o')
{
int ans = 0;
if (a[i][j + 1] == 'o')++ans;
if (a[i + 1][j] == 'o')++ans;
if (a[i][j - 1] == 'o')++ans;
if (a[i - 1][j] == 'o')++ans;
if (ans & 1)return 0;
}
}
return 1;
}
int main()
{
while (~scanf("%d", &n))
{
for (int i = 1; i <= n; ++i)scanf("%s", a[i] + 1);
puts(!solve() ? "NO" : "YES");
}
return 0;
}
/*
【trick&&吐槽】
妈的智障,读题要好好读>_<

【题意】
给你一个n*n的棋盘。棋盘上不是x就是o。
让你判断,是否对于每个点,相邻的o的个数都为偶数个

【类型】
水题

*/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息