#include <bits/stdc++.h>
using namespace std;
const int maxm = 2e5 + 7;
const int maxn = 1e5 + 7;
const int inf = 0x3f3f3f3f;
const long long INF = 0x3f3f3f3f3f3f3f3f;
struct node {
  double x;
  double y;
} num[maxn];
int n;
double w, v, u, ans;
bool flag1, flag2;
bool cmp(node a, node b) { return a.x < b.x; }
int main() {
  cin >> n >> w >> v >> u;
  flag1 = flag2 = true;
  ans = 0;
  for (int i = 1; i <= n; i++) {
    cin >> num[i].x >> num[i].y;
    if (num[i].x / v < num[i].y / u)
      flag1 = false;
    else
      flag2 = false;
    ans = max(ans, num[i].x / v + (w - num[i].y) / u);
  }
  if (!flag1 && !flag2)
    printf("%lf\n", ans);
  else
    printf("%lf\n", w / u);
  return 0;
}
