만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

우주 고퍼

시간 제한20초메모리 제한512 MB

요약
큐브 안에 축에 평행한 직선 터널들이 주어질 때, 두 빈 칸이 빈 공간으로 서로 이어지는지 판별합니다.
난이도

어려움10점 중 8점

유형
유니온 파인드, 세그먼트 트리, 정렬
정답자
아직 제출이 없습니다

문제

우주 고퍼들은 한 변의 길이가 정확히 N=106N = 10^6인 정육면체 모양의 기묘한 소행성에 살고 있다. 지리학자들은 이 소행성을 N×N×NN \times N \times N개의 미세 정육면체로 나누고, 각 미세 정육면체를 (x,y,z)(x, y, z) 세 좌표로 나타내는 직교 좌표계를 정했다.

고퍼들의 주된 일이자 가장 좋아하는 취미는 땅굴 파기다. 소행성에는 많은 땅굴이 뚫려 있다. 각 땅굴은 소행성의 바깥쪽 벽 중 한 곳에서 시작해, 그 벽에 수직인 직선을 따라 미세 정육면체를 제거하며 반대편 벽까지 이어진다. 하지만 오늘은 큰 축제날이라 땅파기가 전면 금지되었다. 친구를 방문하려는 고퍼는 빈 공간으로만 이동해야 한다.

고퍼들에게 길 찾기는 어려우므로 도움이 필요하다. 출발 위치와 도착 위치의 쌍들이 주어지면, 빈 미세 정육면체만 지나서 출발 위치에서 도착 위치로 갈 수 있는지 판단하라. 고퍼는 파낸 공간으로만 움직이며, 처음 정육면체 바깥으로는 나가지 않는다. 이는 일종의 광장공포증일지도 모른다.

입력

첫 줄에 테스트 케이스의 수 zz (1≤z≤61 \le z \le 6)가 주어진다. 각 테스트 케이스는 다음과 같이 구성된다.

테스트 케이스의 첫 줄에는 땅굴의 개수 nn (n≤300 000n \le 300\,000)이 양의 정수로 주어진다. 이어서 nn개의 줄에 땅굴이 하나씩 주어진다. 각 줄은 (x,y,−1)(x, y, -1), (x,−1,z)(x, -1, z), (−1,y,z)(-1, y, z) 중 하나의 형태를 띤 정수 세 개이며, 1≤x,y,z≤1061 \le x, y, z \le 10^6을 만족한다.

(x,y,−1)(x, y, -1)은 모든 정수 tt에 대해 (x,y,t)(x, y, t) 미세 정육면체를 제거한 땅굴을 뜻한다. 마찬가지로 (x,−1,z)(x, -1, z)는 모든 (x,t,z)(x, t, z)를, (−1,y,z)(-1, y, z)는 모든 (t,y,z)(t, y, z)를 제거한 땅굴을 뜻한다.

다음 줄에는 질문의 수 qq (1≤q≤500 0001 \le q \le 500\,000)가 주어진다. 이어서 qq개의 줄에 11 이상 10610^6 이하의 정수 여섯 개 (x1,y1,z1,x2,y2,z2)(x_1, y_1, z_1, x_2, y_2, z_2)가 주어진다. 각 질문은 (x1,y1,z1)(x_1, y_1, z_1) 칸에서 (x2,y2,z2)(x_2, y_2, z_2) 칸까지, 빈 칸만 거치고 인접한 칸끼리 이동하는 경로가 있는지를 묻는다. 두 칸은 면을 공유할 때 인접한다. 모든 출발 위치와 도착 위치는 빈 칸임이 보장된다.

출력

각 테스트 케이스마다 그 질문들에 대한 답을 한 줄에 하나씩 출력한다. 경로가 있으면 "YES", 없으면 "NO"를 출력한다.

예제1

  1. 예제 1

    입력
    1
    6
    -1 1 1
    3 -1 2
    1 5 -1
    5 5 -1
    -1 5 5
    -1 5 9
    6
    1 1 1 6 1 1
    8 1 1 3 2 2
    1 1 1 5 5 5
    1 5 5 5 5 9
    1 5 10 10 1 1
    1 5 9 5 5 9
    
    예상 출력
    YES
    YES
    NO
    YES
    NO
    YES