#include <bits/stdc++.h>
using namespace std;
void solve() {
  long long int n, w, u, v;
  cin >> n >> w >> v >> u;
  vector<pair<long long int, long long int> > a(n);
  for (int i = 0; i < (int)(n); ++i) cin >> a[i].first >> a[i].second;
  bool fl1 = false, fl2 = false;
  for (int i = 0; i < (int)(n); ++i) {
    if ((a[i].second == 0 && a[i].first > 0) ||
        (a[i].first > 0 && (a[i].second * v < a[i].first * u))) {
      fl2 = true;
    } else if ((a[i].first < 0) || (a[i].second * v > a[i].first * u)) {
      fl1 = true;
    }
  }
  if (!fl1 || !fl2) {
    cout << ((double)w / (double)u);
    return;
  }
  long long int x = v, y = u, idx;
  for (int i = 0; i < (int)(n); ++i) {
    if (a[i].first <= 0) continue;
    if (y * a[i].first > x * a[i].second) {
      y = a[i].second;
      x = a[i].first;
      idx = i;
    }
  }
  double ans = (double)a[idx].first / (double)v;
  while (a[(idx + 1) % n].first > a[idx].first &&
         v * (a[(idx + 1) % n].second - a[idx].second) <
             u * (a[(idx + 1) % n].first - a[idx].first)) {
    double ansterm =
        (double)(a[(idx + 1) % n].first - a[idx].first) / (double)v;
    ans += ansterm;
    idx = (idx + 1) % n;
  }
  ans += (double)(w - a[idx].second) / u;
  cout << ans << endl;
}
int main() {
  std::ios::sync_with_stdio(false);
  cin.tie(0);
  cout.precision(10);
  cout << fixed;
  int T = 1;
  while (T--) {
    solve();
  }
  return 0;
}
