만드는 중입니다

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

Fladdermusen (박쥐 우편배달)

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

요약
직사각형 동굴에 놓인 수직 장애물을 피해 두 점 사이의 최단 맨해튼 비행 거리를 Q개의 질의마다 구합니다.
난이도

보통10점 중 7점

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

문제

Båtman은 다른 많은 박쥐들과 함께 큰 동굴에 산다. Båtman은 방금 공식 박쥐 우편배달부가 되었기 때문에, 동굴 안의 특정 지점들 사이에서 편지를 배달해야 한다.

동굴은 2차원 직사각형이며, 높이는 HH cm, 너비는 WW cm이다. 동굴에는 총 NN개의 석순과 종유석이 있다. 석순은 동굴 바닥에서 위로 자라는 수직 돌기이고, 종유석은 동굴 천장에서 아래로 늘어진 수직 돌기이다. 둘 다 무한히 얇지만 비행을 막는다.

Båtman은 위, 아래, 왼쪽, 오른쪽으로만 날 수 있고, 이 네 방향은 언제든지 바꿀 수 있다. 여기서 관심 있는 거리는 맨해튼 거리이다. 예를 들어 Båtman은 오른쪽으로 0.4 cm 날아간 뒤 위쪽으로 4.3 cm 날 수 있다.

첫 번째 예제의 그림이다. 점선은 첫 번째 편지를 배달하는 길이 12의 최단 경로 중 하나를 보여준다.

Båtman에게는 배달할 편지 QQ개의 목록이 있다. 각 편지는 동굴 안의 한 지점에서 받아 다른 지점으로 전달해야 한다. 각 편지마다 시작점에서 도착점까지 Båtman이 날아야 하는 최단 거리를 구하라.

입력

첫 줄에 네 정수 NN, QQ, HH, WW가 주어진다.

  • 1≤N≤200 0001 \le N \le 200\,000: 석순과 종유석의 총 개수이다.
  • 1≤Q≤200 0001 \le Q \le 200\,000: 배달할 편지의 수이다.
  • 1≤H,W≤1091 \le H, W \le 10^9: 동굴의 높이와 너비이다.

다음 NN개의 줄은 다음 중 하나의 형식이다.

  • 1 x y: 점 (x,0)(x, 0)에서 점 (x,y)(x, y)까지 자라는 석순이 있다.
  • 2 x y: 점 (x,H)(x, H)에서 점 (x,y)(x, y)까지 늘어진 종유석이 있다.

천장에서 바닥까지 닿는 석순이나 종유석은 없으며, 모두 동굴 안에 있다. 즉 1≤xi<W1 \le x_i < W, 1≤yi<H1 \le y_i < H이다.

다음 QQ개의 줄에는 네 정수 x1,y1,x2,y2x_1, y_1, x_2, y_2 (1≤x1,x2<W1 \le x_1, x_2 < W, 1≤y1,y2<H1 \le y_1, y_2 < H)가 주어지며, 점 (x1,y1)(x_1, y_1)에서 점 (x2,y2)(x_2, y_2)까지 편지를 배달한다는 뜻이다.

입력의 모든 xx 좌표는 서로 다르다고 보장된다.

출력

QQ개의 줄을 출력한다. ii번째 줄에는 ii번째 편지를 배달하기 위해 Båtman이 날아야 하는 최소 거리를 정수로 출력한다.

예제2

  1. 예제 1

    입력
    3 1 5 7
    1 2 4
    2 3 2
    1 5 3
    1 2 6 1
    
    예상 출력
    12
    
  2. 예제 2

    입력
    3 3 30 30
    1 10 10
    1 15 5
    2 20 20
    5 15 25 15
    6 6 4 4
    16 1 14 1
    
    예상 출력
    20
    4
    10