結果
問題 | No.2769 Number of Rhombi |
ユーザー |
|
提出日時 | 2024-06-01 00:48:51 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 1,674 ms / 5,000 ms |
コード長 | 1,178 bytes |
コンパイル時間 | 397 ms |
コンパイル使用メモリ | 82,436 KB |
実行使用メモリ | 367,296 KB |
最終ジャッジ日時 | 2024-12-21 02:34:15 |
合計ジャッジ時間 | 49,866 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 32 |
ソースコード
import sysinput = lambda :sys.stdin.readline()[:-1]ni = lambda :int(input())na = lambda :list(map(int,input().split()))yes = lambda :print("yes");Yes = lambda :print("Yes");YES = lambda : print("YES")no = lambda :print("no");No = lambda :print("No");NO = lambda : print("NO")#######################################################################from math import gcddef f(x1, y1, x2, y2):a = y2 - y1b = - (x2 - x1)c = -x1 * y2 + x2 * y1g = gcd(a, gcd(b, c))a //= gb //= gc //= gif (a, b, c) < (-a, -b, -c):a, b, c = -a, -b, -creturn a, b, cn = ni()p = [na() for _ in range(n)]from collections import defaultdictd = defaultdict(int)c = defaultdict(int)for i in range(n):for j in range(i+1, n):x1, y1 = p[i]x2, y2 = p[j]dx, dy = x2 - x1, y2 - y1if (dx, dy) < (-dx, -dy):dx, dy = -dx, -dyg = gcd(dx, dy)d[(x1+x2, y1+y2, dx // g, dy // g)] += 1ans = 0#print(d)for x, y, dx, dy in list(d.keys()):DX, DY = dy, -dxif (DX, DY) < (-DX, -DY):DX, DY = -DX, -DYans += d[(x, y, DX, DY)] * d[(x, y, dx, dy)]print(ans//2)