#include<bits/stdc++.h>
#define INF 0x3f3f3f3f
using namespace std;
double dis[101][101];
double w[101][3];
int n,i,j,k,x,y,m,s,t;
int main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>w[i][1]>>w[i][2];
}
cin>>m;
memset(dis,0x7f,sizeof(dis));
for(int i=1;i<=m;i++){
cin>>x>>y;
dis[x][y]=dis[y][x]=sqrt(pow(double(w[x][1]-w[y][1]),2)+pow(double(w[x][2]-w[y][2]),2));
}
cin>>s>>t;
for(k=1;k<=n;k++)
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
if((i!=j)&&(i!=k)&&(k!=j) && (dis[i][j]>dis[i][k]+dis[k][j]))
dis[i][j]=dis[i][k]+dis[k][j];
printf("%.2lf\n",dis[s][t]);
return 0;
}
评论区