#include <bits/stdc++.h>
#define FOR(i, a, b) for(int i = (a), _b = (b); i <= _b; ++i)
#define fi first
#define se second
#define el "\n"
#define pb push_back
#define sz(a) (int)a.size()
#define FILL(a, x) memset(a, x, sizeof(a))
using namespace std;
typedef long long ll;
typedef pair<ll, ll> ii;
const int N = (int)1e6 + 3;
struct Edge {
int u, v;
long double w;
};
ii a[200];
Edge b[N];
int par[N];
int n, m;
long double W, C;
ll dist2(ii x, ii y) {
ll dx = x.fi - y.fi;
ll dy = x.se - y.se;
return dx * dx + dy * dy;
}
int FindSet(int u) {
if (par[u] < 0) return u;
return par[u] = FindSet(par[u]);
}
void UnionSet(int u, int v) {
if (par[u] > par[v]) swap(u, v);
par[u] += par[v];
par[v] = u;
}
bool cmp(const Edge &x, const Edge &y) {
return x.w < y.w;
}
long double Solve1() {
if (n == 1) return 0.0L;
FOR(i, 1, n) par[i] = -1;
long double S = 0.0L;
int dem = 0;
FOR(i, 1, m) {
int u = b[i].u;
int v = b[i].v;
if (u == n + 1 || v == n + 1) continue;
int fu = FindSet(u);
int fv = FindSet(v);
if (fu != fv) {
UnionSet(fu, fv);
S += b[i].w;
++dem;
if (dem == n - 1) break;
}
}
return S;
}
long double Solve2() {
FOR(i, 1, n + 1) par[i] = -1;
long double S = 0.0L;
int dem = 0;
FOR(i, 1, m) {
int u = b[i].u;
int v = b[i].v;
int fu = FindSet(u);
int fv = FindSet(v);
if (fu != fv){
UnionSet(fu, fv);
S += b[i].w;
++dem;
if (dem == n) break;
}
}
return S;
}
int main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL); cout.tie(NULL);
//freopen("KETNOI.inp", "r", stdin);
//freopen("KETNOI.out", "w", stdout);
cin >> n;
FOR(i, 1, n) cin >> a[i].fi >> a[i].se;
cin >> W >> C;
m = 0;
FOR(i, 1, n)
FOR(j, i + 1, n){
++m;
b[m].u = i;
b[m].v = j;
b[m].w = C * sqrtl((long double)dist2(a[i], a[j]));
}
FOR(i, 1, n){
++m;
b[m].u = i;
b[m].v = n + 1;
b[m].w = W;
}
sort(b + 1, b + m + 1, cmp);
long double ans1 = Solve1();
long double ans2 = Solve2();
long double ans = ans1 < ans2 ? ans1 : ans2;
cout << fixed << setprecision(10) << ans;
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNkZWZpbmUgRk9SKGksIGEsIGIpIGZvcihpbnQgaSA9IChhKSwgX2IgPSAoYik7IGkgPD0gX2I7ICsraSkKI2RlZmluZSBmaSBmaXJzdAojZGVmaW5lIHNlIHNlY29uZAojZGVmaW5lIGVsICJcbiIKI2RlZmluZSBwYiBwdXNoX2JhY2sKI2RlZmluZSBzeihhKSAoaW50KWEuc2l6ZSgpCiNkZWZpbmUgRklMTChhLCB4KSBtZW1zZXQoYSwgeCwgc2l6ZW9mKGEpKQoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKdHlwZWRlZiBsb25nIGxvbmcgbGw7CnR5cGVkZWYgcGFpcjxsbCwgbGw+IGlpOwpjb25zdCBpbnQgTiA9IChpbnQpMWU2ICsgMzsKCnN0cnVjdCBFZGdlIHsKICAgIGludCB1LCB2OwogICAgbG9uZyBkb3VibGUgdzsKfTsKCmlpIGFbMjAwXTsKRWRnZSBiW05dOwppbnQgcGFyW05dOwppbnQgbiwgbTsKbG9uZyBkb3VibGUgVywgQzsKCmxsIGRpc3QyKGlpIHgsIGlpIHkpIHsKICAgIGxsIGR4ID0geC5maSAtIHkuZmk7CiAgICBsbCBkeSA9IHguc2UgLSB5LnNlOwogICAgcmV0dXJuIGR4ICogZHggKyBkeSAqIGR5Owp9CgppbnQgRmluZFNldChpbnQgdSkgewogICAgaWYgKHBhclt1XSA8IDApIHJldHVybiB1OwogICAgcmV0dXJuIHBhclt1XSA9IEZpbmRTZXQocGFyW3VdKTsKfQoKdm9pZCBVbmlvblNldChpbnQgdSwgaW50IHYpIHsKICAgIGlmIChwYXJbdV0gPiBwYXJbdl0pIHN3YXAodSwgdik7CiAgICBwYXJbdV0gKz0gcGFyW3ZdOwogICAgcGFyW3ZdID0gdTsKfQoKYm9vbCBjbXAoY29uc3QgRWRnZSAmeCwgY29uc3QgRWRnZSAmeSkgewogICAgcmV0dXJuIHgudyA8IHkudzsKfQoKbG9uZyBkb3VibGUgU29sdmUxKCkgewogICAgaWYgKG4gPT0gMSkgcmV0dXJuIDAuMEw7CiAgICBGT1IoaSwgMSwgbikgcGFyW2ldID0gLTE7CiAgICBsb25nIGRvdWJsZSBTID0gMC4wTDsKICAgIGludCBkZW0gPSAwOwogICAgRk9SKGksIDEsIG0pIHsKICAgICAgICBpbnQgdSA9IGJbaV0udTsKICAgICAgICBpbnQgdiA9IGJbaV0udjsKICAgICAgICBpZiAodSA9PSBuICsgMSB8fCB2ID09IG4gKyAxKSBjb250aW51ZTsKICAgICAgICBpbnQgZnUgPSBGaW5kU2V0KHUpOwogICAgICAgIGludCBmdiA9IEZpbmRTZXQodik7CiAgICAgICAgaWYgKGZ1ICE9IGZ2KSB7CiAgICAgICAgICAgIFVuaW9uU2V0KGZ1LCBmdik7CiAgICAgICAgICAgIFMgKz0gYltpXS53OwogICAgICAgICAgICArK2RlbTsKICAgICAgICAgICAgaWYgKGRlbSA9PSBuIC0gMSkgYnJlYWs7CiAgICAgICAgfQogICAgfQogICAgcmV0dXJuIFM7Cn0KCmxvbmcgZG91YmxlIFNvbHZlMigpIHsKICAgIEZPUihpLCAxLCBuICsgMSkgcGFyW2ldID0gLTE7CiAgICBsb25nIGRvdWJsZSBTID0gMC4wTDsKICAgIGludCBkZW0gPSAwOwogICAgRk9SKGksIDEsIG0pIHsKICAgICAgICBpbnQgdSA9IGJbaV0udTsKICAgICAgICBpbnQgdiA9IGJbaV0udjsKICAgICAgICBpbnQgZnUgPSBGaW5kU2V0KHUpOwogICAgICAgIGludCBmdiA9IEZpbmRTZXQodik7CiAgICAgICAgaWYgKGZ1ICE9IGZ2KXsKICAgICAgICAgICAgVW5pb25TZXQoZnUsIGZ2KTsKICAgICAgICAgICAgUyArPSBiW2ldLnc7CiAgICAgICAgICAgICsrZGVtOwogICAgICAgICAgICBpZiAoZGVtID09IG4pIGJyZWFrOwogICAgICAgIH0KICAgIH0KICAgIHJldHVybiBTOwp9CgppbnQgbWFpbigpIHsKICAgIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpOwogICAgY2luLnRpZShOVUxMKTsgY291dC50aWUoTlVMTCk7CiAgICAvL2ZyZW9wZW4oIktFVE5PSS5pbnAiLCAiciIsIHN0ZGluKTsKICAgIC8vZnJlb3BlbigiS0VUTk9JLm91dCIsICJ3Iiwgc3Rkb3V0KTsKCiAgICBjaW4gPj4gbjsKICAgIEZPUihpLCAxLCBuKSBjaW4gPj4gYVtpXS5maSA+PiBhW2ldLnNlOwogICAgY2luID4+IFcgPj4gQzsKCiAgICBtID0gMDsKICAgIEZPUihpLCAxLCBuKQogICAgICAgRk9SKGosIGkgKyAxLCBuKXsKICAgICAgICAgICAgKyttOwogICAgICAgICAgICBiW21dLnUgPSBpOwogICAgICAgICAgICBiW21dLnYgPSBqOwogICAgICAgICAgICBiW21dLncgPSBDICogc3FydGwoKGxvbmcgZG91YmxlKWRpc3QyKGFbaV0sIGFbal0pKTsKICAgICAgICB9CgogICAgRk9SKGksIDEsIG4pewogICAgICAgICsrbTsKICAgICAgICBiW21dLnUgPSBpOwogICAgICAgIGJbbV0udiA9IG4gKyAxOwogICAgICAgIGJbbV0udyA9IFc7CiAgICB9CgogICAgc29ydChiICsgMSwgYiArIG0gKyAxLCBjbXApOwoKICAgIGxvbmcgZG91YmxlIGFuczEgPSBTb2x2ZTEoKTsKICAgIGxvbmcgZG91YmxlIGFuczIgPSBTb2x2ZTIoKTsKICAgIGxvbmcgZG91YmxlIGFucyA9IGFuczEgPCBhbnMyID8gYW5zMSA6IGFuczI7CgogICAgY291dCA8PCBmaXhlZCA8PCBzZXRwcmVjaXNpb24oMTApIDw8IGFuczsKICAgIHJldHVybiAwOwp9Cgo=