#include <bits/stdc++.h>
#define ll long long
using namespace std;
const int MAX=1000;
int N=2;
ll X[MAX]={1,2};
ll Y[MAX]={1,2};
int mi[MAX];
bool vis[MAX];
ll dist(int i,int j){
if (i==-1||j==-1) return 1LL<<60;
return pow(X[i]-X[j],2)+pow(Y[i]-Y[j],2);
}
/*
7
2 3
3 4
4 5
0 1
3 1
4 2
1 5
*/
int main(){
cin>>N;
for (int i=0;i<N;i++) cin>>X[i]>>Y[i];
vis[0]=true;
for (int i=0;i<N;i++){
mi[i]=0;
}
ll mind=0;
for (int i=0;i<N-1;i++){
mind=1LL<<60;
int mini;
for (int x=0;x<N;x++){
if (vis[x]) continue;
if (dist(x,mi[x])<mind) mind=dist(x,mi[x]), mini=x;
}
vis[mini]=true;
cout<<mini<<'\n';
for (int x=0;x<N;x++){
if (vis[x]) continue;
if (dist(x,mini)<dist(x,mi[x])) mi[x]=mini;
}
}
cout<<fixed<<setprecision(8)<<sqrtf(mind/4.0);
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |