#include <cmath>
#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
#define MAX 999999999999999
using namespace std;
typedef long long LL;
const int maxn = 1e5+5;
double dist(double x1,double y1,double x2,double y2)
{
return sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
}
double ax,ay,bx,by,tx,ty,x[maxn],y[maxn],dis[maxn],disa[maxn],disb[maxn];
int n;
int main()
{
scanf("%lf%lf%lf%lf%lf%lf",&ax,&ay,&bx,&by,&tx,&ty);
scanf("%d",&n);
double sum=0;
dis[0] = disa[0] = disb[0] = 0;
for(int i=1; i<=n; i++)
{
scanf("%lf%lf",&x[i],&y[i]);
dis[i] = dist(x[i],y[i],tx,ty);
disa[i] = dist(x[i],y[i],ax,ay);
disb[i] = dist(x[i],y[i],bx,by);
sum += 2*dis[i];
}
double Mina = MAX,Minb = MAX,ans = sum;
int posa=0,posb=0;
for(int i=1; i<=n; i++)
{
if(disa[i]-dis[i] < Mina)
{
Mina = disa[i]-dis[i];
posa = i;
}
if(disb[i]-dis[i] < Minb)
{
Minb = disb[i]-dis[i];
posb = i;
}
}
if(Mina<0 && Minb<0)
{
if(posa != posb)
ans = sum+Mina+Minb;
else
{
for(int i=0;i<=n;i++)
if(i != posa)
ans = min(ans,sum-dis[posa]+disa[posa]-dis[i]+disb[i]);
for(int i=0;i<=n;i++)
if(i != posb)
ans = min(ans,sum-dis[posb]+disb[posb]-dis[i]+disa[i]);
}
}
else
{
if(Mina < Minb)
ans = sum-dis[posa]+disa[posa];
else
ans = sum-dis[posb]+disb[posb];
}
printf("%.10lf\n",ans);
return 0;
}