#include <bits/stdc++.h>
using namespace std;
const int inf_int = 2e9;
const long long inf_ll = 2e18;
int Gcd(int p, int q) { return q == 0 ? p : Gcd(q, p % q); }
int Pow(int p, int q) {
  int ans = 1;
  while (q) {
    if (q & 1) ans = ans * p;
    p = p * p;
    q >>= 1;
  }
  return ans;
}
inline void read(long long &n) {
  n = 0;
  bool _minus = false;
  while (true) {
    unsigned char c = getchar();
    if (c == ' ' || c == '\n') break;
    if (c == '-') {
      _minus = true;
      continue;
    }
    n = n * 10 + c - '0';
  }
  if (_minus) n *= -1;
}
inline void read(int &n) {
  n = 0;
  bool _minus = false;
  while (true) {
    unsigned char c = getchar();
    if (c == ' ' || c == '\n') break;
    if (c == '-') {
      _minus = true;
      continue;
    }
    n = n * 10 + c - '0';
  }
  if (_minus) n *= -1;
}
double n, w, v, u;
const double esp = 1e-6;
int main() {
  ios::sync_with_stdio(0);
  cin.tie(0);
  while (~scanf("%lf%lf%lf%lf", &n, &w, &v, &u)) {
    double ans = w / u;
    bool flag = 0;
    for (int i = 0; i < n; i++) {
      double x, y;
      scanf("%lf%lf", &x, &y);
      if (!(x >= 0 && x / v > y / u - esp)) flag = 1;
      ans = max(ans, x / v + (w - y) / u);
    }
    if (flag)
      printf("%.10f\n", ans);
    else
      printf("%.10f\n", w / u);
  }
  return 0;
}
