构成的正方形数量

标题:构成的正方形数量 | 时间限制: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))



全部评论

相关推荐

10-11 17:48
已编辑
门头沟学院 Web前端
kabuu:问多了怕遇到聪明人坑不了了,说不定里面很坑呢,还是相信自己的选择吧
点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务