천체 지도

d년 전에 원점을 지나는 평면 위에 있으면서 원점에서 거리가 정확히 d였던 별의 개수를 센다.

보통4기하수학구현아직 제출이 없습니다시간 제한2초메모리 제한512 MB

문제

밥은 행성 간 통신 센터에서 일한다. 오늘 미지의 문명이 보낸 신호가 밥의 관제소에 도착했다. 원래대로라면 42번 패널에 신호가 출발한 지점의 좌표가 떠야 하는데, 패널에는 벡터 두 개와 수 하나, 그리고 경고 코드 54816만 떠 있다. 설명서를 찾아보니 정확한 좌표를 계산하는 데 실패해서 대신 신호가 출발한 평면과 출발점까지의 거리를 계산했다는 뜻이었다.

밥의 위치는 원점 (0,0,0)(0, 0, 0)으로 고정되어 있다. 주어진 두 벡터는 원점에서 뻗어 나가며 평면 하나를 이룬다. 수 dd는 밥과 신호 출발점 사이의 거리다. 신호는 빛의 속도로 이동하므로 지금 도착한 신호는 dd년 전에 출발했고, 그때 신호를 보낸 별은 이 평면 위에 있으면서 원점으로부터 거리가 정확히 dd였다.

인류에게는 모든 별의 현재 위치와 등속으로 움직이는 속도 벡터를 담은 완전한 지도가 있다. 밥은 오후 일정을 짜기 위해 직접 확인해야 하는 별이 몇 개인지부터 알고 싶다. 정확히 dd년 전에 주어진 평면 위에 있으면서 원점으로부터 거리가 정확히 dd였던 별이 몇 개인지 구하라.

입력

첫째 줄에 정수 nn과 실수 dd가 주어진다. (1n1041 \le n \le 10^4, 1.0d1051.0 \le d \le 10^5) nn은 우주에 있는 별의 개수이고, dd는 밥과 신호 출발점 사이의 거리다.

다음 두 줄에는 각각 실수 세 개 pxp_x, pyp_y, pzp_z가 주어진다. (0.0px,py,pz10.00.0 \le p_x, p_y, p_z \le 10.0, (px,py,pz)0.1|(p_x, p_y, p_z)| \ge 0.1) 두 벡터 (px,py,pz)(p_x, p_y, p_z)는 서로 평행하지 않으며, 밥의 위치를 지나는 평면 하나를 이룬다. 신호가 출발한 지점은 신호를 보낸 시점에 이 평면 위에 있었다.

다음 2n2n개의 줄에는 별의 정보가 주어지고, 별 하나마다 두 줄이 쓰인다.

  • 첫째 줄에는 실수 세 개 sxs_x, sys_y, szs_z가 주어진다. (106sx,sy,sz106-10^6 \le s_x, s_y, s_z \le 10^6) (sx,sy,sz)(s_x, s_y, s_z)는 별의 현재 위치다.
  • 둘째 줄에는 실수 세 개 txt_x, tyt_y, tzt_z가 주어진다. (0.1(tx,ty,tz)0.950.1 \le |(t_x, t_y, t_z)| \le 0.95) (tx,ty,tz)(t_x, t_y, t_z)는 별의 궤적이고, (tx,ty,tz)|(t_x, t_y, t_z)|는 별이 움직이는 속력이다.

다음을 가정해도 된다.

  • 상대 문명이 보낸 신호는 빛의 속도로 이동한다.
  • 모든 속력의 단위는 광년/년이고, 모든 거리의 단위는 광년이다.
  • 밥의 위치는 (0,0,0)(0, 0, 0)으로 고정되어 있다.
  • 별끼리 충돌하는 일은 없다.
  • 주어진 평면과 별의 궤적이 만나는 점 가운데 원점까지의 거리가 d±0.1d \pm 0.1 광년인 것은, 거리가 정확히 dd 광년인 점을 빼면 없다.
  • 신호를 보낸 시점에 평면 위에 있지 않던 별은 평면까지의 거리가 0.1 광년 이상이었다.
  • 모든 궤적은 주어진 평면과 10도 이상 90도 이하의 각으로 만난다.

출력

조건에 맞는 별의 개수를 출력한다.

힌트

첫 번째 예제에는 별이 2개 있다. 현재 별의 위치와 주어진 평면, 두 별의 궤적은 그림 1과 같다. 신호가 출발한 평면은 벡터 (1.0,0.0,0.0)(1.0, 0.0, 0.0)(0.0,1.0,0.0)(0.0, 1.0, 0.0)이 이루고, 거리는 2.02.0이다. 첫 번째 별은 현재 (2.0,0.0,1.0)(2.0, 0.0, 1.0)에 있고 방향 (0.0,0.0,1.0)(0.0, 0.0, 1.0)으로 속력 0.50.5로 움직인다. 두 번째 별은 현재 (0.0,2.0,1.0)(0.0, 2.0, 1.0)에 있고 같은 방향으로 속력 0.70.7로 움직인다. 두 별을 2년 전 위치로 되돌리면 그림 2와 같다. 별 1은 평면 위에 있고 밥까지의 거리도 2.02.0이므로 조건에 맞는다. 별 2는 평면 위에 있지 않으므로 조건에 맞지 않는다. 따라서 첫 번째 예제의 답은 1이다.

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

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