아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

삼각형 통나무

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

요약
각 직사각형 질의마다 안에 있는 나무 세 그루의 높이로 삼각형을 만들 수 있는지 판단합니다.
난이도

어려움10점 중 8점

유형
세그먼트 트리, 정렬, 수학
정답자
아직 제출이 없습니다

문제

숲에 나무가 아주 많다. 각 나무는 정수 좌표에 있고 정수 높이를 가진다. 나무를 하나 베면 그 높이와 같은 길이의 통나무를 얻는다.

나무 세 그루를 베어서 삼각형을 이루는 통나무 세 개(퇴화되지 않은 삼각형)를 얻고 싶다.

쿼리마다 축에 평행한 직사각형 영역이 주어진다. 각 쿼리에 대해, 직사각형 경계 위의 나무를 포함한 그 영역 안의 나무 세 그루를 베어 삼각형 통나무 세 개를 얻을 수 있는지 판단한다.

입력

첫 줄에 두 정수 nn과 qq(1≤n,q≤1051 \le n,q \le 10^5)가 주어진다. nn은 나무의 개수, qq는 쿼리의 개수이다.

다음 nn개 줄에는 세 정수 xx, yy, hh(1≤x,y,h≤1091 \le x,y,h \le 10^9)가 주어진다. 좌표 (x,y)(x,y)에 높이 hh인 나무가 있다는 뜻이다. 모든 나무의 좌표는 서로 다르다.

다음 qq개 줄에는 네 정수 xlowx_{low}, ylowy_{low}, xhighx_{high}, yhighy_{high}(1≤xlow≤xhigh≤1091 \le x_{low} \le x_{high} \le 10^9, 1≤ylow≤yhigh≤1091 \le y_{low} \le y_{high} \le 10^9)가 주어진다. 쿼리의 축에 평행한 직사각형 영역이다.

출력

qq개 줄에 답을 출력한다. 각 줄에는 해당 쿼리의 답으로 정수 하나를 출력한다. 영역 안의 나무 세 그루로 퇴화되지 않은 삼각형 통나무 세 개를 만들 수 있으면 1, 아니면 0을 출력한다. 답은 입력 순서대로 출력한다.

예제1

  1. 예제 1

    입력
    9 5
    1 3 3
    2 3 1
    3 3 4
    1 2 1
    2 2 5
    3 2 9
    1 1 2
    2 1 6
    3 1 5
    1 1 1 2
    1 1 2 2
    1 1 1 3
    1 2 3 2
    1 1 3 3
    
    예상 출력
    0
    1
    0
    0
    1