【OD真题】构成正方形的数量

输入获取

n = int(input())
coordinates = [input() for _ in range(n)]

算法入口

def getResult():
squareCount = 0

coordinatesSet = set(coordinates)

for i in range(n):
    x1, y1 = map(int, coordinates[i].split())
    for j in range(i + 1, n):
        x2, y2 = map(int, coordinates[j].split())

        x3 = x1 - (y1 - y2)
        y3 = y1 + (x1 - x2)

        x4 = x2 - (y1 - y2)
        y4 = y2 + (x1 - x2)

        if f"{x3} {y3}" in coordinatesSet and f"{x4} {y4}" in coordinatesSet:
            squareCount += 1

        x5 = x1 + (y1 - y2)
        y5 = y1 - (x1 - x2)

        x6 = x2 + (y1 - y2)
        y6 = y2 - (x1 - x2)

        if f"{x5} {y5}" in coordinatesSet and f"{x6} {y6}" in coordinatesSet:
            squareCount += 1

return squareCount // 4

算法调用

print(getResult())

posted @ 2024-09-12 20:33  莫大师兄  阅读(115)  评论(0)    收藏  举报