만드는 중입니다

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

드래곤 2

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

요약
각 질문마다 부족 F의 용이 부족 G의 용을 향해 쏜 불화살 중 두 마을을 잇는 도로를 지나는 개수를 구합니다.
난이도

어려움10점 중 8점

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

문제

JOI 평면에는 드래곤과 사람이 함께 살고 있다. JOI 평면은 X좌표와 Y좌표로 이루어진 넓은 좌표 평면이다. X좌표가 xx, Y좌표가 yy인 점은 (x,y)(x, y)로 나타낸다.

드래곤은 NN마리이며 1번부터 NN번까지 번호가 붙어 있다. 부족은 MM개이며 1번부터 MM번까지 번호가 붙어 있다. ii번 드래곤은 (Ai,Bi)(A_i, B_i)에 있고 CiC_i번 부족에 속한다. 평면에 드래곤이 살지 않는 부족도 있다.

사람의 마을은 (D1,E1)(D_1, E_1)과 (D2,E2)(D_2, E_2)에 있다. 도로는 두 마을을 잇는 선분이다.

부족끼리 적대 관계가 생길 수 있다. 부족 aa(1≤a≤M1 \le a \le M)가 부족 bb(1≤b≤M1 \le b \le M, a≠ba \ne b)에 적대적이 되면, 부족 aa의 모든 드래곤이 부족 bb의 모든 드래곤을 향해 불덩이를 쏜다. 불덩이는 목표를 향해 곧게 날아가며, 목표에 도달한 뒤에도 같은 방향으로 계속 날아간다. 따라서 불덩이의 궤적은 반직선이다.

드래곤의 불덩이가 도로와 교차하면 도로가 손상된다. 앞으로 일어날 수 있는 적대 관계가 QQ개 주어진다. 각 적대 관계마다 도로와 교차하는 불덩이의 개수를 구한다.

입력

첫 줄에 정수 NN, MM이 공백으로 구분되어 주어진다. NN은 드래곤의 수, MM은 부족의 수이다.

이어지는 NN개의 줄의 ii번째 줄에는 정수 AiA_i, BiB_i, CiC_i가 주어진다. 이는 ii번 드래곤이 (Ai,Bi)(A_i, B_i)에 있고 부족 번호가 CiC_i라는 뜻이다.

다음 줄에는 정수 D1D_1, E1E_1, D2D_2, E2E_2가 주어진다. 두 마을은 각각 (D1,E1)(D_1, E_1)과 (D2,E2)(D_2, E_2)에 있다.

다음 줄에는 적대 관계의 수 QQ가 주어진다.

이어지는 QQ개의 줄의 jj번째 줄에는 정수 FjF_j, GjG_j가 주어진다. 이는 jj번째 적대 관계에서 부족 FjF_j가 부족 GjG_j에 적대적이 된다는 뜻이다.

출력

QQ개의 줄을 출력한다. jj번째 줄에는 jj번째 적대 관계에서 도로와 교차하는 불덩이의 개수를 출력한다.

제한

2≤N≤300002 \le N \le 30000

2≤M≤N2 \le M \le N

−109≤Ai,Bi≤109-10^9 \le A_i, B_i \le 10^9 (1≤i≤N1 \le i \le N)

1≤Ci≤M1 \le C_i \le M (1≤i≤N1 \le i \le N)

−109≤D1,E1,D2,E2≤109-10^9 \le D_1, E_1, D_2, E_2 \le 10^9

N+2N+2개의 점 (A1,B1),…,(AN,BN),(D1,E1),(D2,E2)(A_1, B_1), \ldots, (A_N, B_N), (D_1, E_1), (D_2, E_2)는 모두 서로 다르고, 어느 세 점도 한 직선 위에 있지 않다.

1≤Q≤1000001 \le Q \le 100000

1≤Fj,Gj≤M1 \le F_j, G_j \le M이고 Fj≠GjF_j \ne G_j이다.

쌍 (Fj,Gj)(F_j, G_j)는 모두 서로 다르다.

예제3

  1. 예제 1

    입력
    4 2
    0 1 1
    0 -1 1
    1 2 2
    -6 1 2
    -2 0 2 0
    2
    1 2
    2 1
    
    예상 출력
    1
    2
    
  2. 예제 2

    입력
    3 2
    -1000000000 -1 1
    -999999998 -1 1
    0 0 2
    999999997 1 999999999 1
    1
    1 2
    
    예상 출력
    1
    
  3. 예제 3

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