산맥
면접 대비시간 제한2초메모리 제한1024 MB
도시 N개와 평면을 나누는 직선 M개가 주어질 때, 모든 도시를 잇는 도로가 건너야 하는 직선 횟수의 합의 최솟값을 구합니다.
문제
바이토치아 왕국은 매우 독특한 지리를 가진 아름다운 나라다. 이 왕국에는 개의 산맥이 지나간다. 각 산맥은 좌표평면 위의 직선으로 생각할 수 있으며, 이 산맥들이 왕국을 여러 지역으로 나눈다.

한 점에서 여러 산맥이 만날 수 있다. 다행히 바이토치아에서는 세 산맥이 한 점에서 교차하지 않는다. 다만 한 산이 두 산맥에 동시에 속할 수는 있다.
바이토치아에서는 교통이 매우 불편하다. 개 도시 사이의 주된 이동 수단이 비행기이기 때문이다. 왕은 이를 바꾸고자 도로와 터널의 망을 건설하고 있으며, 이 망으로 모든 도시 쌍을 오갈 수 있어야 한다. 두 도시를 잇는 도로는 직선일 수도 있고 아닐 수도 있다.
개의 서로 다른 산맥을 지나는 도로를 만들려면 건설팀 개가 필요하다. 두 산맥이 만나는 점을 지나는 도로라도 건설팀은 두 개가 필요하다. 왕은 도로가 가능한 한 빨리 완공되기를 바라므로, 건설팀 하나는 한 번에 한 도로에만 배정될 수 있다.
검은 점으로 표시된 도시가 세 개인 아래 예를 보자. 빨간 선으로 표시된 도로를 두 개 만들 수 있다. 도시 1과 2를 잇는 도로에는 건설팀 두 개가 필요하고, 도시 2와 3을 잇는 도로에는 건설팀 한 개가 필요하다. 도시 1과 3 사이에는 직접 잇는 도로가 없지만, 도시 2를 거쳐 갈 수 있다.

여러분의 과제는 인프라 전체를 건설하는 데 필요한 건설팀의 최소 수를 구하는 것이다. 산맥과 도시에 대한 설명을 읽어 그 최솟값을 구하고 출력하는 프로그램을 작성하라.
입력
첫 줄에 도시의 수를 나타내는 자연수 ()이 주어진다. 다음 개 줄에는 각 도시의 좌표 와 ()가 주어진다. 모든 좌표는 정수이며, 서로 다른 두 도시가 같은 점에 있지 않다.
다음 줄에는 산맥의 수를 나타내는 자연수 ()이 주어진다. 다음 개 줄에는 직선 의 계수 , , ()가 주어진다. 모든 계수는 정수이고, 각 식은 올바른 직선을 나타낸다. 즉 또는 이다. 또한 서로 다른 두 식이 같은 직선을 나타내지 않는다.
어떤 도시도 어떤 산맥 위에 있지 않으며, 세 산맥이 한 점에서 교차하지 않는다는 것이 보장된다.
출력
최소 건설팀 수를 나타내는 정수 하나를 출력한다.