#include <bits/stdc++.h>
using namespace std;
int n;
long double w, u, v;
vector<pair<long double, long double> > cood;
bool nostop() {
  bool r1 = 1, r2 = 1;
  for (auto it : cood) {
    long double t1 = it.second / u;
    long double t2 = it.first / v;
    if (t1 > t2 || t1 < 0) return 0;
  }
  return 1;
}
int lowest() {
  int ret;
  long double low = 1e10;
  for (int i = (0); i < (cood.size()); i++) {
    if (cood[i].second < low) {
      low = cood[i].second;
      ret = i;
    }
  }
  return ret;
}
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cin >> n >> w >> v >> u;
  for (int i = (0); i < (n); i++) {
    long double x, y;
    cin >> x >> y;
    cood.push_back({x, y});
  }
  if (nostop()) {
    cout.precision(10);
    cout << w / u << endl;
  } else {
    int k = lowest();
    long double ans = 0;
    long double cury = 0;
    long double dex = 0;
    do {
      long double t1 = (cood[k].second - cury) / u;
      long double t2 = (cood[k].first - dex) / v;
      t1 = max(t1, 0.0L);
      t2 = max(t2, 0.0L);
      ans += max(t1, t2);
      cury = cood[k].second;
      dex += max(t1, t2) * v;
      k++;
      k %= n;
    } while (cood[k].first > cood[(k - 1 + n) % n].first);
    ans += (w - cood[(k - 1 + n) % n].second) / u;
    cout.precision(10);
    cout << ans << endl;
  }
  return 0;
}
