1 #include<bits/stdc++.h>
2 using namespace std;
3 int a[101][3];
4 double c[101];
5 bool b[101];
6 double f[101][101];
7 int n,x,y,s,m,e;
8 int k;
9 double minn ;
10 double maxx=1e30;
11 int main()
12 {
13 cin>>n;
14 for(int i=1;i<=n;i++)
15 cin>>a[i][1]>>a[i][2];
16 for(int i=1;i<=n;i++)
17 for(int j=1;j<=n;j++)
18 {
19 f[i][j]=maxx;
20 }
21 cin>>m;
22 for(int i=1;i<=m;i++)
23 {
24 cin>>x>>y;
25 f[x][y]=f[y][x]=sqrt(pow(double(a[x][1]-a[y][1]),2)+pow(double(a[x][2]-a[y][2]),2));
26 }
27 cin>>s>>e;
28 for(int i=1;i<=n;i++)
29 c[i]=f[s][i];
30 memset(b,false,sizeof(b));
31 b[s]=true;
32 c[s]=0;
33 for(int i=0;i<=n-1;i++)
34 {minn=maxx;
35 k=0;
36 for(int j=1;j<=n;j++)
37 if((!b[j])&&(c[j]<minn))
38 {
39 minn=c[j];
40 k=j;
41 }
42 if(k==0)
43 break;
44 b[k]=true;
45 for(int j=1;j<=n;j++)
46 if(c[k]+f[k][j]<c[j])
47 c[j]=c[k]+f[k][j];
48 }
49 printf("%.2lf\n",c[e]);
50 return 0;
51 }