사이버 도넛 범죄 수사

시간 제한5초메모리 제한128 MB

요약
여러 테스트케이스에서 최대 10만 개의 데이터베이스 점과 5만 개의 질의 점에 대해 L1 거리(구멍 반지름과 외부 반지름 차의 절대값 합)가 최소인 점을 찾는 문제입니다.
난이도

어려움10점 중 8점

유형
분할 정복, 이분 탐색, 정렬, 기하
정답자
아직 제출이 없습니다

문제

서기 2042년, 인터넷은 가상 현실을 만들어 낼 만큼 발전했고 사이버 범죄가 매일같이 일어난다. 그래서 2041년 SWERC 대회 우승자는 사이버 범죄가 일어날 때마다 현장에 도넛을 하나씩 떨어뜨리는 요원을 개발해 냈다. 모든 도넛에는 고유 번호가 있으며, 마드리드 경찰국은 각 범죄 정보와 그 범죄 현장에 떨어진 도넛의 고유 번호가 담긴 커다란 데이터베이스를 보유하고 있다.

오늘은 너의 날이다. 너의 임무는 데이터베이스에 담긴 기록을 읽어, 새로운 범죄 현장의 도넛과 가장 비슷한 도넛을 찾아내는 새로운 요원을 개발하는 것이다.

가상 범죄학 전문가들은 두 도넛의 유사성을 판별하는 기준을 제시했는데, 그 유사도는 구멍 반지름 차이의 절댓값과 전체 반지름 차이의 절댓값을 더한 값이다. 즉, 구멍 반지름을 ll, 전체 반지름을 ww라 하면 두 도넛 (l1,w1)(l_1, w_1)과 (l2,w2)(l_2, w_2)의 유사도는 ∣l1−l2∣+∣w1−w2∣|l_1 - l_2| + |w_1 - w_2|이다. 값이 작을수록 더 비슷한 도넛이다.

입력

입력은 여러 개의 테스트 케이스로 이루어진다.

각 테스트 케이스의 첫 줄에는 데이터베이스에 들어 있는 도넛의 개수 nn이 주어진다 (1≤n≤100 0001 \le n \le 100\,000).

이어지는 nn개의 줄 중 ii번째 줄에는 ii번째 도넛의 구멍 반지름 ll과 전체 반지름 ww를 나타내는 두 정수가 주어진다 (1≤l,w≤1091 \le l, w \le 10^9).

그다음 줄에는 데이터베이스에서 찾고자 하는 도넛의 개수 qq가 주어진다 (1≤q≤50 0001 \le q \le 50\,000).

이어지는 qq개의 줄 중 ii번째 줄에는 ii번째로 조회할 도넛의 구멍 반지름과 전체 반지름을 나타내는 두 정수가 주어진다.

서로 다른 테스트 케이스는 빈 줄로 구분되며, 마지막 테스트 케이스 뒤에는 −1-1이 한 줄에 홀로 주어져 입력의 끝을 나타낸다.

출력

각 테스트 케이스마다 qq개의 줄을 출력한다. ii번째 줄에는 새로 발견된 ii번째 도넛과 가장 유사한(유사도가 가장 작은) 데이터베이스 도넛 사이의 유사도를 정수로 출력한다.

서로 다른 테스트 케이스의 출력은 빈 줄 하나로 구분한다.

예제1

  1. 예제 1

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