#include #include #include const int maxn = 100 + 5; const int INF = 1e9; int x[maxn]; int y[maxn]; int vis[maxn]; double low[maxn]; double G[maxn][maxn]; double prim(int n) { double res = 0; double min; int i,j,pos; vis[1] = 1; pos = 1; for(i = 1; i <= n; i++) if(i != pos) low[i]=G[pos][i]; for(i=1; ilow[j]) { min=low[j]; pos=j; } } if(min == INF) break; res += min; vis[pos]=1; for(j=1; j<=n; j++) if(vis[j]==0 && low[j]>G[pos][j]) low[j]=G[pos][j]; } if(i != n) return -1; return res; } int main() { int T; scanf("%d",&T); while(T--) { memset(G,0,sizeof(G)); memset(vis,0,sizeof(vis)); int n,e; scanf("%d",&n); for(int i = 1; i <= n; i++) { scanf("%d%d",&x[i],&y[i]); for(int j = 1; j < i; j++) { double t = (x[i]-x[j])*(x[i]-x[j]) + (y[i]-y[j])*(y[i]-y[j]); t = sqrt(t); if(t >= 10.0 && t <= 1000.0) G[i][j] = G[j][i] = t; else G[i][j] = G[j][i] = INF; } } double ans = prim(n); ans *= 100; if(ans > 0) printf("%.1lf\n",ans); else printf("oh!\n"); } return 0; }