100 atcoder#ABC133B. [ABC133B] Good Distance

[ABC133B] Good Distance

配点 : 200200

問題文

DD 次元空間上に NN 個の点があります。

ii 番目の点の座標は (Xi1,Xi2,...,XiD)(X_{i1}, X_{i2}, ..., X_{iD}) です。

座標 (y1,y2,...,yD)(y_1, y_2, ..., y_D) の点と座標 (z1,z2,...,zD)(z_1, z_2, ..., z_D) の点の距離は $\sqrt{(y_1 - z_1)^2 + (y_2 - z_2)^2 + ... + (y_D - z_D)^2}$ です。

ii 番目の点と jj 番目の点の距離が整数となるような組 (i,j)(i, j) (i<j)(i < j) はいくつあるでしょうか。

制約

  • 入力は全て整数である。
  • 2N102 \leq N \leq 10
  • 1D101 \leq D \leq 10
  • 20Xij20-20 \leq X_{ij} \leq 20
  • 同じ座標の点は与えられない。すなわち、iji \neq j ならば XikXjkX_{ik} \neq X_{jk} なる kk が存在する。

入力

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

NN DD

X11X_{11} X12X_{12} ...... X1DX_{1D}

X21X_{21} X22X_{22} ...... X2DX_{2D}

\vdots

XN1X_{N1} XN2X_{N2} ...... XNDX_{ND}

出力

ii 番目の点と jj 番目の点の距離が整数となるような組 (i,j)(i, j) (i<j)(i < j) の数を出力せよ。

3 2
1 2
5 5
-2 8
1

以下のように距離が整数となる点の組は 11 組です。

  • 11 番目の点と 22 番目の点の距離は 152+252=5\sqrt{|1-5|^2 + |2-5|^2} = 5 で、これは整数です。
  • 22 番目の点と 33 番目の点の距離は 5(2)2+582=58\sqrt{|5-(-2)|^2 + |5-8|^2} = \sqrt{58} で、これは整数ではありません。
  • 33 番目の点と 11 番目の点の距離は 212+822=35\sqrt{|-2-1|^2+|8-2|^2} = 3\sqrt{5} で、これは整数ではありません。
3 4
-3 7 8 2
-12 1 10 2
-2 8 9 3
2
5 1
1
2
3
4
5
10