結果

問題 No.5009 Draw A Convex Polygon
ユーザー trineutrontrineutron
提出日時 2022-12-02 00:43:13
言語 Python3
(3.12.2 + numpy 1.26.4 + scipy 1.12.0)
結果
AC  
実行時間 2,386 ms / 2,600 ms
コード長 725 bytes
コンパイル時間 71 ms
実行使用メモリ 40,660 KB
スコア 1,000,000
平均クエリ数 1000001.00
最終ジャッジ日時 2022-12-02 00:43:20
合計ジャッジ時間 5,501 ms
ジャッジサーバーID
(参考情報)
judge13 / judge12
純コード判定しない問題か言語
このコードへのチャレンジ(β)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 2,386 ms
40,660 KB
権限があれば一括ダウンロードができます

ソースコード

diff #

from math import gcd


def make():
    s = 0
    v = []
    for i in range(3, 100000):
        for j in range(i // 2 + 1):
            if gcd(i, j) == 1:
                s += i
                v.append((i - j, j))
                if len(v) == 125000:
                    return s, v
    return s, v


s, v = make()
v.sort(key=lambda t: t[1] / t[0])
print(1000000)

x = s
y = 0

for d in range(8):
    dir_x = [-1, -1, 1, 1][d // 2]
    dir_y = [1, -1, -1, 1][d // 2]
    swap = d % 4 // 2 == d % 2
    dv = v if not d % 2 == 1 else v[::-1]
    for dx, dy in dv:
        print(x, y)
        if swap:
            x += dir_x * dy
            y += dir_y * dx
        else:
            x += dir_x * dx
            y += dir_y * dy
0