code:
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cmath>
#include<string>
#include<cstring>
#include<iomanip>
#define IOS ios_base::sync_with_stdio(0); cin.tie(0);
using namespace std;
#define inf 0x3f3f3f3f
#define int long long
#define endl '\n'
const int maxn = 110;
int n, m;
double x[maxn], y[maxn];
double d[maxn][maxn];
double getDis(double xa, double ya, double xb, double yb) {
return sqrt((xa - xb) * (xa - xb) + (ya - yb) * (ya - yb));
}
signed main() {
IOS;
memset(d, 0x3f, sizeof(d));
cin >> n;
for (int i = 1;i <= n;i++) {
cin >> x[i] >> y[i];
}
cin >> m;
for (int i = 1;i <= m;i++) {
int u, v;
cin >> u >> v;
d[u][v] = getDis(x[u], y[u], x[v], y[v]);
d[v][u] = getDis(x[v], y[v], x[u], y[u]);
}
for (int k = 1;k <= n;k++) {
for (int i = 1;i <= n;i++) {
for (int j = 1;j <= n;j++) {
d[i][j] = min(d[i][j], d[i][k] + d[k][j]);
}
}
}
int s, t;
cin >> s >> t;
cout << fixed << setprecision(2) << d[s][t] << endl;
return 0;
}
//Fununugugu Code