小红的好点对
题号:NC301006
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 1024 M,其他语言2048 M
64bit IO Format: %lld

题目描述

\hspace{15pt}小红称两个点构成一个好点对,当且仅当两个点的欧几里得距离恰好为 1
\hspace{15pt}现给出平面直角坐标系中位于坐标轴上的 n 个互不相同的整点,请你计算这些点能组成多少个不同的好点对。
\hspace{15pt}对于两个点对 \left( A,B \right),\left( C,D\right),称二者不同当且仅当 \{A,B\}\ne\{C,D\}

【名词解释】
\hspace{15pt}欧几里得距离:对于平面上的两个点 (x_1, y_1)(x_2, y_2),其欧几里得距离为 \sqrt{(x_1-x_2)^2 + (y_1-y_2)^2}

输入描述:

\hspace{15pt}第一行输入一个整数 n \left(1 \leqq n \leqq 100 \right),表示点的数量。
\hspace{15pt}此后 n 行,第 i 行输入两个整数 x_i,y_i \left(-100 \leqq x_i,y_i \leqq 100 \right),表示第 i 个点的横、纵坐标。保证所有点满足 x_i = 0y_i = 0,且两两互不相同。

输出描述:

\hspace{15pt}输出一个整数,代表好点对的数量。
示例1

输入

复制
4
1 0
2 0
0 1
0 -1

输出

复制
1

说明

\hspace{15pt}在这个样例中,好点对仅有 \left(A,B \right),如下图所示。
image
示例2

输入

复制
5
1 0
2 0
0 1
0 -1
0 0

输出

复制
4