#include <bits/stdc++.h>
using namespace std;
const double pi = 2 * asin(1);
vector<pair<double, int>> li;
int main() {
  long long x, y, v, t;
  scanf("%I64d %I64d %I64d %I64d", &x, &y, &v, &t);
  double d = v * t;
  int n;
  scanf("%d", &n);
  for (int i = 0; i < n; i++) {
    long long p, q, r;
    scanf("%I64d %I64d %I64d", &p, &q, &r);
    long long l2 = (p - x) * (p - x) + (q - y) * (q - y);
    if (r * r >= l2) {
      printf("1\n");
      return 0;
    }
    if (l2 > (d + r) * (d + r)) continue;
    double ang = asin(r / sqrt(l2));
    if (l2 > d * d) ang = acos((l2 + d * d - r * r) / 2 / sqrt(l2) / d);
    double t = atan2(p - x, q - y);
    if (t - ang < -pi) {
      li.push_back({t - ang + 2 * pi, 1});
      li.push_back({pi, -1});
      li.push_back({-pi, 1});
    } else
      li.push_back({t - ang, 1});
    if (t + ang > pi) {
      li.push_back({t + ang - 2 * pi, -1});
      li.push_back({-pi, 1});
      li.push_back({pi, -1});
    } else
      li.push_back({t + ang, -1});
  }
  if (li.size() == 0) {
    printf("0\n");
    return 0;
  }
  sort(li.begin(), li.end());
  double ans = 0;
  int dep = 0;
  for (int i = 0; i < li.size(); i++) {
    if (dep > 0) ans += (li[i].first - li[i - 1].first);
    dep += li[i].second;
  }
  printf("%f\n", ans / 2 / pi);
  return 0;
}
