프로그래밍 튜터 배정

맨해튼 거리 도시에서 N명의 학생과 N명의 튜터를 일대일로 짝지을 때, 각 짝의 거리가 K 이하가 되는 가장 작은 K를 구한다.

보통6이분 탐색그래프문자열 매칭유니온 파인드아직 제출이 없습니다시간 제한2초메모리 제한512 MB

문제

당신은 브루스 아든 프로그래밍 모임의 설립자다. 이 모임은 경험 많은 프로그래머를 튜터로 세워 초보자를 가르치는 프로그램이다. 학생 NN명과 튜터 NN명이 있고, 이제 이들을 일대일로 짝지어야 한다. 학생은 자기 집에서 튜터의 집까지 이동해야 하므로 이동 거리를 기준으로 짝을 정하기로 했다.

이동 거리의 총합을 최소로 만드는 방식은 공평하지 않다. 다른 학생은 모두 아주 가까운 튜터를 만나는데 한 학생만 엄청나게 먼 거리를 이동하는 배정이 나올 수 있고, 잘 나누면 모두가 어느 정도 가까운 튜터를 만나는 배정이 존재할 수도 있다.

그래서 가장 멀리 이동하는 학생의 거리를 최소로 만들기로 했다. 두 배정을 비교할 때, 첫 번째 배정에서 가장 멀리 이동하는 학생의 거리가 두 번째 배정에서 가장 멀리 이동하는 학생의 거리보다 짧으면 첫 번째 배정이 더 좋다.

학생들이 도시에 살기 때문에 학생이 이동하는 거리는 두 지점 사이의 직선 거리가 아니다. 이 도시에서 두 지점 (X,Y)(X, Y)(X,Y)(X', Y') 사이의 거리는 XX+YY|X - X'| + |Y - Y'|이다.

입력

첫째 줄에 학생 수이자 튜터 수인 정수 NN이 주어진다. (1N1001 \le N \le 100)

다음 NN개 줄에는 각각 공백으로 구분된 정수 두 개가 주어지며, 학생 NN명의 위치를 나타낸다.

이어지는 NN개 줄에는 각각 공백으로 구분된 정수 두 개가 주어지며, 튜터 NN명의 위치를 나타낸다.

모든 좌표는 절댓값이 10810^8 이하다. 학생끼리 위치가 같아도 되고, 튜터끼리 위치가 같아도 되며, 학생과 튜터의 위치가 같아도 된다.

출력

학생과 튜터를 일대일로 짝지었을 때 어느 짝의 거리도 KK를 넘지 않도록 만들 수 있는, 가장 작은 정수 KK를 한 줄에 출력한다.