Grand Escape

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

요약
각 사람이 아래로 곧장 내려가며 만나는 수평 벽마다 속도가 줄어들 때, y=0까지 도달하는 데 걸리는 시간을 각각 구한다.
난이도

어려움10점 중 8점

유형
정렬, 이분 탐색, 누적 합, 구현
정답자
아직 제출이 없습니다

문제

SRC(Science Research City) 는 2차원 평면, 그중에서도 제1사분면 위에 있는 도시이다. 도시에는 NN개의 벽이 있다. 벽은 xx축과 평행한 선분으로 표현된다. 구체적으로, i(1≤i≤N)i(1\leq i\leq N) 번째 벽은 (Lx_1,i,Ly_i),(Lx_2,i,Ly_i)(Lx\_{1,i},Ly\_i) ,(Lx\_{2,i},Ly\_i)을 잇는 선분이다. 하지만 최근 끝나지 않는 비로 인해 침수될 위험이 커진 SRC는 직선 y=0y=0을 따라 대피소를 지었다.

도시에는 MM명의 사람이 살고 있다. i(1≤i≤M)i(1\leq i\leq M)번째 사람은 (Px_i,Py_i)(Px\_i,Py\_i) 위치에 있다. SRC에 홍수가 나면, 각 사람은 y=0y=0을 향해 −y-y 방향으로 이동하며, 초기 속도는 11 이다.

모든 사람은 벽에 닿을 때마다 속도가 감소한다. 선분의 끝점에 닿는 것도 벽에 닿는 것으로 간주한다. 벽에 닿기 전 속도가 1n\frac{1}{n}이었다면, 벽에 닿은 후의 속도는 1n+1\frac{1}{n+1}가 된다. 즉 11칸을 이동하는 데 걸리는 시간이 11만큼 늘어난다. 모든 yy좌표는 겹치는 것이 없다. 즉, 모든 사람과 벽의 yy좌표는 모두 다르다. 따라서 초기 사람의 위치가 벽과 겹치는 일이 없다. xx좌표는 같을 수 있음에 유의하라.

당신은 MM명의 사람 각각에 대해 y=0y=0에 도달하기 위해 걸리는 시간을 구해야 한다.

입력

첫 번째 줄에 벽의 수 NN이 주어진다.

이후 NN줄에 걸쳐 그중 i(1≤i≤N)i(1\leq i\leq N)번째 줄에 ii번째 벽에 대한 정보 Lx_1,i,Lx_2,i,Ly_iLx\_{1,i}, Lx\_{2,i}, Ly\_i가 공백으로 구분되어 주어진다. ii번째 벽은 (Lx_1,i,Ly_i),(Lx_2,i,Ly_i)(Lx\_{1,i},Ly\_i) ,(Lx\_{2,i},Ly\_i)을 잇는 선분이라는 의미이다.

다음 줄에 사람의 수 MM이 주어진다.

이후 MM줄에 걸쳐 그중 i(1≤i≤M)i(1\leq i\leq M)번째 줄에 ii번째 사람의 위치 Px_i,Py_iPx\_i, Py\_i가 공백으로 구분되어 주어진다.

출력

MM개의 줄을 출력한다. i(1≤i≤M)i(1\leq i\leq M)번째 줄에 ii번째 사람이 y=0y=0에 도달하기 위해 걸리는 시간을 출력한다.

제한

  • 0≤N≤200,0000 \leq N \leq 200,000 (N=0N=0일 수 있음에 주의하라)
  • 1≤M≤200,0001\leq M \leq 200,000
  • Lx1_i<Lx2_iLx1\_i < Lx2\_i
  • 입력에서 주어지는 모든 좌표 (x,y)(x, y)는 1≤x,y≤1091 \leq x, y \leq 10^9를 만족한다.
  • 모든 yy좌표는 겹치는 것이 없다.
  • 입력에서 주어지는 모든 수는 정수이다.

힌트

  • 이 문제의 일부 테스트 케이스는 답의 범위가 2312^{31}을 넘어갈 수 있으므로 long long 자료형을 쓰도록 하자.

예제1

  1. 예제 1

    입력
    3
    1 5 1
    2 9 4
    6 10 6
    4
    3 2
    4 8
    8 5
    7 7
    
    예상 출력
    3
    13
    9
    17