#include <bits/stdc++.h>

using namespace std;

const double eps = 1e-9;

double D, W;

struct point {
	double x, y;
	point() {}
	point(double x, double y) : x(x), y(y) {}
}P[110];


double height(double a,double b,double h){
	double l=0,r=h;
	for (int i=0;i<=1000;i++){
		double mid=(l+r)/2;
		double bb=a+(b-a)*1.0/h*mid;
		double v=(bb+a)*mid/2*D;
		if (v-W>eps) r=mid;
			else l=mid;
	}
	return l;
}

point A[110];
point B[110];

int main()
{
	int n;
	while (scanf("%d", &n) != EOF) {
		
		scanf("%lf%lf", &D, &W);
		double mx = 0;
		for (int i = 0; i < n; i++) {
			scanf("%lf%lf", &P[i].x, &P[i].y);
			mx = max(mx, P[i].y);
		}
		int c0 = 0, c1 = 0;
		for (int i = 0; i < n; i++) {
			int j = (i + 1) % n;
			if (P[i].y == 0 && P[j].y == 0) {
				while (1) {
					j = (j - 1 + n) % n;
					A[c0++] = P[j];
					if (P[j].y == mx) break;
				}
				while (1) {
					i = (i + 1 + n) % n;
					B[c1++] = P[i];
					if (P[i].y == mx) break;
				}
				break;
			}
		}
		double L = A[0].x, R = B[0].x;
		double H = 0.0;
		double ans = -1;
		
		W*=1000;
		/*
		for (int i=0;i<c0;i++) cout<<A[i].x<<" "<<A[i].y<< " ";
		cout << endl;
		for (int i=0;i<c1;i++) cout<<B[i].x<<" "<<B[i].y<< " ";
		cout << endl;
		*/

		for (int i = 1, j = 1 ; i < c0 && j < c1;){
			double a = R - L, b, h, v;
			if (A[i].y == B[j].y) {
				h = A[i].y - H;
				b = B[j].x - A[i].x;
				v = (a + b) * h *1.0/ 2*D;
				L = A[i].x, R = B[j].x;
				i++, j++;
			}
			else
			if (A[i].y < B[j].y) {
				h = A[i].y - H;
				if (B[j].y==B[j-1].y) b=B[j].x-A[i].x;
					else b=(B[j].x-B[j-1].x)*1.0/(B[j].y-B[j-1].y)*h+R-A[i].x;
				
				v = (a+b)*h*1.0/2*D;
				
				L=A[i].x;
				R=L+b;
				i++;
				//point p = inter(now, point())
			}
			else 
			if (A[i].y > B[j].y) {
				h = B[j].y - H;
				if (A[i].y==A[i-1].y) b=B[j].x-A[i].x;
					else b=B[j].x-((A[i].x-A[i-1].x)*1.0/(A[i].y-A[i-1].y)*h+L);
				
				v = (a+b)*h*1.0/2*D;
				R=B[j].x;
				L=R-b;
				j++;
			}
			//cout << a<<" "<<b<<" "<<h<<endl;
			//cout << i<<" "<<j <<" "<<v<<endl;
			///v *= D;
			if (W - v < -eps) {
				//cout << a<<" "<<b<<" "<<h<<endl;
				ans = H + height(a, b, h);
				break;
			}
			H += h;
			W -= v;
		}
		if (ans<-eps) ans=mx;
		printf("%.2f\n", ans);
	}
	return 0;
}
