#include <bits/stdc++.h>
using namespace std;
const double pi = acos(-1.0);
const double E = exp(1.0);
const int MAXN = 1e5 + 9;
const int MOD = 1e9 + 7;
const int INF = 0x3f3f3f3f;
bool scan_d(int &s_num) {
  char s_in;
  int s_sign;
  double s_bit = 0.1;
  if (s_in = getchar(), s_in == EOF) return false;
  while (s_in != '-' && s_in != '.' && (s_in < '0' || s_in > '9'))
    s_in = getchar();
  if (s_in == '-') {
    s_sign = -1;
    s_num = 0;
  } else {
    s_sign = 1;
    s_num = s_in - '0';
  }
  while (s_in = getchar(), s_in >= '0' && s_in <= '9')
    s_num = s_num * 10 + (s_in - '0');
  if (s_in == ' ' || s_in == '\n') {
    s_num *= s_sign;
    return true;
  }
  while (s_in = getchar(), s_in >= '0' && s_in <= '9') {
    s_num = (s_in - '0') * s_bit;
    s_bit /= 10;
  }
  s_num *= s_sign;
  return true;
}
struct node {
  double x, y;
} nu[10009];
int n, l, down, up, r, id;
double w, v, u, lv, rv, downv, upv, res, t, tag;
void Init() {
  scanf("%d%lf%lf%lf", &n, &w, &v, &u);
  lv = 1009;
  rv = 0;
  upv = 0;
  downv = 1009;
  for (int i = 0; i <= n - 1; i++) {
    scanf("%lf%lf", &nu[i].x, &nu[i].y);
    if (nu[i].x < lv || (nu[i].x == lv && nu[i].y > nu[l].y))
      lv = nu[i].x, l = i;
    if (nu[i].x > rv || (nu[i].x == rv && nu[i].y < nu[r].y))
      rv = nu[i].x, r = i;
    if (nu[i].y < downv || (nu[i].y == downv && nu[i].x > nu[down].x))
      downv = nu[i].y, down = i;
    if (nu[i].y > upv || (nu[i].y == upv && nu[i].x < nu[up].x))
      upv = nu[i].y, up = i;
  }
}
void Solve() {
  id = l;
  while (true) {
    if (nu[id].x / v < nu[id].y / u) break;
    if (id == up) {
      printf("%.9lf\n", w / u);
      return;
    }
    id--;
    if (id < 0) id = n - 1;
  }
  id = down;
  t = nu[id].x / v;
  if (t > nu[id].y / u)
    tag = nu[id].y;
  else
    tag = t * u;
  id++;
  while (true) {
    t += (nu[id].x - nu[id - 1 < 0 ? n - 1 : id - 1].x) / v;
    if ((nu[id].x - nu[id - 1 < 0 ? n - 1 : id - 1].x) / v >
        (nu[id].y - tag) / u)
      tag = nu[id].y;
    else
      tag += (nu[id].x - nu[id - 1 < 0 ? n - 1 : id - 1].x) / v * u;
    if (id == r) {
      printf("%.9lf\n", t + (w - tag) / u);
      return;
    }
    id++;
    if (id > n - 1) id = 0;
  }
}
int main() {
  int _T = 1;
  while (_T--) {
    Init();
    Solve();
  }
  return 0;
}
