로켓
시간 제한1초메모리 제한128 MB
n개의 빨간 점과 n개의 흰 점을 서로 교차하지 않는 선분으로 짝지어 총 유클리드 거리를 최소로 만드는 짝을 구해 출력한다.
문제
평면 지도 위에 점 개씩으로 이루어진 두 집합 과 가 있다. 의 어떤 세 점도 한 직선 위에 있지 않다. 지대지 로켓은 의 점에 있고, 파괴해야 할 적 목표물은 의 점에 있다. 로켓은 직선으로만 날아가고, 로켓 하나가 목표물 하나를 파괴하며 목표물 하나는 로켓 하나에만 맞는다.
두 로켓의 궤적은 서로 교차하면 안 된다. 이 조건을 지키는 배정 중에서 비행 거리의 합 이 가장 작은 배정을 구하라. 는 두 점 와 사이의 유클리드 거리이고, 는 로켓 가 파괴하는 목표물이다. 가지 배정 가운데 비행 거리의 합이 최소인 배정은 정확히 하나라고 입력이 보장하므로, 답은 유일하다.
입력
첫째 줄에 과 의 크기 이 주어진다 ().
다음 개 줄에는 지도 위 한 점의 좌표 와 가 공백 하나를 사이에 두고 주어진다 (). 앞의 개 줄은 의 점이고, 뒤의 개 줄은 의 점이다. 번째 줄이 , 번째 줄이 를 나타낸다 (). 개 점은 모두 서로 다르고, 그중 어떤 세 점도 한 직선 위에 있지 않다.
출력
개 줄을 출력한다. 번째 줄에는 로켓 가 파괴하는 목표물의 번호 를 출력한다.