/* Author haleyk10198 */
/* 作者:  haleyk10198 */
#include <iostream>
#include <fstream>
#include <sstream>
#include <cstdlib>
#include <cstdio>
#include <vector>
#include <map>
#include <queue>
#include <cmath>
#include <algorithm>
#include <cstring>
#include <iomanip>
#include <ctime>
#include <string>
#include <set>
#include <stack>

#define MOD 1000000007
#define INF 2147483647
#define PI 3.1415926535897932384626433
#define ll long long
#define pii pair<int,int>
#define mp(x,y) make_pair((x),(y))

using namespace std;
pii a[10010];

struct Custom{
	bool operator()(pii a,pii b){
		return a.second<b.second||(a.second==b.second&&a.first<b.first);
	}
};

int main(){
	//freopen("input.txt","r",stdin);
	//freopen("output.txt","w",stdout);
	ios_base::sync_with_stdio(false);
	int n;
	double w,v,u;
	bool f=true;
	cin>>n>>w>>v>>u;
	for(int i=0;i<n;i++){
		cin>>a[i].first>>a[i].second;
		if(1.0*a[i].first/v<1.0*a[i].second/u)
			f=false;
	}
	if(f)
		cout<<fixed<<setprecision(12)<<1.0*w/u;
	else{
		sort(a,a+n,Custom());
		double x,y,t;
		x=y=t=0;
		for(int i=0;i<n;i++){
			if(a[i].first<x)
				continue;
			x=a[i].first;
			t=max(1.0*x/v,t+1.0*(a[i].second-y)/u);
			y=a[i].second;
		}
		t+=1.0*(w-y)/u;
		cout<<fixed<<setprecision(12)<<t<<endl;
	}
	return 0;
}
