가장 가까운 점 쌍
시간 제한1.5초메모리 제한512 MB
두 점 집합이 각각 수평선 위에 있을 때, P와 Q 사이 맨해튼 거리의 최솟값과 그 최솟값을 이루는 서로 다른 쌍의 개수를 구한다.
문제
평면 위의 유한한 점 집합 와 가 주어진다. , 인 점 쌍 가운데 두 점의 거리가 가장 작은 쌍을 와 의 가장 가까운 쌍이라고 한다.
이 문제에서 두 점 와 의 거리는 다음과 같이 정의한다.
여기서 와 는 점 의 좌표와 좌표이고, 와 는 점 의 좌표와 좌표다. 즉 , 인 쌍 가 가장 가까운 쌍이라는 것은 다음과 같다.
두 집합 와 가 주어지면 가장 가까운 쌍의 거리와 서로 다른 가장 가까운 쌍의 개수를 구하는 프로그램을 작성하라. 에서 고른 점이 다르거나 에서 고른 점이 다르면 서로 다른 쌍으로 센다.
입력으로 주어지는 점은 다음 두 성질을 만족한다.
- 어떤 정수 과 가 있어서 의 모든 점은 직선 위에 있고, 의 모든 점은 직선 위에 있다.
- 의 서로 다른 두 점은 좌표가 다르고, 의 서로 다른 두 점도 좌표가 다르다.
입력
입력은 표준 입력으로 받는다. 입력은 네 줄이다.
첫째 줄에 정수 과 이 주어진다 (, ). 은 집합 의 점 개수이고, 은 집합 의 점 개수다.
둘째 줄에 정수 과 가 공백 하나를 사이에 두고 순서대로 주어진다 ().
셋째 줄에 이상 이하의 서로 다른 정수 개가 공백 하나로 구분되어 주어진다. 이 값은 집합 에 속한 점의 좌표이고, 좌표는 모두 이다.
넷째 줄에 이상 이하의 서로 다른 정수 개가 공백 하나로 구분되어 주어진다. 이 값은 집합 에 속한 점의 좌표이고, 좌표는 모두 다.
출력
출력은 표준 출력으로 한다. 한 줄에 정수 두 개를 공백 하나로 구분해 출력한다. 첫 번째 정수는 와 의 가장 가까운 쌍의 거리이고, 두 번째 정수는 가장 가까운 쌍의 개수다.