패러글라이딩
시간 제한40초메모리 제한1024 MB
x축 위에 선 탑들과 평면 위의 풍선들이 주어질 때, 에지가 45도 각도로 활강하며 탑을 옮겨 다녀 모을 수 있는 풍선의 최대 개수를 구합니다.
문제

악당 Graphendorf를 쓰러뜨리는 여정을 이어 가려면 영웅 Edge가 신전의 시련을 넘어야 한다. 신전은 xy 평면이며, x축을 따라 높이가 서로 다른 탑 개가 세워져 있다. 탑 는 밑점이 , 꼭대기가 인 수직 선분이다. 평면에는 풍선 개가 떠 있고, 풍선 는 점 에 있다. Edge는 풍선을 최대한 많이 모으려 한다.
Edge에게는 패러글라이더가 있다. 그는 아무 탑이나 올라가, 탑의 임의의 위치에서 x축의 양의 방향 또는 음의 방향으로 활강할 수 있다. 활강할 때는 탑에 대해 45도를 이루는 직선 경로로 내려간다. 활강 경로에 있는 풍선은 모두 모을 수 있다. 탑에 올라가 뛰어내리는 과정은 몇 번이고 반복할 수 있다. 하강 중 탑에 닿으면 그 지점에서 탑 위에 있는 것으로 보며, 거기서 다시 올라갈 수 있다. Edge는 xy 평면 위의 한 점으로 취급한다.
Edge는 신전의 다른 방에서 패러글라이더를 발견했다. 고대 기술로 만든 고글을 써서 각 탑과 풍선의 위치와 높이를 알아냈다. 이 정보를 바탕으로 Edge가 이 신전에서 모을 수 있는 풍선의 최대 개수를 구하라.
입력
첫 줄에는 테스트 케이스의 수 가 주어진다. 각 테스트 케이스는 다섯 줄로 이루어진다. 첫 줄에는 과 가 주어진다. 이어지는 네 줄에는 각각 정수 여섯 개가 주어진다.
p1 p2 A1 B1 C1 M1
h1 h2 A2 B2 C2 M2
x1 x2 A3 B3 C3 M3
y1 y2 A4 B4 C4 M4
나머지 값은 다음 점화식으로 생성한다.
탑의 위치는 모두 다르다. 즉 부터 까지이고 이면 이다. 탑과 풍선이 겹칠 수 있으며, 이 경우 Edge는 그 풍선을 모을 수 있다. 여러 풍선이 같은 점에 있을 수 있으며, 그 점을 지나면 풍선을 모두 한 번에 모을 수 있다.
출력
각 테스트 케이스마다 Case #x: y 형식의 줄을 하나 출력한다. 는 1부터 시작하는 테스트 케이스 번호이고, 는 Edge가 모을 수 있는 풍선의 최대 개수이다.
제한
- (부터 까지)
- (부터 까지)
- (부터 까지)
- (부터 까지)
힌트
예제 1의 입력은 문제에 나온 상황을 만든다. 생성되는 배열은 , , , 이다.
예제 2에서 생성되는 배열은 , , , 이다.