var n,m,i,a,b,s,t:longint; x,y:array[1..100] of longint; w:array[1..100,1..100] of real; d:array[1..100] of real; used:array[1..100] of boolean;procedure dijkstra(s:longint);var i,k,pos:longint; min:real;begin fillchar(used,sizeof(used),false); for i:=1 to n do d[i]:=w[s,i]; used[s]:=true; d[s]:=0; for K:=1 to n-1 do begin min:=maxlongint; fori:=1 to n do if (not used[i]) and (d[i] begin min:=d[i]; pos:=i; end; used[pos]:=true; fori:=1 to n do if (not used[i]) and (d[i]>d[pos]+w[pos,i])then d[i]:=d[pos]+w[pos,i]; end;end;begin fillchar(w,sizeof(w),70); read(n); for i:=1 to n do read(x[i],y[i]); read(m); for i:=1 to m do begin read(a,b); w[a,b]:=sqrt((x[a]-x[b])*(x[a]-x[b])+(y[a]-y[b])*(y[a]-y[b])); w[b,a]:=w[a,b]; end; read(s,t); dijkstra(s); writeln(d[t]:0:2);end.