#include <bits/stdc++.h>
using namespace std;
double todeg(double ang) { return (180 / 3.1415926535897932384626) * ang; }
double degs(int x1, int y1, int x2, int y2) { return atan2(y2 - y1, x2 - x1); }
double dist(double x1, double y1, double x2, double y2) {
  return sqrt((x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2));
}
bool intersect(pair<double, double> d1, pair<double, double> d2) {
  if (d1.first <= d2.second && d2.first <= d1.second) return true;
}
int main() {
  int x0, y0, v, t;
  scanf("%d%d%d%d", &x0, &y0, &v, &t);
  double dis = 1.0 * v * t;
  int n;
  cin >> n;
  vector<pair<double, double> > inters;
  for (int i = 0; i < (n); ++i) {
    int xa, ya, ra;
    scanf("%d%d%d", &xa, &ya, &ra);
    double x = 1.0 * xa;
    double y = 1.0 * ya;
    double r = 1.0 * ra;
    double d = (x - x0) * (x - x0) + (y - y0) * (y - y0);
    if (d < 1.0 * r * r + 1e-9) {
      cout << "1.000000000000" << endl;
      return 0;
    }
    d = sqrt(d);
    double lowb = 0, highb = 0;
    if (r + dis < d - 1e-9) continue;
    double tanlen = sqrt(d * d - r * r);
    double angm = atan2(y - y0, x - x0);
    if (angm < 0) angm += 2 * 3.1415926535897932384626;
    if (tanlen < dis + 1e-9) {
      double degree = atan2(y - y0, x - x0);
      double alpha = asin(r / d);
      lowb = angm - alpha;
      highb = angm + alpha;
    } else {
      double ang = acos((d * d + dis * dis - r * r) / (2 * d * dis));
      lowb = angm - ang;
      highb = angm + ang;
    }
    if (lowb < 0) {
      inters.push_back(make_pair(lowb + 2 * 3.1415926535897932384626, 1));
      inters.push_back(make_pair(2 * 3.1415926535897932384626, -1));
      inters.push_back(make_pair(0, 1));
      inters.push_back(make_pair(highb, -1));
    } else if (highb > 2 * 3.1415926535897932384626) {
      inters.push_back(make_pair(lowb, 1));
      inters.push_back(make_pair(2 * 3.1415926535897932384626, -1));
      inters.push_back(make_pair(0, 1));
      inters.push_back(make_pair(highb - 2 * 3.1415926535897932384626, -1));
    } else {
      inters.push_back(make_pair(lowb, 1));
      inters.push_back(make_pair(highb, -1));
    }
  }
  sort((inters).begin(), (inters).end());
  double la = 0;
  int c = 0;
  double sum = 0;
  for (int i = 0; i < int((inters).size()); i++) {
    if (c > 0) {
      sum += inters[i].first - la;
    }
    c += inters[i].second;
    la = inters[i].first;
  }
  cout << setprecision(20) << sum / (2 * 3.1415926535897932384626) << endl;
}
