結果

問題 No.2769 Number of Rhombi
ユーザー shimonohnishishimonohnishi
提出日時 2024-06-11 11:37:59
言語 PyPy3
(7.3.15)
結果
AC  
実行時間 1,432 ms / 5,000 ms
コード長 680 bytes
コンパイル時間 333 ms
コンパイル使用メモリ 82,560 KB
実行使用メモリ 333,384 KB
最終ジャッジ日時 2024-06-11 11:38:51
合計ジャッジ時間 43,055 ms
ジャッジサーバーID
(参考情報)
judge2 / judge1
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 45 ms
54,272 KB
testcase_01 AC 46 ms
53,888 KB
testcase_02 AC 51 ms
59,392 KB
testcase_03 AC 1,291 ms
293,016 KB
testcase_04 AC 1,165 ms
261,416 KB
testcase_05 AC 845 ms
199,004 KB
testcase_06 AC 1,116 ms
236,716 KB
testcase_07 AC 1,384 ms
289,460 KB
testcase_08 AC 1,358 ms
293,816 KB
testcase_09 AC 1,410 ms
294,508 KB
testcase_10 AC 1,418 ms
289,208 KB
testcase_11 AC 1,364 ms
293,696 KB
testcase_12 AC 1,329 ms
300,276 KB
testcase_13 AC 1,326 ms
326,628 KB
testcase_14 AC 1,306 ms
332,512 KB
testcase_15 AC 1,324 ms
332,360 KB
testcase_16 AC 1,297 ms
332,672 KB
testcase_17 AC 1,285 ms
332,684 KB
testcase_18 AC 1,281 ms
332,920 KB
testcase_19 AC 1,323 ms
332,976 KB
testcase_20 AC 1,306 ms
332,696 KB
testcase_21 AC 1,333 ms
329,620 KB
testcase_22 AC 1,391 ms
329,716 KB
testcase_23 AC 1,376 ms
332,208 KB
testcase_24 AC 46 ms
54,144 KB
testcase_25 AC 1,362 ms
326,696 KB
testcase_26 AC 1,368 ms
327,092 KB
testcase_27 AC 1,378 ms
332,548 KB
testcase_28 AC 1,330 ms
332,244 KB
testcase_29 AC 1,342 ms
333,384 KB
testcase_30 AC 1,333 ms
332,028 KB
testcase_31 AC 1,376 ms
300,068 KB
testcase_32 AC 1,413 ms
293,668 KB
testcase_33 AC 1,424 ms
293,692 KB
testcase_34 AC 1,432 ms
294,244 KB
権限があれば一括ダウンロードができます

ソースコード

diff #

from collections import defaultdict
from itertools import combinations
from math import gcd
N = int(input())
X, Y = map(list, zip(*[map(int, input().split()) for _ in range(N)]))

def compress(dx, dy):
    if dx == 0:
        return (0, 1)
    if dy == 0:
        return (1, 0)
    if dx < 0:
        dx, dy = -dx, -dy
    g = abs(gcd(dx, dy))
    return (dx // g, dy // g)

d = defaultdict(int)
for a, b in combinations(zip(X, Y), 2):
    x1, y1 = a
    x2, y2 = b
    d[(x1 + x2, y1 + y2, compress(x1 - x2, y1 - y2))] += 1

ans = 0
for a, b in combinations(zip(X, Y), 2):
    x1, y1 = a
    x2, y2 = b
    ans += d[(x1 + x2, y1 + y2, compress(y2 - y1, x1 - x2))]
print(ans // 2)
0