레이저 게임

n개의 반직선과 두 점 s, t가 주어질 때, s에서 t로 가는 곡선이 반드시 지나야 하는 반직선의 최소 개수를 구한다.

보통7기하그래프최단 경로아직 제출이 없습니다시간 제한2초메모리 제한512 MB

문제

너는 반 친구 여러 명과 게임을 한다. 상대는 저마다 레이저를 쏘는 장치를 하나씩 들고 있다. 레이저는 그 상대가 서 있는 자리에서 출발해 상대가 고른 방향으로 끝없이 뻗어 나간다. 모든 레이저의 방향이 정해지고 고정되면 네 차례가 시작된다. 너는 점 ss에 서 있고 점 tt까지 달려가야 하는데, 달리는 경로가 레이저를 가로지르는 횟수를 가장 적게 만들고 싶다.

경기장은 이차원 평면이다. 상대 nno1,o2,,ono_1, o_2, \dots, o_n은 서로 다른 nn개의 점 p1,p2,,pnp_1, p_2, \dots, p_n에 서 있고, 상대 oio_ipip_i에서 한쪽 방향으로만 레이저를 쏜다. 서로 평행한 레이저가 있어도 된다. 점 sstt는 모든 pip_i와 다르다.

경로는 ss에서 tt로 이어지는 곡선이면 무엇이든 된다. 경로가 어떤 레이저의 한쪽에서 반대쪽으로 넘어가면 그 레이저를 가로지른 것이다. ii번 레이저는 pip_i와 거기서 정해진 방향으로 나아간 점만 덮으므로, pip_i를 돌아 레이저가 덮지 않는 쪽으로 지나가는 경로는 ii번 레이저를 가로지르지 않는다.

ss에서 tt까지 가는 경로가 가로질러야 하는 레이저 개수의 최솟값을 구하라.

입력

입력은 여러 개의 테스트 케이스로 이루어진다. 각 테스트 케이스의 첫 줄에는 레이저의 개수 nn이 주어진다 (1n2001 \le n \le 200). 이어지는 nn개의 줄에는 공백으로 구분된 정수 네 개가 주어진다. 앞의 두 개는 상대가 서 있는 점의 xx좌표와 yy좌표이고, 뒤의 두 개는 그 상대의 레이저 위에 있는 점의 xx좌표와 yy좌표다. 마지막 줄에는 정수 네 개가 주어지며, 차례로 ssxx좌표와 yy좌표, ttxx좌표와 yy좌표다.

한 테스트 케이스에서 주어지는 점 가운데 한 직선 위에 놓인 세 점은 없고, 좌표의 절댓값은 모두 10810^8 이하다. 00 하나만 있는 줄이 입력의 끝을 알리며, 이 줄은 처리하지 않는다.

출력

각 테스트 케이스마다 경로가 가로질러야 하는 레이저 개수의 최솟값을 한 줄에 출력한다.