結果

問題 No.2769 Number of Rhombi
ユーザー hiro1729hiro1729
提出日時 2024-05-31 22:27:32
言語 PyPy3
(7.3.15)
結果
AC  
実行時間 1,465 ms / 5,000 ms
コード長 712 bytes
コンパイル時間 476 ms
コンパイル使用メモリ 82,784 KB
実行使用メモリ 363,460 KB
最終ジャッジ日時 2024-12-21 00:08:16
合計ジャッジ時間 44,110 ms
ジャッジサーバーID
(参考情報)
judge1 / judge3
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 32
権限があれば一括ダウンロードができます

ソースコード

diff #

from math import gcd

def T(x, y):
	if x == 0:
		return (0, 1)
	if y == 0:
		return (1, 0)
	g = gcd(x, y)
	if x < 0:
		return (-x // g, -y // g)
	else:
		return (x // g, y // g)

from collections import defaultdict
N = int(input())
p = [tuple(map(int, input().split())) for _ in range(N)]
d = defaultdict(int)
for i in range(N):
	for j in range(i + 1, N):
		d[tuple(list(T(p[i][0] - p[j][0], p[i][1] - p[j][1])) + [p[i][0] + p[j][0], p[i][1] + p[j][1]])] += 1
ans = 0
for i in range(N):
	for j in range(i + 1, N):
		x, y = T(p[i][0] - p[j][0], p[i][1] - p[j][1])
		x, y = -y, x
		if x < 0:
			x, y = -x, -y
		if x == 0 and y < 0:
			y = -y
		ans += d[(x, y, p[i][0] + p[j][0], p[i][1] + p[j][1])]
print(ans // 2)
0