천체 지도
시간 제한2초메모리 제한512 MB
d년 전에 원점을 지나는 평면 위에 있으면서 원점에서 거리가 정확히 d였던 별의 개수를 센다.
문제
밥은 행성 간 통신 센터에서 일한다. 오늘 미지의 문명이 보낸 신호가 밥의 관제소에 도착했다. 원래대로라면 42번 패널에 신호가 출발한 지점의 좌표가 떠야 하는데, 패널에는 벡터 두 개와 수 하나, 그리고 경고 코드 54816만 떠 있다. 설명서를 찾아보니 정확한 좌표를 계산하는 데 실패해서 대신 신호가 출발한 평면과 출발점까지의 거리를 계산했다는 뜻이었다.
밥의 위치는 원점 으로 고정되어 있다. 주어진 두 벡터는 원점에서 뻗어 나가며 평면 하나를 이룬다. 수 는 밥과 신호 출발점 사이의 거리다. 신호는 빛의 속도로 이동하므로 지금 도착한 신호는 년 전에 출발했고, 그때 신호를 보낸 별은 이 평면 위에 있으면서 원점으로부터 거리가 정확히 였다.
인류에게는 모든 별의 현재 위치와 등속으로 움직이는 속도 벡터를 담은 완전한 지도가 있다. 밥은 오후 일정을 짜기 위해 직접 확인해야 하는 별이 몇 개인지부터 알고 싶다. 정확히 년 전에 주어진 평면 위에 있으면서 원점으로부터 거리가 정확히 였던 별이 몇 개인지 구하라.
입력
첫째 줄에 정수 과 실수 가 주어진다. (, ) 은 우주에 있는 별의 개수이고, 는 밥과 신호 출발점 사이의 거리다.
다음 두 줄에는 각각 실수 세 개 , , 가 주어진다. (, ) 두 벡터 는 서로 평행하지 않으며, 밥의 위치를 지나는 평면 하나를 이룬다. 신호가 출발한 지점은 신호를 보낸 시점에 이 평면 위에 있었다.
다음 개의 줄에는 별의 정보가 주어지고, 별 하나마다 두 줄이 쓰인다.
- 첫째 줄에는 실수 세 개 , , 가 주어진다. () 는 별의 현재 위치다.
- 둘째 줄에는 실수 세 개 , , 가 주어진다. () 는 별의 궤적이고, 는 별이 움직이는 속력이다.
다음을 가정해도 된다.
- 상대 문명이 보낸 신호는 빛의 속도로 이동한다.
- 모든 속력의 단위는 광년/년이고, 모든 거리의 단위는 광년이다.
- 밥의 위치는 으로 고정되어 있다.
- 별끼리 충돌하는 일은 없다.
- 주어진 평면과 별의 궤적이 만나는 점 가운데 원점까지의 거리가 광년인 것은, 거리가 정확히 광년인 점을 빼면 없다.
- 신호를 보낸 시점에 평면 위에 있지 않던 별은 평면까지의 거리가 0.1 광년 이상이었다.
- 모든 궤적은 주어진 평면과 10도 이상 90도 이하의 각으로 만난다.
출력
조건에 맞는 별의 개수를 출력한다.
힌트
첫 번째 예제에는 별이 2개 있다. 현재 별의 위치와 주어진 평면, 두 별의 궤적은 그림 1과 같다. 신호가 출발한 평면은 벡터 과 이 이루고, 거리는 이다. 첫 번째 별은 현재 에 있고 방향 으로 속력 로 움직인다. 두 번째 별은 현재 에 있고 같은 방향으로 속력 로 움직인다. 두 별을 2년 전 위치로 되돌리면 그림 2와 같다. 별 1은 평면 위에 있고 밥까지의 거리도 이므로 조건에 맞는다. 별 2는 평면 위에 있지 않으므로 조건에 맞지 않는다. 따라서 첫 번째 예제의 답은 1이다.

그림 1: 첫 번째 예제의 현재 별 위치.

그림 2: 첫 번째 예제의 2년 전 별 위치.