#include<stdlib.h>
#include<string.h>
#include<stdio.h>
#include<math.h>
#define MAXN 105
#define inf 1000000000
typedef double elem;
elem prim(int n,elem mat[][MAXN]){
elem min[MAXN],ret=0;
int v[MAXN],i,j,k;
for (i=0;i<n;i++)
min[i]=inf,v[i]=0;
for (min[j=0]=0;j<n;j++){
for (k=-1,i=0;i<n;i++)
if (!v[i]&&(k==-1||min[i]<min[k]))
k=i;
if(ret == inf)
return -1;
for (v[k]=1,ret+=min[k],i=0;i<n;i++)
if (!v[i]&&mat[k][i]<min[i])
min[i]=mat[k][i];
}
return ret;
}
int main(){
int i;
int j;
int n;
int m;
int island[105][3];
elem distance[105][105];
// freopen("in_prim.txt","r",stdin);
// freopen("out.txt","w",stdout);
scanf("%d",&n);
while(n--){
scanf("%d",&m);
for(i=0;i<m;i++){
scanf("%d %d",&island[i][0],&island[i][1]);
}
for(i=0;i<m;i++){
for(j=i;j<m;j++){
if(i==j){
distance[i][j] = inf;
}else{
elem disbuf = sqrt((elem)(island[j][0]-island[i][0])*(island[j][0]-island[i][0])
+(island[j][1]-island[i][1])*(island[j][1]-island[i][1]));//注意进行数据类型强转,否则会出现编译错误
if(disbuf < 10 || disbuf > 1000){
distance[i][j] = inf;
distance[j][i] = inf;
}else{
distance[i][j] = disbuf;
distance[j][i] = disbuf;
}
}
}
}
double bufref = prim(m,distance);
if(bufref != -1)
printf("%.1lf\n",bufref*100);
else
printf("oh!\n");
}
return 0;
}