結果
問題 | No.168 ものさし |
ユーザー |
![]() |
提出日時 | 2015-03-19 23:53:14 |
言語 | PyPy2 (7.3.15) |
結果 |
AC
|
実行時間 | 1,305 ms / 2,000 ms |
コード長 | 853 bytes |
コンパイル時間 | 764 ms |
コンパイル使用メモリ | 77,120 KB |
実行使用メモリ | 112,256 KB |
最終ジャッジ日時 | 2024-12-24 06:56:17 |
合計ジャッジ時間 | 12,192 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 19 |
ソースコード
N=int(raw_input())P=[map(int,raw_input().split()) for i in range(N)]edge=[[] for i in range(N)]for i in range(N):for j in range(N):if i!=j:dx=P[i][0]-P[j][0]dy=P[i][1]-P[j][1]edge[i].append((dx*dx+dy*dy,j))for i in range(N):edge[i].sort()left = 0right = 1000000000while left+1 < right:mid=(left+right)/2dist=mid*10ok=Falsearrived=[False for i in range(N)]p=[0]arrived[0]=Truewhile len(p)!=0:cur=p.pop()for d,nxt in edge[cur]:if d > dist*dist:breakif arrived[nxt]:continueif nxt==N-1:ok=Truebreakarrived[nxt]=Truep.append(nxt)if ok:right = midelse:left=midprint right*10