結果
| 問題 |
No.2769 Number of Rhombi
|
| コンテスト | |
| ユーザー |
hitonanode
|
| 提出日時 | 2024-06-21 00:50:07 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
AC
|
| 実行時間 | 1,517 ms / 5,000 ms |
| コード長 | 630 bytes |
| コンパイル時間 | 451 ms |
| コンパイル使用メモリ | 82,596 KB |
| 実行使用メモリ | 357,808 KB |
| 最終ジャッジ日時 | 2024-06-21 00:50:50 |
| 合計ジャッジ時間 | 41,206 ms |
|
ジャッジサーバーID (参考情報) |
judge5 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 32 |
ソースコード
from math import gcd
N = int(input())
xys = [tuple(map(int, input().split())) for _ in range(N)]
ret = 0
memo: dict[tuple[int, int, int, int], int] = {}
for i in range(N):
for j in range(i + 1, N):
x1, y1 = xys[i]
x2, y2 = xys[j]
cx = x1 + x2
cy = y1 + y2
dx = x2 - x1
dy = y2 - y1
g = gcd(dx, dy)
dx //= g
dy //= g
if (cx, cy, dy, -dx) in memo:
ret += memo[(cx, cy, dy, -dx)]
memo[(cx, cy, dx, dy)] = memo.get((cx, cy, dx, dy), 0) + 1
memo[(cx, cy, -dx, -dy)] = memo.get((cx, cy, -dx, -dy), 0) + 1
print(ret)
hitonanode