結果
問題 | No.5009 Draw A Convex Polygon |
ユーザー | trineutron |
提出日時 | 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 |
純コード判定しない問題か言語 |
(要ログイン)
ソースコード
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