#include <bits/stdc++.h>
using namespace std;
struct FastReader {
  FastReader &operator,(int &x) {
    scanf("%d", &x);
    return *this;
  }
  FastReader &operator,(signed long long &x) {
    scanf("%I64d", &x);
    return *this;
  }
  FastReader &operator,(double &x) {
    scanf("%lf", &x);
    return *this;
  }
  FastReader &operator,(char &x) {
    do x = getchar();
    while (x == ' ' || x == '\n');
    return *this;
  }
  FastReader &operator,(char *x) {
    scanf("%s", x);
    return *this;
  }
} in;
struct FastWriter {
  FastWriter &operator,(const int x) {
    printf("%d", x);
    return *this;
  }
  FastWriter &operator,(const signed long long x) {
    printf("%I64d", x);
    return *this;
  }
  FastWriter &operator,(const double x) {
    printf("%.9lf", x);
    return *this;
  }
  FastWriter &operator,(const char x) {
    putchar(x);
    return *this;
  }
  FastWriter &operator,(const char *x) {
    printf("%s", x);
    return *this;
  }
  FastWriter &operator,(const string x) { return operator,(x.c_str()); }
} out;
template <class T>
T sqr(T x) {
  return x * x;
}
int d, h, v, e;
int main() {
  in, d, h, v, e;
  long double PI = acos(-1);
  long double EPS = 1e-10;
  long double v0 = (PI * h * d * d) / 4;
  long double dv = v - (PI * e * d * d) / 4;
  if (fabs(v0) < EPS) {
    out, "YES\n", 0.0f;
    return 0;
  }
  if (dv < EPS) {
    out, "NO";
    return 0;
  }
  out, "YES\n", double(v0 / dv);
  return 0;
}
