rt
#include<bits/stdc++.h>
using namespace std;
#define db double
db dis(db xa, db ya, db xb, db yb) {
return sqrt((db)(abs(xb - xa) * abs(xb - xa) + abs(yb - ya) * abs(yb - ya)));
}
db wa[5010], wb[5010];
int main() {
db xa, ya, xb, yb, xc, yc, xd, yd;
db p, q, r;
scanf("%lf%lf%lf%lf%lf%lf%lf%lf", &xa, &ya, &xb, &yb, &xc, &yc, &xd, &yd);
scanf("%lf%lf%lf", &p, &q, &r);
db ans = dis(xa, ya, xd, yd);
db dab = dis(xa, ya, xb, yb), dcd = dis(xc, yc, xd, yd);
db xab = (db)(xb - xa) / (dab / p), yab = (db)(yb - ya) / (dab / p);
db xcd = (db)(xd - xc) / (dcd / q), ycd = (db)(yd - yc) / (dcd / q);
for(db i = 0; i <= 5000; i += 1.0) {
db xxa = xa + xab * i * dab / p / 5000, yya = ya + yab * i * dab / p / 5000;
db xxc = xc + xcd * i * dcd / q / 5000, yyc = yc + ycd * i * dcd / q / 5000;
wa[(int)i] = dis(xa, ya, xxa, yya) / p;
wb[(int)i] = dis(xd, yd, xxc, yyc) / q;
}
for(db i = 0; i <= 5000; i += 1.0) {
for(db j = 0; j <= 5000; j += 1.0) {
db tmp = wa[(int)i] + wb[(int)j];
db xxa = xa + xab * i * dab / p / 5000, yya = ya + yab * i * dab / p / 5000;
db xxc = xc + xcd * j * dcd / q / 5000, yyc = yc + ycd * j * dcd / q / 5000;
tmp += dis(xxa, yya, xxc, yyc) / r;
ans = min(ans, tmp);
}
}
printf("%.2lf", ans);
return 0;
}