달팽이

NYPC 2022 · Round 1

달팽이가 N×NN \times N 크기의 격자 위를 느릿느릿 기어간다.

달팽이는 격자 첫 번째 행의 첫 번째 칸에서 오른쪽을 향한 상태로 앞으로 움직이기 시작한다. 달팽이가 격자의 바깥이나 이미 방문한 칸으로 움직이려고 하는 경우, 시계 방향으로 9090도 회전한 후 움직임을 계속한다. 단, 회전 후에도 방문하지 않은 칸으로 움직일 수 없는 경우 움직임을 중단한다. 이때 달팽이는 결국 모든 칸을 정확히 한 번씩 지나게 된다.

예를 들어, N=5N=5일 때 5×55 \times 5 크기의 격자 위에서 달팽이가 지나간 순서대로 각 칸에 번호를 적으면 아래 <그림 1>과 같다.

격자의 크기를 나타내는 정수 NN과 더불어 서로 다른 두 개의 번호 AABB가 주어진다. N×NN \times N 격자에서 달팽이가 지나간 후, 각 칸의 번호가 결정된 상태에서 AABB가 적힌 칸들을 꼭짓점으로 하는 직사각형을 생각해보자. 예를 들어, <그림 1>에서 A=17A = 17, B=20B = 20인 경우, 이 두 번호가 적힌 칸들을 꼭짓점으로 하는 직사각형은 <그림 2>와 같다. 만약, A=19A = 19, B=23B = 23인 경우, 그것에 의해 결정된 직사각형은 <그림 3>과 같다.

격자의 크기를 나타내는 정수 NN과 달팽이가 지나간 칸 중 두 칸을 나타내는 서로 다른 두 개의 번호 AABB가 주어질 때, 이 두 번호가 적힌 칸들을 꼭짓점으로 하는 직사각형이 정사각형인지 판별하는 프로그램을 작성하시오.

입력 형식

첫 줄에 테스트 케이스의 수를 나타내는 정수 TT가 주어진다. (2T1000002 \le T \le 100\,000)

이어지는 TT 개의 줄에는 세 정수 NN, AA, BB가 공백으로 구분되어 주어진다. (2N1000000000;2 \le N \le 1\,000\,000\,000; 1A<BN×N1 \le A < B \le N \times N)

출력 형식

TT 개의 줄에 걸쳐, 각 테스트 케이스의 정답을 출력한다. 각 줄에는 N×NN \times N 크기의 격자에서 AABB에 의해 결정된 사각형이 정사각형이면 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

T300;T \le 300; N300N \le 300

종류 2: 19

T300;T \le 300; N30000N \le 30\,000

종류 3: 18

N3000;N \le 3\,000; TT 개의 테스트 케이스에서 NN 값이 모두 같음.

종류 4: 25

N300000;N \le 300\,000; TT 개의 테스트 케이스에서 NN 값이 모두 같음.

종류 5: 21

추가적인 제한 조건이 없음.

해설