编辑代码

# coding:utf-8
#JSRUN引擎2.0,支持多达30种语言在线运行,全仿真在线交互输入输出。
# 输入N个互不相同的二维整数坐标,求这N个坐标可以构成的正方形数量。 
#[内积为零的的两个向量垂直]
#输入描述
#第一行输入为N,N代表坐标数量,N为正整数。N <= 100
#之后的 K 行输入为坐标x y以空格分隔,x,y为整数,-10<=x, y<=10
#输出描述
#输出可以构成的正方形数量。
#示例 1 输入输出示例仅供调试,后台判题数据一般不包含示例
#输入
#3
#1 3
#2 4
#3 1
#输出
#30 (3个点不足以构成正方形)
#示例 2 输入输出示例仅供调试,后台判题数据一般不包含示例
#输入
#4
#0 0
#1 2
#3 1
#2 -1
#输出
#1
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))