농장에 철조망으로 울타리를 만들었다고 한다. 울타리는 단위 철조망들로 구성되는데, 한 단위 철조망은 두개의 말뚝을 똑바른 선분 모양의 철조망으로 이은 것이다. N개의 단위 철조망이 2차원 평면 상의 좌표로 주어진다. 두 단위 철조망이 중간에서 만나는 경우는 없고, 두 단위 철조망이 점을 공유한다면 한 말뚝만 공유가 가능하다.
울타리나 말뚝 위에 있지 않은 두 점 와 가 주어진다고 하자. 에서 로 임의의 곡선을 통해서 이동하면 울타리 위의 점을 지나는 개수를 알 수 있을 것이다. 단, 곡선이 말뚝 위를 지날 수 없다.
아래 그림에서 똑바른 선분들은 울타리들이다. 와 의 위치가 표시되어 있다. 세 개의 곡선이 그려져 있는데, 그 중 울타리 위의 점을 지나는 개수가 가장 작은 것은 위쪽 곡선이며 개의 점을 지난다.

울타리의 모양과 , 의 위치를 입력으로 받아 와 를 연결하는 곡선들 중 울타리 위의 점을 지나는 개수가 가장 작은 것을 찾는 프로그램을 작성하라.
입력 형식
첫째 줄에는 단위 철조망의 개수 이 주어진다. ()
다음 개의 줄에 단위 철조망이 , , , 의 개의 정수로 주어진다. 서로 다른 위치 과 에 있는 말뚝을 잇는 단위 철조망이라는 의미이다.
다음 개의 줄에 와 의 좌표가 각각 공백으로 구분되어 주어진다. 모든 좌표 값은 에서 까지의 정수이다.
출력 형식
첫째 줄에 울타리 위의 점을 지나는 가장 작은 개수를 출력한다.
예제 1
입력
3 1 1 5 1 1 1 1 5 5 1 5 5 3 3 8 3
출력
0
예제 2
입력
8 1 1 7 1 7 1 7 7 7 7 1 7 1 7 1 1 2 2 6 2 6 2 6 6 6 6 2 6 2 6 2 2 4 4 9 4
출력
2
채점 방식
입력 케이스들은 다음과 같은 종류로 구별되며, 한 종류의 케이스를 다 맞추어야 그 종류에 배정된 점수를 받을 수 있다.
종류 1: 27점
모든 말뚝은 각 개의 철조망에 연결되어 있다.
종류 2: 42점
모든 말뚝의 쌍은 개 이상의 철조망을 따라 가면 연결이 되어 있다.
종류 3: 31점
별다른 제약조건 없음.
해설
울타리를 구성하는 각 철조망의 왼쪽과 오른쪽 면을 따로 생각하고, 한 면에서 시작해서 왼손법칙이나 오른손법칙처럼 움직이는 것을 상상해 볼 수 있다. 이 움직임을 철조망과 말뚝의 연결 관계를 순회하는 것으로 구현할 수 있다.
이 순회들이 계산되고 나면 평면은 여러 개의 영역들로 구분되고, 이후에 남는 문제는 두 점이 어떤 영역에 포함되는 지, 영역 간을 이동하기 위해 몇 개의 철조망을 넘어야 하는지를 판단하는 문제이다. 이 문제는 영역들을 정점으로 하는 그래프를 만들어 해결이 가능하다. 철조망들이 모두 연결되어 한 덩어리인 경우는 이 방법만으로 해결이 가능하지만, 철조망들의 연결된 덩어리가 여러 개인 경우는 추가적인 아이디어가 필요하다.