#include<iostream>
#include<cmath>
#include<cstdio>
using namespace std;

double data[101][5],mst[101];
bool used[101];
double cur,kyori,sum;
int cur_pos;

void prim(int n){
  
  for(int _= 1 ; _ <= n ; _++){
    used[_]=false;
    mst[_]=1e9;
  }
  
  mst[1]=0;
  
  for(int _=0 ; _ < n ; _++){
    cur=1e9;
    for(int i=1 ; i <= n ; i++){
      if(cur >= mst[i] && used[i] == false){
	cur=mst[i];
	cur_pos=i;
      }
    }
    
    used[cur_pos]=true;
    
    for(int i=1 ; i <= n ; i++){  
      if(i == cur_pos || used[i] == true)continue;
      kyori=sqrt((data[i][1]-data[cur_pos][1])*(data[i][1]-data[cur_pos][1])+(data[i][2]-data[cur_pos][2])*(data[i][2]-data[cur_pos][2])+(data[i][3]-data[cur_pos][3])*(data[i][3]-data[cur_pos][3]))-(data[i][4]+data[cur_pos][4]);
      if(kyori < 0)kyori=0;
      //cout <<kyori<<endl;
      if(mst[i] > kyori){
	mst[i]=kyori;
      }
    }
    
  }

  //for(int i=1 ; i <= n ; i++)cout <<mst[i]<<endl;
  
  sum=0;
  for(int i=1 ; i <= n ; i++)sum+=mst[i];

  printf("%.3lf\n",sum);

}
int main(){
  
  int n;
  
  while(1){
    
    cin >> n; 
    if(n == 0)break;
    
    for(int i=1 ; i <= n ; i++){
      for(int j=1 ; j < 5 ; j++){
	cin >>data[i][j];
      }
    }

    prim(n);

  }
  return 0;
}