配点 : 200 点
問題文
D 次元空間上に N 個の点があります。
i 番目の点の座標は (Xi1,Xi2,...,XiD) です。
座標 (y1,y2,...,yD) の点と座標 (z1,z2,...,zD) の点の距離は $\sqrt{(y_1 - z_1)^2 + (y_2 - z_2)^2 + ... + (y_D - z_D)^2}$ です。
i 番目の点と j 番目の点の距離が整数となるような組 (i,j) (i<j) はいくつあるでしょうか。
制約
- 入力は全て整数である。
- 2≤N≤10
- 1≤D≤10
- −20≤Xij≤20
- 同じ座標の点は与えられない。すなわち、i=j ならば Xik=Xjk なる k が存在する。
入力
入力は以下の形式で標準入力から与えられる。
N D
X11 X12 ... X1D
X21 X22 ... X2D
⋮
XN1 XN2 ... XND
出力
i 番目の点と j 番目の点の距離が整数となるような組 (i,j) (i<j) の数を出力せよ。
3 2
1 2
5 5
-2 8
1
以下のように距離が整数となる点の組は 1 組です。
- 1 番目の点と 2 番目の点の距離は ∣1−5∣2+∣2−5∣2=5 で、これは整数です。
- 2 番目の点と 3 番目の点の距離は ∣5−(−2)∣2+∣5−8∣2=58 で、これは整数ではありません。
- 3 番目の点と 1 番目の点の距離は ∣−2−1∣2+∣8−2∣2=35 で、これは整数ではありません。
3 4
-3 7 8 2
-12 1 10 2
-2 8 9 3
2
5 1
1
2
3
4
5
10