레이저 게임
시간 제한2초메모리 제한512 MB
n개의 반직선과 두 점 s, t가 주어질 때, s에서 t로 가는 곡선이 반드시 지나야 하는 반직선의 최소 개수를 구한다.
문제

너는 반 친구 여러 명과 게임을 한다. 상대는 저마다 레이저를 쏘는 장치를 하나씩 들고 있다. 레이저는 그 상대가 서 있는 자리에서 출발해 상대가 고른 방향으로 끝없이 뻗어 나간다. 모든 레이저의 방향이 정해지고 고정되면 네 차례가 시작된다. 너는 점 에 서 있고 점 까지 달려가야 하는데, 달리는 경로가 레이저를 가로지르는 횟수를 가장 적게 만들고 싶다.
경기장은 이차원 평면이다. 상대 명 은 서로 다른 개의 점 에 서 있고, 상대 는 에서 한쪽 방향으로만 레이저를 쏜다. 서로 평행한 레이저가 있어도 된다. 점 와 는 모든 와 다르다.
경로는 에서 로 이어지는 곡선이면 무엇이든 된다. 경로가 어떤 레이저의 한쪽에서 반대쪽으로 넘어가면 그 레이저를 가로지른 것이다. 번 레이저는 와 거기서 정해진 방향으로 나아간 점만 덮으므로, 를 돌아 레이저가 덮지 않는 쪽으로 지나가는 경로는 번 레이저를 가로지르지 않는다.
에서 까지 가는 경로가 가로질러야 하는 레이저 개수의 최솟값을 구하라.
입력
입력은 여러 개의 테스트 케이스로 이루어진다. 각 테스트 케이스의 첫 줄에는 레이저의 개수 이 주어진다 (). 이어지는 개의 줄에는 공백으로 구분된 정수 네 개가 주어진다. 앞의 두 개는 상대가 서 있는 점의 좌표와 좌표이고, 뒤의 두 개는 그 상대의 레이저 위에 있는 점의 좌표와 좌표다. 마지막 줄에는 정수 네 개가 주어지며, 차례로 의 좌표와 좌표, 의 좌표와 좌표다.
한 테스트 케이스에서 주어지는 점 가운데 한 직선 위에 놓인 세 점은 없고, 좌표의 절댓값은 모두 이하다. 하나만 있는 줄이 입력의 끝을 알리며, 이 줄은 처리하지 않는다.
출력
각 테스트 케이스마다 경로가 가로질러야 하는 레이저 개수의 최솟값을 한 줄에 출력한다.