测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A7636. [ABC133B] Good Distance

编程题 普及-
知识点

题目描述

在 $D$ 维空间中有 $N$ 个点。

第 $i$ 个点的坐标为 $(X_{i1},\ X_{i2},\ ...,\ X_{iD})$。

坐标为 $(y_1,\ y_2,\ ...,\ y_D)$ 的点与坐标为 $(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$ 个点之间的距离为整数。

输入格式

输入以如下格式从标准输入中给出。

> $N$ $D$
> $X_{11}$ $X_{12}$ ... $X_{1D}$
> $X_{21}$ $X_{22}$ ... $X_{2D}$
> $\vdots$
> $X_{N1}$ $X_{N2}$ ... $X_{ND}$

输出格式

输出满足第 $i$ 个点与第 $j$ 个点之间的距离为整数的 $(i, j)$ 组数($i < j$)。

输入输出样例

输入 #1
3 2
1 2
5 5
-2 8
输出 #1
1
输入 #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

说明/提示

## 限制条件

- 所有输入均为整数。
- $2 \leq N \leq 10$
- $1 \leq D \leq 10$
- $-20 \leq X_{ij} \leq 20$
- 不会有相同坐标的点。即对于 $i \neq j$,存在某个 $k$ 使得 $X_{ik} \neq X_{jk}$。

## 样例解释 1

如下有 $1$ 组点对的距离为整数。
- 第 $1$ 个点与第 $2$ 个点的距离为 $\sqrt{|1-5|^2 + |2-5|^2} = 5$,是整数。
- 第 $2$ 个点与第 $3$ 个点的距离为 $\sqrt{|5-(-2)|^2 + |5-8|^2} = \sqrt{58}$,不是整数。
- 第 $3$ 个点与第 $1$ 个点的距离为 $\sqrt{|-2-1|^2 + |8-2|^2} = 3\sqrt{5}$,不是整数。
上一题 去做题 下一题