結果
問題 | No.168 ものさし |
ユーザー |
![]() |
提出日時 | 2020-06-15 22:02:55 |
言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
結果 |
AC
|
実行時間 | 1,084 ms / 2,000 ms |
コード長 | 896 bytes |
コンパイル時間 | 86 ms |
コンパイル使用メモリ | 12,800 KB |
実行使用メモリ | 76,800 KB |
最終ジャッジ日時 | 2024-07-03 11:35:09 |
合計ジャッジ時間 | 8,930 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 19 |
ソースコード
import sys,heapqinput = sys.stdin.buffer.readlinen=int(input())par=[-1]*ndef find(x):if par[x]<0:return xelse:par[x]=find(par[x])return par[x]def unite(x,y):x=find(x)y=find(y)if x==y:return Falseelse:if par[x]>par[y]:x,y=y,xpar[x]+=par[y]par[y]=xreturn Truedef same(x,y):return find(x)==find(y)def size(x):return -par[find(x)]import heapqXY=[]for _ in range(n):XY.append(tuple(int(i) for i in input().split()))Q=[]def f(x1,y1,x2,y2):dist2=(x2-x1)**2+(y2-y1)**2dist=int(dist2**0.5)while dist**2<dist2:dist+=1return ((dist-1)//10+1)*10for 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=0while True:d,i,j=heapq.heappop(Q)if not same(i,j):ans=max(ans,d)unite(i,j)if same(0,n-1):breakprint(ans)