플러드타운

아직 제출이 없습니다시간 제한2초메모리 제한512 MB

문제

플러드타운은 레이니 카운티에 있는 한 변이 1 km인 정사각형 마을이다. 집은 마을 곳곳에 불규칙하게 흩어져 있지만, 땅의 주인을 정하는 규칙은 간단하다. 마을 안의 어떤 지점이든 그 지점까지 직선거리가 가장 짧은 집이 그 땅을 가진다. 물론 두 집이 같은 자리에 설 수는 없다.

지난주에 펜스터 가족이 플러드타운의 집 한 채로 이사했다. 펜스터 씨는 집 둘레에 울타리를 세우려고 부동산 중개인에게 부탁해 자기 땅의 경계마다 표식을 박아 두었다. 그런데 어제 큰 폭풍우가 마을을 덮치면서 표식이 모두 쓸려 나갔다. 다행히 펜스터 씨의 집과 다른 집의 위치가 표시된 마을 지도는 남아 있다.

펜스터 씨는 마을 밖 자재상에서 울타리 자재를 살 생각이다. 기둥이 몇 개나 필요한지 구해서 펜스터 씨를 도와주자. 기둥은 울타리의 방향이 꺾이는 지점에만 세운다. 펜스터 씨의 땅이 플러드타운의 경계선까지 닿는다면 경계선을 따라 세울 기둥도 함께 세어야 한다. 기둥 개수에 아무 영향을 주지 않는 집도 있다.

입력

플러드타운에 있는 집의 위치는 좌표 (x,y)(x, y)로 나타낸다. 좌표계의 원점 (0,0)(0, 0)은 플러드타운의 남서쪽 모서리이고, xx축은 서쪽에서 동쪽으로, yy축은 남쪽에서 북쪽으로 뻗는다. 좌표 한 단위는 1미터다.

플러드타운에 있는 집의 수를 nn(1n101 \le n \le 10)이라 하자. 입력은 n+1n + 1개의 줄로 이루어진다. 첫째 줄에 정수 nn이 주어진다. 이어지는 nn개의 줄에는 집 한 채의 좌표를 나타내는 두 정수 xx, yy가 공백으로 구분되어 주어진다. 펜스터 가족의 집은 나머지 집보다 먼저, 즉 둘째 줄에 주어진다. 모든 집은 넓이 1 km²인 정사각형 마을의 내부나 경계 위에 있다. 즉, 0x10000 \le x \le 1000, 0y10000 \le y \le 1000이다.

출력

펜스터 씨의 땅을 둘러싸는 울타리를 세우는 데 필요한 기둥의 개수를 정수 하나로 출력한다.

힌트

  • 두 점 (x0,y0)(x_0, y_0)(x1,y1)(x_1, y_1)을 잇는 선분의 수직이등분선은 다음 식으로 나타난다.

(y1y0)(yy0+y12)+(x1x0)(xx0+x12)=0(y_1 - y_0)\left(y - \frac{y_0 + y_1}{2}\right) + (x_1 - x_0)\left(x - \frac{x_0 + x_1}{2}\right) = 0

  • 두 직선 ax+by+c=0ax + by + c = 0dx+ey+f=0dx + ey + f = 0이 서로 만난다면, 교점은 다음과 같다.

(bfceaebd,cdafaebd)\left(\frac{bf - ce}{ae - bd}, \frac{cd - af}{ae - bd}\right)