Knight Cruising

시간 제한1초메모리 제한1024 MB

요약
좌표를 1, 2, 3만큼 순서를 바꿔 변화시키는 3차원 나이트가 원점에서 각 점에 도달할 수 있는지 N개의 질의에 답한다.
난이도

보통10점 중 7점

유형
수학, 정수론, 구현
정답자
아직 제출이 없습니다

문제

3차원 좌표 공간의 원점 (0,0,0)(0,0,0)에 나이트 하나가 놓여 있다. 이 나이트는 체스의 나이트처럼 움직일 수 있지만, 2차원이 아닌 3차원 공간에서 이동한다. 나이트는 현재 위치에서 다음과 같은 방식으로 이동할 수 있다:

  • xx, yy, zz 좌표 중 하나는 ±1\pm 1만큼, 다른 하나는 ±2\pm 2만큼, 나머지 하나는 ±3\pm 3만큼 변화시키는 방식으로 이동한다.

이때, 각 좌표의 변화 순서는 상관없이 임의로 배치할 수 있다. 예를 들어, 나이트가 현재 (x,y,z)(x, y, z)에 있다면 (x+1,y+2,z+3)(x+1, y+2, z+3), (x−2,y+3,z+1)(x-2, y+3, z+1) 등의 좌표로 이동이 가능하다.

NN개의 3차원 좌표가 주어진다. 각 좌표에 대하여, 나이트가 원점 (0,0,0)(0,0,0)에서 출발하여 원하는 만큼의 이동을 통해 해당 좌표에 도착할 수 있는지 여부를 판단하여라.

입력

첫째 줄에 질문의 개수 NN가 주어진다. (1≤N≤500 000)(1 \leq N \leq 500\ 000)

둘째 줄부터 NN개의 줄에 3차원 정수 좌표 (x_i,y_i,z_i)(x\_i, y\_i, z\_i)가 주어진다. 주어지는 좌표는 모두 절댓값이 10910^{9} 이하인 정수이다.

출력

나이트가 (x_i,y_i,z_i)(x\_i, y\_i, z\_i)에 도착할 수 있다면 ii번째 줄에 YES, 아니면 NO를 출력한다. (1≤i≤N1 \leq i \leq N)

힌트

나이트의 이동을 엄밀하게 표현하면 다음과 같다: 현재 위치가 (xx, yy, zz) 라고 할 때 (x+dxx + dx, y+dyy + dy, z+dzz + dz) 의 위치로 갈 수 있다. 단, {∣dx∣|dx|, ∣dy∣|dy|, ∣dz∣|dz|} = {11, 22, 33}이다.

예제1

  1. 예제 1

    입력
    3
    0 0 1
    3 2 1
    1 4 2
    
    예상 출력
    NO
    YES
    NO