달팽이가 크기의 격자 위를 느릿느릿 기어간다.
달팽이는 격자 첫 번째 행의 첫 번째 칸에서 오른쪽을 향한 상태로 앞으로 움직이기 시작한다. 달팽이가 격자의 바깥이나 이미 방문한 칸으로 움직이려고 하는 경우, 시계 방향으로 도 회전한 후 움직임을 계속한다. 단, 회전 후에도 방문하지 않은 칸으로 움직일 수 없는 경우 움직임을 중단한다. 이때 달팽이는 결국 모든 칸을 정확히 한 번씩 지나게 된다.
예를 들어, 일 때 크기의 격자 위에서 달팽이가 지나간 순서대로 각 칸에 번호를 적으면 아래 <그림 1>과 같다.
격자의 크기를 나타내는 정수 과 더불어 서로 다른 두 개의 번호 와 가 주어진다. 격자에서 달팽이가 지나간 후, 각 칸의 번호가 결정된 상태에서 와 가 적힌 칸들을 꼭짓점으로 하는 직사각형을 생각해보자. 예를 들어, <그림 1>에서 , 인 경우, 이 두 번호가 적힌 칸들을 꼭짓점으로 하는 직사각형은 <그림 2>와 같다. 만약, , 인 경우, 그것에 의해 결정된 직사각형은 <그림 3>과 같다.
격자의 크기를 나타내는 정수 과 달팽이가 지나간 칸 중 두 칸을 나타내는 서로 다른 두 개의 번호 와 가 주어질 때, 이 두 번호가 적힌 칸들을 꼭짓점으로 하는 직사각형이 정사각형인지 판별하는 프로그램을 작성하시오.
첫 줄에 테스트 케이스의 수를 나타내는 정수 가 주어진다. ()
이어지는 개의 줄에는 세 정수 , , 가 공백으로 구분되어 주어진다. ( )
총 개의 줄에 걸쳐, 각 테스트 케이스의 정답을 출력한다.
각 줄에는 크기의 격자에서 와 에 의해 결정된
사각형이 정사각형이면 YES
, 아니면 NO
를
출력한다.
9 2 1 3 2 2 4 2 1 4 3 5 9 3 3 8 3 3 7 6 10 22 6 7 15 6 19 27
YES YES NO YES NO YES YES YES NO
입력 케이스들은 다음과 같은 종류로 구별되며, 한 종류의 케이스를 다 맞혀야 그 종류에 배정된 점수를 받을 수 있다.
종류 1: 17점
종류 2: 19점
종류 3: 18점
개의 테스트 케이스에서 값이 모두 같음.
종류 4: 25점
개의 테스트 케이스에서 값이 모두 같음.
종류 5: 21점
추가적인 제한 조건이 없음.