結果
| 問題 |
No.168 ものさし
|
| ユーザー |
takakin
|
| 提出日時 | 2020-06-15 21:53:09 |
| 言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 850 bytes |
| コンパイル時間 | 396 ms |
| コンパイル使用メモリ | 12,800 KB |
| 実行使用メモリ | 76,672 KB |
| 最終ジャッジ日時 | 2024-07-03 11:34:32 |
| 合計ジャッジ時間 | 9,091 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 WA * 1 |
| other | AC * 15 WA * 4 |
ソースコード
import sys,heapq
input = sys.stdin.buffer.readline
n=int(input())
par=[-1]*n
def find(x):
if par[x]<0:
return x
else:
par[x]=find(par[x])
return par[x]
def unite(x,y):
x=find(x)
y=find(y)
if x==y:
return False
else:
if par[x]>par[y]:
x,y=y,x
par[x]+=par[y]
par[y]=x
return True
def same(x,y):
return find(x)==find(y)
def size(x):
return -par[find(x)]
import heapq
XY=[]
for _ in range(n):
XY.append(tuple(int(i) for i in input().split()))
Q=[]
eps=0.0001
def f(x1,y1,x2,y2):
return ((int(((x2-x1)**2+(y2-y1)**2)**0.5+eps)-1)//10+1)*10
for i in range(n-1):
for j in range(i+1,n):
heapq.heappush(Q,(f(XY[i][0],XY[i][1],XY[j][0],XY[j][1]),i,j))
ans=0
while True:
d,i,j=heapq.heappop(Q)
if not same(i,j):
ans=max(ans,d)
unite(i,j)
if same(0,n-1):
break
print(ans)
takakin