#include <bits/stdc++.h>
using namespace std;
const double pi = 3.14159265358979323846;
const double epsilon = 1e-8;
istream &operator>>(istream &in, pair<double, double> &p) {
  in >> p.first >> p.second;
  return in;
}
pair<long long, long long> operator-(pair<long long, long long> &p1,
                                     pair<long long, long long> &p2) {
  return pair<int, int>(p1.first - p2.first, p1.second - p2.second);
}
pair<long long, long long> &operator-=(pair<long long, long long> &p1,
                                       pair<long long, long long> &p2) {
  return p1 = p1 - p2;
}
pair<double, double> operator-(pair<double, double> &p1,
                               pair<double, double> &p2) {
  return pair<double, double>(p1.first - p2.first, p1.second - p2.second);
}
pair<double, double> &operator-=(pair<double, double> &p1,
                                 pair<double, double> &p2) {
  return p1 = p1 - p2;
}
double module(pair<double, double> p) {
  return sqrt(p.first * p.first + p.second * p.second);
}
double sqrmodule(pair<double, double> p) {
  return p.first * p.first + p.second * p.second;
}
int cuadrant(pair<double, double> p) {
  if (p.first > 0.0 && p.second >= 0.0) return 1;
  if (p.first <= 0.0 && p.second > 0.0) return 2;
  if (p.first < 0.0 && p.second <= 0.0) return 3;
  return 4;
}
double angle(pair<long long, long long> p) {
  double x = p.first, y = p.second;
  if (abs(x) <= epsilon) return (y > 0.0 ? pi / 2.0 : 3.0 * pi / 2.0);
  double alpha = atan2(y, x);
  return (alpha >= 0.0 ? alpha : 2.0 * pi + alpha);
}
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout << fixed << setprecision(10);
  pair<long long, long long> origin;
  unsigned long long v, T;
  cin >> origin.first >> origin.second >> v >> T;
  int n;
  cin >> n;
  unsigned long long R = v * T;
  vector<pair<double, bool> > events;
  int level = 0;
  for (int i = 0; i < n; ++i) {
    pair<long long, long long> p;
    cin >> p.first >> p.second;
    p.first -= origin.first;
    p.second -= origin.second;
    unsigned long long r;
    cin >> r;
    unsigned long long sqrmod = p.first * p.first;
    sqrmod += p.second * p.second;
    double mod = sqrt(sqrmod);
    if (mod - epsilon >= r + R) continue;
    if (sqrmod <= r * r) {
      cout << 1.0 << endl;
      return 0;
    }
    double alpha = angle(p), beta;
    if (mod <= (double)R)
      beta = asin((double)r / mod);
    else
      beta = acos(((double)sqrmod - (double)r * r + (double)R * R) /
                  (2.0 * R * mod));
    events.emplace_back(
        (alpha - beta < 0.0 ? (level++, (alpha - beta + 2.0 * pi))
                            : alpha - beta),
        true);
    events.emplace_back(
        (alpha + beta > 2.0 * pi ? (level++, (alpha + beta - 2.0 * pi))
                                 : alpha + beta),
        false);
  }
  sort(events.begin(), events.end());
  double acc = 0.0, plzstahp = 0.0;
  for (pair<double, bool> e : events) {
    if (level > 0) acc += e.first - plzstahp;
    plzstahp = e.first;
    (e.second ? level++ : level--);
  }
  if (level > 0) acc += 2.0 * pi - events.back().first;
  cout << acc / (2.0 * pi) << endl;
  return 0;
}
