#include<bits/stdc++.h> //C Kruskal
using namespace std; main(int n,m,i,j,u,v,co,c1; double d,p=0;
cin>>n; int x[n],y[n].c[n]; bool f; for(i=0;i<n;++i){cin>>x[1]>>y[i];c[i]=1;} for(cin>>m;m;--m){cin>>1>>j;i: if(c[i]!=c[j]) {c0=c[i];cl=c[j]; for(i=0;i<n;++i)if(c[i]==c1)c[i]=c0;}} do{ f=false;d=200000; for(i=0;i<n-1;++i) for(j=i+1;j<n; ++j) if(c[i]!=c[j] and d>hypot(x[i]-x[j],y[i]-x[j])){ d=hypot(x[i]-x[j],y[i]-: u=1;v=j; f=true;} if(f) if(f)(p+=d; {p+=d; co=c[u]; cl=c[v]; for(i=0;i<n;++1)if(c[i]==c1) c[i]=c0;} }while(f); cout<<fixed<<setprecision(5)<<p;}