#include <bits/stdc++.h>
using namespace std;
double sx0, sy0, v, T, sr0;
const double PI = acos(-1.0);
const int maxn = 3e5;
int n;
int sz;
pair<double, double> Ang[maxn];
int main() {
  scanf("%lf %lf %lf %lf", &sx0, &sy0, &v, &T);
  sr0 = v * T;
  sz = 0;
  scanf("%d", &n);
  for (int i = 0; i < n; ++i) {
    double nx, ny, nr;
    scanf("%lf %lf %lf", &nx, &ny, &nr);
    double dist2 = (nx - sx0) * (nx - sx0) + (ny - sy0) * (ny - sy0);
    if (dist2 <= nr * nr) {
      Ang[sz++] = make_pair(-PI, PI);
    } else if (dist2 >= (sr0 + nr) * (sr0 + nr)) {
    } else {
      double dist = sqrt(dist2);
      double oang = atan2(ny - sy0, nx - sx0);
      double halfang;
      if (dist2 - nr * nr <= sr0 * sr0)
        halfang = fabs(asin(nr / dist));
      else
        halfang =
            fabs(acos((sr0 * sr0 + dist * dist - nr * nr) / (2 * sr0 * dist)));
      double ang1 = oang - halfang;
      double ang2 = oang + halfang;
      if (ang2 > PI && ang1 > 0) {
        Ang[sz++] = make_pair(ang1, PI);
        Ang[sz++] = make_pair(-PI, ang2 - 2 * PI);
      } else if (ang1 < -PI && ang2 < 0) {
        Ang[sz++] = make_pair(ang1 + 2 * PI, PI);
        Ang[sz++] = make_pair(-PI, ang2);
      } else {
        Ang[sz++] = make_pair(ang1, ang2);
      }
    }
  }
  double sumang = 0;
  if (sz) {
    sort(Ang, Ang + sz);
    sumang += Ang[0].second - Ang[0].first;
    double prv = Ang[0].second;
    for (int i = 1; i < sz; ++i) {
      double L = Ang[i].first;
      double R = Ang[i].second;
      if (L > prv) {
        sumang += R - L;
        prv = R;
      } else {
        if (R > prv) {
          sumang += R - prv;
          prv = R;
        }
      }
    }
  }
  double res = sumang / (2 * PI);
  printf("%.10f\n", res);
  return 0;
}
