#include <bits/stdc++.h>
using namespace std;
double s[2 * 100000], e[2 * 100000];
int main() {
  int N;
  long long x0, y0, v, T;
  while (scanf("%lld %lld %lld %lld", &x0, &y0, &v, &T) != EOF) {
    scanf("%d", &N);
    long long R = v * T, x, y, r;
    int cc = 0;
    for (int i = int(0); i < int(N); i++) {
      scanf("%lld %lld %lld", &x, &y, &r);
      long long d = (x - x0) * (x - x0) + (y - y0) * (y - y0);
      long long t = R + r;
      double ang1, ang2;
      if (t <= 2 * 1000000000 && t * t < d) {
        ang1 = ang2 = 0;
      } else if (r * r >= d) {
        ang2 = 0, ang1 = 3.1415926535897946263238;
      } else {
        ang2 = atan2(y - y0, x - x0);
        if (R <= 1000000000 && R * R < d - r * r) {
          ang1 = acos((R * R + d - r * r) / (2 * R * sqrt(d)));
        } else {
          ang1 = asin(r / sqrt(d));
        }
      }
      if (ang2 - ang1 < -3.1415926535897946263238) {
        s[cc] = -3.1415926535897946263238;
        e[cc++] = ang2 + ang1;
        s[cc] = ang2 - ang1 + 2 * 3.1415926535897946263238;
        e[cc++] = 3.1415926535897946263238;
      } else if (ang2 + ang1 > 3.1415926535897946263238) {
        s[cc] = ang2 - ang1;
        e[cc++] = 3.1415926535897946263238;
        s[cc] = -3.1415926535897946263238;
        e[cc++] = ang2 + ang1 - 2 * 3.1415926535897946263238;
      } else {
        s[cc] = ang2 - ang1;
        e[cc++] = ang2 + ang1;
      }
    }
    sort(s, s + cc);
    sort(e, e + cc);
    int l = 0, c = 0;
    double st = 0, ans = 0;
    for (int i = int(0); i < int(cc); i++) {
      while (l < cc && s[l] < e[i]) {
        if (!c) st = s[l];
        l++, c++;
      }
      if (!--c) ans += e[i] - st;
    }
    printf("%.8f\n", ans / 2. / 3.1415926535897946263238);
  }
  return 0;
}
