1 #include <cmath>
2 #include <cstdio>
3 #include <cctype>
4 #include <cstring>
5 #include <algorithm>
6
7 using namespace std;
8
9 const int MAXN=1010;
10
11 int n,k,cnt,tot;
12
13 int x[MAXN],y[MAXN],fa[MAXN];
14
15 struct node {
16 int x,y;
17 double dis;
18 bool operator < (const node&a) const {
19 return dis<a.dis;
20 }
21 };
22 node e[MAXN*MAXN];
23
24 inline void read(int&x) {
25 int f=1;register char c=getchar();
26 for(x=0;!isdigit(c);c==‘-‘&&(f=-1),c=getchar());
27 for(;isdigit(c);x=x*10+c-48,c=getchar());
28 x=x*f;
29 }
30
31 inline double c(int i,int j) {
32 return sqrt((double)(x[i]-x[j])*(x[i]-x[j])+(double)(y[i]-y[j])*(y[i]-y[j]));
33 }
34
35 inline int find(int x) {
36 if(x==fa[x]) return x;
37 return fa[x]=find(fa[x]);
38 }
39
40 int hh() {
41 // freopen("people.in","r",stdin);
42 // freopen("people.out","w",stdout);
43 read(n);read(k);
44 for(int i=1;i<=n;++i) read(x[i]),read(y[i]),fa[i]=i;
45 for(int i=1;i<=n;++i)
46 for(int j=i+1;j<=n;++j) {
47 e[++cnt].x=i;
48 e[cnt].y=j;
49 e[cnt].dis=c(i,j);
50 }
51 sort(e+1,e+1+cnt);
52 n=n-k+1;
53 for(int i=1;i<=cnt;++i) {
54 int xx=find(e[i].x);
55 int yy=find(e[i].y);
56 if(xx!=yy) {
57 fa[xx]=yy;
58 ++tot;
59 if(tot==n) {
60 printf("%.2lf\n",e[i].dis);
61 goto END;
62 }
63 }
64 }
65 END:
66 return 0;
67 }
68
69 int sb=hh();
70 int main(int argc,char**argv) {;}