비밀 요원

평면 직선 그래프(성벽)에서 벽을 넘는 비용이 벽의 높이일 때, 무한대 지점에서 시작해 주어진 순서대로 여러 지점을 방문하는 각 구간의 최소 비용을 구한다.

어려움9그래프기하최단 경로DFS아직 제출이 없습니다시간 제한2초메모리 제한512 MB

문제

2000년 전, 지금 이 자리에는 도시국가 인호국의 성이 서 있었다. 인호국의 성은 11번부터 NN번까지 번호가 붙은 망루 NN개와, 두 망루를 잇는 성벽 MM개로 이루어져 있다. 성벽은 선분 모양이고, 어떤 두 성벽도 망루가 아닌 지점에서는 만나지 않으며, 어느 망루에서든 성벽을 타고 다른 모든 망루로 갈 수 있다. 인호국의 왕 인호는 이 성 안에 국가 기밀을 숨겨 두었다.

경쟁 관계인 도시국가 민석국의 왕 민석이는 그 기밀을 캐내려고 비밀 요원을 성으로 들여보낸다. 요원은 매우 빨라서 성벽이 가로막지 않는 한 이동 시간을 무시할 수 있다. 성벽을 넘을 때는 그 성벽의 높이만큼 시간이 걸린다. 망루는 통과하지 못하므로, 요원은 언제나 망루가 아닌 지점에서 성벽을 넘는다.

민석이는 요원에게 지점 QQ개를 순서대로 방문하라고 명령했다. 각 지점은 성벽이나 망루와 겹치지 않는다. 요원은 성에서 무한히 멀리 떨어진 곳에서 출발해 11번 지점, 22번 지점의 순서로 찾아간다. 각 구간마다 요원이 쓰는 최소 시간을 구하자.

입력

첫째 줄에 망루의 개수 NN (1N2000001 \le N \le 200\,000)과 성벽의 개수 MM (N1MN+100N-1 \le M \le N+100)이 주어진다.

다음 NN개 줄에는 ii번 망루의 좌표 xix_iyiy_i가 순서대로 주어진다. (xi,yi109|x_i|, |y_i| \le 10^9)

다음 MM개 줄에는 성벽이 잇는 두 망루의 번호 uiu_iviv_i, 그리고 그 성벽의 높이 hih_i가 주어진다. (1ui,viN1 \le u_i, v_i \le N, uiviu_i \ne v_i, 1hi1091 \le h_i \le 10^9)

같은 두 망루를 잇는 성벽은 많아야 하나이고, 어떤 두 성벽도 망루가 아닌 지점에서는 만나지 않는다. 임의의 두 망루 사이는 성벽을 타고 오갈 수 있다.

다음 줄에 명령의 개수 QQ (1Q2000001 \le Q \le 200\,000)가 주어진다.

다음 QQ개 줄에는 방문할 지점의 좌표 aia_ibib_i가 순서대로 주어진다. (ai,bi109|a_i|, |b_i| \le 10^9)

모든 지점은 성벽이나 망루와 겹치지 않는다.

출력

QQ개 줄을 출력한다. ii번째 줄에는 i1i-1번 지점에서 ii번 지점으로 가는 최소 시간을 출력한다. 00번 지점의 좌표는 (,)(\infty, \infty), 즉 성에서 무한히 먼 곳으로 본다.

힌트

아래 그림은 망루 4개와 성벽 5개로 이루어진 성, 그리고 순서대로 방문하는 지점 3개를 나타낸다.