結果
問題 | No.168 ものさし |
ユーザー |
![]() |
提出日時 | 2020-09-14 09:23:20 |
言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
結果 |
AC
|
実行時間 | 1,111 ms / 2,000 ms |
コード長 | 1,145 bytes |
コンパイル時間 | 877 ms |
コンパイル使用メモリ | 12,928 KB |
実行使用メモリ | 72,564 KB |
最終ジャッジ日時 | 2024-06-22 00:36:54 |
合計ジャッジ時間 | 9,648 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 19 |
ソースコード
import sysread=sys.stdin.buffer.readreadline=sys.stdin.buffer.readlinereadlines=sys.stdin.buffer.readlinesclass UnionFind:def __init__(self, n):self.n=nself.par=[-1]*ndef find(self, x):if self.par[x]<0:return xself.par[x]=self.find(self.par[x])return self.par[x]def unite(self, x, y):x=self.find(x)y=self.find(y)if x==y:return Falseif self.par[x]<self.par[y]:x, y=y, xself.par[y]+=self.par[x]self.par[x]=yreturn Truedef same(self, x, y):return self.find(x)==self.find(y)def size(self, x):return -self.par[self.find(x)]n=int(readline())xy=list(map(int, read().split()))x=xy[::2]y=xy[1::2]import itertoolses=[((x[i]-x[j])*(x[i]-x[j])+(y[i]-y[j])*(y[i]-y[j]), i, j) for i, j in itertools.combinations(range(n), 2)]es.sort()uf=UnionFind(n)mn=0for e in es:uf.unite(e[1], e[2])if uf.same(0, n-1):mn=e[0]breakl, r=0, 2*10**8while r-l>1:m=(l+r)//2if 100*m*m>=mn:r=melse:l=mprint(10*r)