행렬 변환
시간 제한1초메모리 제한128 MB
인접한 두 칸을 함께 1씩 올리거나 내리는 연산을 반복해 각 행렬을 0으로 만들 수 있는지 판정합니다.
문제
정수로 채워진 행렬 가 있다. 행이 개이고, 각 행에 정수가 개씩 놓여 있다.
두 정수가 들어 있는 칸이 변을 맞대고 있으면 두 정수는 인접하다. 예를 들어 아래 격자에서
0 1 2
3 4 5
6 7 8
, , , 는 인접하지만 , , 은 인접하지 않다.
이 행렬에는 한 종류의 연산만 쓸 수 있다. 한 번의 연산에서 인접한 두 칸을 고른 뒤, 두 값을 모두 1 늘리거나 모두 1 줄인다. 행렬이 주어졌을 때 이 연산만 반복해서 영행렬로 만들 수 있는지 판정하라. 영행렬은 모든 원소가 0인 행렬이다.
입력
첫째 줄에 행렬의 개수를 나타내는 양의 정수 이 주어진다.
각 행렬은 공백 하나로 구분된 ()과 ()가 적힌 줄로 시작한다. 이어지는 개의 줄에는 각각 정수가 개씩 주어진다. 이 정수는 모두 이상 이하이다.
입력으로 주어지는 행렬에는 0이 아닌 값이 적어도 하나 있다.
출력
각 행렬마다 영행렬로 만들 수 있으면 YES, 그렇지 않으면 NO를 한 줄에 출력하라. 대문자로만 출력한다.