#include <bits/stdc++.h>
using namespace std;
const long double PI = atan2l(0, -1);
const long double eps = 1e-11;
inline bool same(long double a, long double b = 0.0) {
  return fabs(a - b) < eps;
}
class pto {
 public:
  long long x, y;
  long double th;
  pto(long long X = 0, long long Y = 0)
      : x(X), y(Y), th(atan2l((long double)y, (long double)x)) {}
  void read() {
    cin >> x >> y;
    th = atan2l((long double)y, (long double)x);
  }
  pto operator+(pto a) { return pto(x + a.x, y + a.y); }
  pto operator-(pto a) { return pto(x - a.x, y - a.y); }
  long long abs2() { return x * x + y * y; }
};
class circ {
 public:
  pto c;
  long long r;
  circ(pto C = pto(0, 0), long long R = 0) : c(C), r(R) {}
  void read() {
    c.read();
    cin >> r;
  }
};
vector<pair<long double, bool> > s;
circ at;
pto Oc, O;
long double d, R, R2, dth, a1, a2, sum, ini, v, t;
long long d2, nev, n;
int main() {
  ios::sync_with_stdio(false);
  O.read();
  cin >> v >> t;
  R = v * t;
  cin >> n;
  bool ja = false;
  nev = 0;
  while (n-- > 0) {
    at.read();
    Oc = at.c - O;
    d = (long double)sqrtl((long double)Oc.abs2());
    if (Oc.abs2() <= at.r * at.r) ja = true;
    if (ja) continue;
    if (R <= d - at.r) continue;
    R2 = R * R;
    d2 = Oc.abs2() - at.r * at.r;
    dth = (sqrtl((long double)d2) < R
               ? asinl((long double)at.r / d)
               : acosl(0.5 * ((long double)R) / d +
                       0.5 * (d - (long double)at.r * at.r / d) /
                           ((long double)R)));
    a1 = Oc.th - dth;
    a2 = Oc.th + dth;
    if (a1 > a2) {
      long double t = a1;
      a1 = a2;
      a2 = t;
    }
    if (same(a1, a2)) continue;
    if (same(a1 + 2 * PI, a2)) continue;
    if (a2 > PI) {
      s.push_back({a1, true});
      s.push_back({PI, false});
      s.push_back({-PI, true});
      s.push_back({a2 - 2 * PI, false});
    } else if (a1 < -PI) {
      s.push_back({-PI, true});
      s.push_back({a2, false});
      s.push_back({a1 + 2 * PI, true});
      s.push_back({PI, false});
    } else {
      s.push_back({a1, true});
      s.push_back({a2, false});
    }
  }
  if (ja) {
    cout << 1.0000 << endl;
    return 0;
  }
  if (v < 1 or t < 1) {
    cout << 0.0000 << endl;
    return 0;
  }
  sort(s.begin(), s.end());
  sum = 0.0;
  ini = 0.0;
  long long nop = 0;
  for (auto a : s) {
    if (a.second) {
      if (nop == 0) ini = a.first;
      nop++;
    } else
      nop--;
    if (nop == 0) sum += a.first - ini;
  }
  cout << 0.5 * sum / PI << endl;
  return 0;
}
