func_code_string: #include <bits/stdc++.h>   using namespace std;   const double PI = acos(-1);   const double EPS = 1e-9;   long long dis(pair<long long, long long> a, pair<long long, long long> b) {     return (a.first - b.first) * (a.first - b.first) +            (a.second - b.second) * (a.second - b.second);   }   signed main() {     ios_base::sync_with_stdio(0);     cin.tie(0);     cout.tie(0);     long long T, v;     pair<long long, long long> C;     cin >> C.first >> C.second >> v >> T;     long long R = 1.00 * v * T;     long long n;     cin >> n;     vector<pair<double, long long>> cut;     pair<long long, long long> center;     long long radi;     for (long long i = 0; i < n; i++) {       cin >> center.first >> center.second >> radi;       double distance = dis(center, C);       if (distance < radi * radi + EPS) {         cout <<  1.00000 ;         return 0;       }       if (sqrt(distance) - EPS > 1.00 * radi + 1.00 * R) continue;       double angletocenter =           atan2(center.second - C.second, center.first - C.first);       if (angletocenter < 0) angletocenter += 2 * PI;       double tangent_length = sqrt(distance - 1.0 * radi * radi);       double diverge_angle;       if (tangent_length < R + EPS) {         diverge_angle = asin(radi / sqrt(distance));       } else {         diverge_angle = acos((distance + 1.00 * R * R - 1.0 * radi * radi) /                              (2 * sqrt(distance) * 1.00 * R));       }       double left = angletocenter - diverge_angle;       double right = angletocenter + diverge_angle;       if (left < 0) {         cut.push_back({left + 2 * PI, 1});         cut.push_back({2 * PI, -1});         cut.push_back({0.00, 1});         cut.push_back({right, -1});       } else if (right > 2 * PI) {         cut.push_back({left, 1});         cut.push_back({2 * PI, -1});         cut.push_back({right - 2 * PI, -1});         cut.push_back({0.00, 1});       } else         cut.push_back({left, 1}), cut.push_back({right, -1});     }     double ans = 0.00;     long long count = 0;     double last = 0;     sort(cut.begin(), cut.end());     for (auto& x : cut) {       if (count > 0) ans += (x.first - last);       last = x.first;       count += (x.second);     }     cout << fixed << setprecision(6) << (ans / (2 * PI));   }   