모든 점을 지나지 않는 수직선으로 점들을 좌우로 나누고, 각 집합을 감싸는 최소 넓이 볼록 껍질의 넓이 합이 최소가 되게 하는 위치를 찾는다.
어려움8기하정렬분할 정복구현아직 제출이 없습니다시간 제한2초메모리 제한512 MB유적 보존 단체 ICPC(International Community for Preservation of Constructions)와 JAG(Japanese Archaeologist Group)가 있다. 최근 어떤 지역에서 유적이 많이 발견되었고, 두 단체는 유적을 나누어 ICPC가 일부를, JAG가 나머지를 보존하기로 했다.
나누는 규칙은 다음과 같다.
문제는 직선을 어디에 그을지이다. 각 단체는 배정받은 유적 전체를 감싸는 울타리를 정확히 하나 세워 보존하며, 예산을 아끼기 위해 울타리의 길이를 최소로 만든다. 울타리가 감싸는 영역이 넓으면 안쪽을 관리하는 데 비용이 많이 들기 때문에, 두 단체는 보존 비용의 합, 즉 두 울타리가 감싸는 영역의 넓이의 합을 최소로 만들고 싶다.
직선을 알맞게 그었을 때 두 울타리가 감싸는 영역의 넓이의 합의 최솟값을 구하는 프로그램을 작성하시오.
입력은 테스트 케이스 하나로 이루어진다.
N
x1 y1
...
xN yN
첫째 줄에 발견된 유적의 수 N (1≤N≤100,000)이 주어진다. 다음 N개의 줄에는 유적의 위치가 주어진다. 그중 i번째 줄에는 정수 xi와 yi가 주어지며, i번째 유적이 지역의 기준점에서 동쪽으로 xi, 북쪽으로 yi만큼 떨어진 곳에 있다는 뜻이다. 유적에 대해 다음을 가정해도 된다.
직선을 알맞게 그었을 때의 보존 비용의 합, 즉 두 울타리가 감싸는 영역의 넓이의 합의 최솟값을 출력한다. 넓이의 합은 항상 정수이거나 정수에 0.5를 더한 값이며, 가장 가까운 정수로 반올림해서 출력한다. 소수 부분이 정확히 0.5이면 올림한다.