#include <bits/stdc++.h>
using namespace std;
const int maxn = 10000 + 5, inf = 1e9;
int n;
double k0, w, v, u;
struct point {
  int x, y;
  double k;
  bool operator<(const point p) const { return k < p.k; }
  point(int x, int y) : x(x), y(y), k((double)y / x) {
    if (x < 0) this->k = inf;
  }
};
vector<point> bus;
int main() {
  int i, x, y;
  scanf("%d", &n);
  scanf("%lf%lf%lf", &w, &v, &u);
  k0 = u / v;
  for (i = 1; i <= n; i++) {
    scanf("%d%d", &x, &y);
    bus.push_back(point(x, y));
  }
  sort(bus.begin(), bus.end());
  if (bus[n - 1].k <= k0) {
    printf("%.10lf", w / u);
    return 0;
  } else {
    double a = 0, b = 0;
    for (i = 0; i < bus.size(); i++)
      if (bus[i].x > a && (bus[i].y - b) / (bus[i].x - a) < k0)
        a = bus[i].x, b = bus[i].y;
    printf("%.10lf", (w - b) / u + a / v);
  }
  return 0;
}
