일반 위치에 있는 N개의 파란 점과 2N개의 빨간 점이 주어질 때, 논문이 제시한 각도 정렬 기반 재귀 Solve/Attach 절차가 만드는 교차 없는 매칭을 그대로 구성한다.
어려움9분할 정복기하정렬재귀아직 제출이 없습니다시간 제한2초메모리 제한512 MB정밀 측정 업체가 레이저로 멀리 떨어진 물체의 변화를 재는 장치를 여러 대 사서 서로 다른 장소에 설치했다. 장치마다 레이저 센서가 두 개 있고 센서 하나가 물체 하나를 재므로, 장치 한 대가 물체 두 개를 동시에 잰다. 서로 다른 두 장치에서 나온 레이저 빛이 만나면 서로 간섭해 측정 오류가 생기므로, 레이저 빛이 서로 교차하지 않게 구성한다.
설치한 장치의 위치를 평면 위의 파란점으로, 측정할 물체의 위치를 빨간점으로 나타내면 문제는 다음과 같다.
평면에 파란점 N개와 빨간점 2N개가 있다. 다음 세 조건을 모두 만족하도록 점을 선분으로 이은 것을 연결 구성이라고 하자.

그림의 (A)에는 파란점 3개와 빨간점 6개가 있다. 1번 파란점은 1번과 4번 빨간점에, 2번 파란점은 2번과 5번 빨간점에, 3번 파란점은 3번과 6번 빨간점에 이어져 있고 어떤 두 선분도 교차하지 않으므로 (A)는 연결 구성이다. (B)는 같은 점집합의 또 다른 연결 구성이다. 즉 입력 하나에 연결 구성이 여러 개 있을 수 있다. (C)에서는 1번 파란점과 3번 빨간점을 잇는 선분이 3번 파란점과 2번 빨간점을 잇는 선분과 교차하므로 (C)는 연결 구성이 아니다.
입력 하나에 연결 구성이 여러 개 있을 수 있으므로, 출력에 적힌 절차가 만드는 연결 구성 하나를 출력한다.
첫째 줄에 파란점의 개수 N이 주어진다 (1≤N≤1,000). 다음 N개 줄 가운데 i번째 줄에 i번 파란점의 x좌표와 y좌표가 주어진다. 이어지는 2N개 줄 가운데 j번째 줄에 j번 빨간점의 x좌표와 y좌표가 주어진다. 좌표는 모두 −108 이상 108 이하의 정수이다. 주어진 점 가운데 어떤 세 점도 한 직선 위에 있지 않다.
N개 줄을 출력한다. i번째 줄에는 i번 파란점과 이어진 두 빨간점의 번호를 작은 수부터 공백 하나로 구분해 출력한다.
연결 구성이 여러 개일 수 있으므로 다음 절차가 만드는 구성을 출력한다. 이 절차는 필요한 번호를 항상 찾고, 절차가 만드는 연결 구성은 항상 세 조건을 만족한다.
파란점의 값을 2, 빨간점의 값을 −1이라 하고, 점 집합의 값을 그 집합에 속한 점의 값의 합이라고 하자. 주어진 점 3N개의 값은 0이다. 주어진 점 3N개 전체에 Solve를 실행한다.
Solve(S), S의 값은 0이다.
Attach(T; c; p), T는 비어 있지 않고 값이 −1이며, 파란점 c는 빨간점 하나를 더 이어야 하고, p는 T 밖의 점이다.