Problem Solving/KOITP

가장 거리가 먼 두 점 - FARTHEST_PAIR

hongjun7 2017. 2. 9. 18:59

문제 링크(koitp.org/problem/FARTHEST_PAIR/)

답이 되는 두 점의 쌍은 컨벡스헐 위에 존재한다.

컨벡스헐 위의 점들에 대해서 로테이팅 캘리퍼스로 답을 탐색한다.

로테이팅 캘리퍼스에서 판단 기준은 유클리드 거리가 아닌 CCW로 판단한다.

구간의 양 끝이 [A, B]라고 한다면,

A번째 점과 A+1번째 점을 잇는 선분과, B번째 점과 B+1번째 점을 잇는 선분의 외적을 계산해 방향이

왼쪽으로 계속 꺽이다가 오른쪽으로 꺽이게 되는 순간 멈추면 된다.