#abc133b. [abc133_b]Good Distance

[abc133_b]Good Distance

题目描述

在一个 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}$。

有多少对 (i,j)(i, j) (i<j)(i < j) 满足第 ii 个点和第 jj 个点之间的距离是一个整数?

约束条件

  • 输入中的所有值都是整数。
  • 2leqNleq102 \\leq N \\leq 10
  • 1leqDleq101 \\leq D \\leq 10
  • \-20leqXijleq20\-20 \\leq X_{ij} \\leq 20
  • 没有两个给定的点具有相同的坐标。也就是说,如果 ineqji \\neq j,存在 kk 使得 XikneqXjkX_{ik} \\neq X_{jk}

输入

从标准输入读入输入数据,数据格式如下:

NN DD X11X_{11} X12X_{12} ...... X1DX_{1D} X21X_{21} X22X_{22} ...... X2DX_{2D} vdots\\vdots XN1X_{N1} XN2X_{N2} ...... XNDX_{ND}

输出

输出一个整数,表示满足第 ii 个点和第 jj 个点之间的距离是一个整数的 (i,j)(i, j) 对的数量。

示例输入 1

3 2
1 2
5 5
-2 8

示例输出 1

1

存在一个满足距离为整数的 (i,j)(i, j) 对,如下:

  • 第一个点和第二个点之间的距离是 sqrt152+252=5\\sqrt{|1-5|^2 + |2-5|^2} = 5,是一个整数。
  • 第二个点和第三个点之间的距离是 sqrt5(2)2+582=sqrt58\\sqrt{|5-(-2)|^2 + |5-8|^2} = \\sqrt{58},不是一个整数。
  • 第三个点和第一个点之间的距离是 sqrt212+822=3sqrt5\\sqrt{|-2-1|^2+|8-2|^2} = 3\\sqrt{5},不是一个整数。

示例输入 2

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

示例输出 2

2

示例输入 3

5 1
1
2
3
4
5

示例输出 3

10