전력 수요
시간 제한1초메모리 제한128 MB
최대 20개의 발전소가 있는 거대한 격자에서 빈 칸을 가장 가까운 발전소까지의 체비쇼프 거리 순으로, 같은 거리면 행과 열 순으로 번호를 매기고 특정 순번의 칸을 찾는다.
문제
당신은 도시에 새 공장을 지으려고 한다. 이 공장은 전력 수요가 크기 때문에 발전소와 가까운 곳에 두는 것이 중요하다. 그래서 가능한 후보 위치들을 우선순위 순으로 정렬한 목록을 만들려고 한다.
공장을 세울 수 있는 영역은 개의 행과 개의 열로 이루어진 직사각형 격자이다. 일부 칸에는 발전소가 있다. 공장은 정확히 한 칸을 차지하며, 발전소가 없는 빈 칸이면 어디에나 놓을 수 있다.
행은 위에서부터 부터 까지, 열은 왼쪽에서부터 부터 까지 번호를 매긴다. 칸 는 번째 행, 번째 열의 칸을 뜻한다. 두 칸 과 사이의 거리는 로 정의하며, 여기서 는 의 절댓값이다. 한 위치의 전력 우선도는 그 칸에서 가장 가까운 발전소까지의 거리이다.
이제 모든 빈 칸에 부터 시작하는 연속한 정수를 매긴다. 먼저 전력 우선도가 작은 순서로 매기고, 전력 우선도가 같으면 행 번호가 작은 순서로, 행 번호까지 같으면 열 번호가 작은 순서로 매긴다.
예를 들어 격자에서, 발전소로부터의 거리가 인 빈 칸들은 모두 전력 우선도 을 받고, 그 바깥쪽 칸들은 우선도 를 받는 식이다. 그렇게 우선도를 정한 뒤 위 규칙에 따라 빈 칸에 번호를 매긴다.
이렇게 만든 목록에 대해 여러 개의 질의가 주어진다. 각 질의는 목록에서의 위치(순번)를 주며, 그 순번을 배정받은 칸이 어디인지 답해야 한다.
입력
입력은 여러 개의 테스트 케이스로 이루어진다.
각 테스트 케이스의 첫 줄에는 세 정수 , , 가 주어진다. 각각 격자의 행 수, 열 수(), 발전소의 개수()이다. 이어지는 개의 줄에는 각각 두 정수 과 가 주어지며, 이는 한 발전소의 행과 열을 나타낸다(, ). 한 테스트 케이스 안에서 모든 발전소의 위치는 서로 다르다. 다음 줄에는 질의의 개수 가 주어진다(). 그다음 줄에는 개의 정수 가 주어지며, 각각 목록에서의 위치이다().
마지막 테스트 케이스 뒤에는 세 개의 으로 이루어진 줄(0 0 0)이 오며, 이 줄은 처리하지 않는다.
출력
각 테스트 케이스마다 개의 줄을 출력한다. 에 대해 번째 줄에는 위치 를 배정받은 칸의 행과 열, 두 정수를 출력한다. 이 개의 줄 다음에는 하이픈 문자 - 하나만 있는 줄을 출력한다.