結果

問題 No.1041 直線大学
ユーザー nephrologist
提出日時 2020-05-01 23:05:35
言語 Python3
(3.13.1 + numpy 2.2.1 + scipy 1.14.1)
結果
RE  
実行時間 -
コード長 1,349 bytes
コンパイル時間 104 ms
コンパイル使用メモリ 12,800 KB
実行使用メモリ 11,136 KB
最終ジャッジ日時 2024-12-25 14:10:12
合計ジャッジ時間 4,929 ms
ジャッジサーバーID
(参考情報)
judge4 / judge1
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 2 RE * 1
other AC * 15 WA * 19 RE * 3
権限があれば一括ダウンロードができます

ソースコード

diff #

from math import gcd
from collections import defaultdict, Counter

n = int(input())
XY = []
for i in range(n):
    x, y = map(int, input().split())
    XY.append((x, y))

dictionary1 = defaultdict(int)
dictionary2 = defaultdict(set)
ans = set()
if n >= 3:
    for i in range(n - 2):
        for j in range(i + 1, n - 1):
            for k in range(j + 1, n):
                xi, yi = XY[i]
                xj, yj = XY[j]
                xk, yk = XY[k]
                dx = xi - xj
                dy = yi - yj
                ddx = xj - xk
                ddy = yj - yk

                if dx < 0:
                    dx *= -1
                    dy *= -1
                if ddx < 0:
                    ddx *= -1
                    ddy *= -1
                g = gcd(dx, dy)
                dx //= g
                dy //= g
                gg = gcd(ddx, ddy)
                ddx //= gg
                ddy //= gg
                if dx * ddy == ddx * dy:
                    dictionary1[(dx, dy)] += 1
                    dictionary2[(dx, dy)].add(i)
                    dictionary2[(dx, dy)].add(j)
                    dictionary2[(dx, dy)].add(k)

    DC = Counter(dictionary1)
    katamuki = DC.most_common()[0][0]
    for num in dictionary2[katamuki]:
        ans.add(num)
    print(len(list(ans)))
elif n == 2:
    print(2)
else:
    print(1)
0