构成的正方形数量
标题:构成的正方形数量 | 时间限制:1秒 | 内存限制:262144K | 语言限制:C、C++、Pascal、Java、Python、Php、C#、Object C、Python 3、Javascript、Javascript_V8、Sqlite、R、Go、Ruby、Swift、Matlab、Bash、Pypy2、Pypy3、Rust、Scala、Kotlin、Groovy、Typescript、Mysql
输入N个互不相同的二维整数坐标, 求这N个坐标可以构成的正方形数量。(内积为零的两个向量垂直)
n = int(input())
point = []
for i in range(n):
point.append(list(map(int, input().split(" "))))
point.sort(key=lambda x: (x[0], x[1]))
if n < 4:
print(0)
else:
ans = 0
for i in range(n):
for j in range(i+1, n):
tmp_x = 0
tmp_y = 0
tmp_x = point[i][0] + point[i][1] - point[j][1]
tmp_y = point[i][1] + point[j][0] - point[i][0]
if ([tmp_x, tmp_y]) not in point:
continue
tmp_x = point[j][0] + point[i][1] - point[j][1]
tmp_y = point[j][1] + point[j][0] - point[i][0]
if ([tmp_x, tmp_y]) not in point:
continue
ans += 1
print(int(ans/2))
