D - Spacecraft Editorial /

Time Limit: 4 sec / Memory Limit: 1024 MB

配点 : 100

問題文

3 次元空間上の相異なる座標に N 個の星が輝いています。 i 番目の星は点 P_i(x_i,y_i,z_i) に存在します。また、半径 R の球状の宇宙船が原点を中心に浮かんでいます。

空間上の点 p素敵な点 であるとは、i = 1, 2, \dots, N に対して次の条件が同時に成り立つことを言います。

  • p から i 番目の星が観測できる。すなわち、 pP_i を端点とする線分が宇宙船の周及び内部を通らない。

素敵な点が存在する領域の連結成分の個数を求めてください。すなわち、素敵な点全体の集合を L としたとき、L を以下の同値関係 \sim で割ったときの商集合の大きさを求めてください。

  • p_1, p_2 \in L に対し、p_1p_2 を端点とする L 上の曲線が存在するとき、かつそのときに限り p_1 \sim p_2 である。

なお、この値は 10^{18} 以下の整数になることが証明できます。

T 個のテストケースが与えられるので、それぞれについて答えてください。

制約

  • 入力はすべて整数
  • 1\le T\le 10
  • 1 \le N \le 500
  • 1 \le R \lt \sqrt{x_i^2+y_i^2+z_i^2} \le 10^3 \ (1\le i\le N)
  • (x_i,y_i,z_i) \neq (x_j,y_j,z_j)\ (1 \le i < j \le N)
  • 以下の操作によって答えは変わらない
    • i=1,2,\dots ,N について、原点を通る直線 l_i と実数 \theta _i\ (|\theta _i|\le 10^{-6}) をそれぞれ独立に選ぶ。星 i の位置を l_i を軸に角度 \theta _i だけ回転させた位置に移動させる。

入力

入力は以下の形式で標準入力から与えられる。

T
\mathrm{case}_1
\mathrm{case}_2
\vdots
\mathrm{case}_T

各テストケース \mathrm{case}_i は以下の形式で与えられる。

N R
x_1 y_1 z_1
\vdots
x_N y_N z_N

出力

答えを出力せよ。


入力例 1

3
4 12
13 0 0
0 15 0
0 -15 0
0 0 15
6 100
0 0 101
0 0 -101
0 101 0
0 -101 0
101 0 0
-101 0 0
20 333
328 -160 -572
-165 417 -847
-319 -45 271
359 -467 -625
-355 -451 658
-280 -424 687
-65 -224 573
475 -371 373
-246 -54 -903
595 -196 -305
622 -570 -250
386 -541 -566
647 455 -424
734 117 -405
830 -10 -393
-334 137 154
74 459 -92
-651 -93 -131
879 148 45
-48 126 -660

出力例 1

1
0
3

1 つめのテストケースでは、素敵な点が存在します。

  • 例えば (0,0,100) は素敵な点です。この点と与えられた 4 点のうちどの点と結んだ線分も、宇宙船の内部を通りません。

  • 他にも (21,0,0) は素敵な点です。

  • これらの 2 点は同じ連結成分に属しています。

2 つめのテストケースでは、素敵な点が存在しません。