R=range import time import random import math def TwoDimensionalAllSmallestWeightRandomised(d2,S,T,bucket_size,time_bound): S_size = len(S); T_size = len(T) if S_size == 0:return[] assert( T_size > 0 ) answer = [9**18]*S_size line = [0]*T_size now = time.time() time_bound /= 1000 while time.time() - now < time_bound: theta = random.randint( -1000 , 1000 ) * 0.00314 dx = math.cos( theta ) ; dy = math.sin( theta ) for j in R(T_size):line[j] = [ T[j][0] * dx + T[j][1] * dy , j ] line.sort() for i in R(S_size): proj_i = S[i][0] * dx + S[i][1] * dy l , r = 0 , T_size while l + 1 < r: m = ( l + r ) >> 1 if proj_i < line[m][0]:r = m else:l = m j_min = max( 0 , l - bucket_size ) j_ulim = min( T_size , l + bucket_size ) answer[i] = min( answer[i] , min( d2( S[i] , T[line[j][1]] ) for j in R(j_min,j_ulim) ) ) return answer def d2(u,v):return (u[0]-v[0])**2+(u[1]-v[1])**2 J=lambda:list(map(int,input().split())) N,M,K=J() N+=1 XY=[J()for i in R(N)] AB=[J()for k in R(K)] d=min(d2(XY[0],XY[i])for i in R(1,N))**0.5 ann=TwoDimensionalAllSmallestWeightRandomised(d2,AB,XY,300,4000) answer=sum(min(d2(XY[0],AB[k])**0.5,d+ann[k]**0.5)for k in R(K)) print(answer*2)