100 atcoder#ABC133B. [ABC133B] Good Distance

[ABC133B] Good Distance

题目描述

D D 次元空間上に N N 個の点があります。

i i 番目の点の座標は (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} $ です。

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

输入格式

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

N N D D X11 X_{11} X12 X_{12} ... ... X1D X_{1D} X21 X_{21} X22 X_{22} ... ... X2D X_{2D} \vdots XN1 X_{N1} XN2 X_{N2} ... ... XND X_{ND}

输出格式

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

题目大意

在D维中有N个点,D维中两点距离为(y1z1)2+(y2z2)2+...+(yDzD)2\sqrt{(y_1-z_1)^2+(y_2-z_2)^2+...+(y_D-z_D)^2},输出第i, j(i<j)(i < j)个点的距离为整数的对数。

3 2
1 2
5 5
-2 8
1
3 4
-3 7 8 2
-12 1 10 2
-2 8 9 3
2
5 1
1
2
3
4
5
10

提示

制約

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

Sample Explanation 1

以下のように距離が整数となる点の組は 1 1 組です。 - 1 1 番目の点と 2 2 番目の点の距離は 152 + 252 = 5 \sqrt{|1-5|^2\ +\ |2-5|^2}\ =\ 5 で、これは整数です。 - 2 2 番目の点と 3 3 番目の点の距離は 5(2)2 + 582 = 58 \sqrt{|5-(-2)|^2\ +\ |5-8|^2}\ =\ \sqrt{58} で、これは整数ではありません。 - 3 3 番目の点と 1 1 番目の点の距離は 212+822 = 35 \sqrt{|-2-1|^2+|8-2|^2}\ =\ 3\sqrt{5} で、これは整数ではありません。