#include <bits/stdc++.h>
using namespace std;
double a, b, c;
int imax, jmin, x[10009], y[10009], n, w, v, u;
double kc(int i) { return abs(a * x[i] + b * y[i] + c) / sqrt(a * a + b * b); }
double f(int i) { return (a * x[i] + b * y[i] + c); }
int main() {
  scanf("%d%d%d%d", &n, &w, &v, &u);
  for (int i = (int)(1); i <= (int)(n); ++i) scanf("%d%d", &x[i], &y[i]);
  a = (double)u / v;
  b = -1.0;
  c = 0.0;
  double tmp;
  for (int i = (int)(1); i <= (int)(n); ++i) {
    tmp = f(i);
    if (tmp != 0.0) break;
  }
  bool ok = true;
  for (int i = (int)(1); i <= (int)(n); ++i) {
    if (f(i) * tmp < 0) {
      ok = false;
      break;
    }
  }
  if (ok) {
    printf("%.6f\n", (double)w / u);
    return 0;
  }
  imax = 1;
  for (int i = (int)(2); i <= (int)(n); ++i) {
    if (x[imax] < x[i]) imax = i;
  }
  a = (double)u / v;
  b = -1.0;
  c = -((double)u / v) * (x[imax] + 1);
  double kcmin = 2.0 * 1000000007;
  int p;
  for (int i = (int)(1); i <= (int)(n); ++i) {
    tmp = kc(i);
    if (tmp < kcmin) {
      kcmin = tmp;
      p = i;
    }
  }
  printf("%.6lf", (double)x[p] / v + (double)(w - y[p]) / u);
  return 0;
}
