結果
問題 | No.168 ものさし |
ユーザー |
|
提出日時 | 2020-09-18 23:48:28 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 87 ms / 2,000 ms |
コード長 | 1,453 bytes |
コンパイル時間 | 388 ms |
コンパイル使用メモリ | 82,244 KB |
実行使用メモリ | 73,168 KB |
最終ジャッジ日時 | 2024-06-22 10:53:22 |
合計ジャッジ時間 | 2,592 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 19 |
ソースコード
import mathN = int(input())MAXDIST = 9*10**18 + 1pos = []for i in range(N):x, y = map(int, input().split())pos.append((x, y))def distance(a, b):x0, y0 = pos[a]x1, y1 = pos[b]dd = (x1 - x0)*(x1 - x0) + (y1 - y0)*(y1 - y0)return math.sqrt(dd)#return dddef distance2(a, b):x0, y0 = pos[a]x1, y1 = pos[b]dd = (x1 - x0)*(x1 - x0) + (y1 - y0)*(y1 - y0)#return math.sqrt(dd)return dddef prim():parent = [-1]*(N+1)intree = [0]*(N+1)dist = [MAXDIST]*(N+1)src = 0dist[src] = 0while src >= 0 and src != N-1:intree[src] = 1mind = MAXDISTnxt = -1for k in range(N):if intree[k] == 0:dd = distance2(src, k)if dist[k] > max(dist[src], dd):dist[k] = max(dist[src], dd)parent[k] = srcif dist[k] < mind:mind = dist[k]nxt = k#if nxt >= 0: parent[nxt] = srcsrc = nxtif src < 0: #not found??return MAXDISTreturn dist[N-1]# #find max# ans = 0# while src != 0:# pp = parent[src]# dd = distance2(src, pp)# if ans < dd:# ans = dd## src = pp## return ansprm = prim()ans = int(math.sqrt(prm))while ans*ans < prm:ans = ans + 1ans = math.ceil(ans/10) * 10print(ans)