func_code_string: #include <bits/stdc++.h>   using namespace std;   const int N = 3e5 + 7;   const int M = N * 3;   const int inf = 1e9 + 7;   const int base = 1e9 + 9;   const double pi = acos(-1);   const double ep = 1e-11;   pair<pair<int, int>, int> p[N];   int n;   int vp, vs;   int sqr(int x) { return x * x; }   double sqr(double x) { return x * x; }   int dist(pair<pair<int, int>, int> a, pair<pair<int, int>, int> b) {     return sqr(a.first.first - b.first.first) +            sqr(a.first.second - b.first.second) + sqr(a.second - b.second);   }   pair<pair<double, double>, double> curr(double t) {     for (int i = 1; i <= n; i++) {       double d = sqrt(dist(p[i - 1], p[i])) + ep;       if (d >= t * vs) {         pair<pair<double, double>, double> tmp;         tmp.first.first = t * vs * (p[i].first.first - p[i - 1].first.first) / d +                           p[i - 1].first.first;         tmp.first.second =             t * vs * (p[i].first.second - p[i - 1].first.second) / d +             p[i - 1].first.second;         tmp.second =             t * vs * (p[i].second - p[i - 1].second) / d + p[i - 1].second;         return tmp;       } else {         t -= d / vs;       }     }     return make_pair(make_pair(0, 0), 0);   }   int main() {     cin >> n;     double t = 0;     for (int i = (int)0; i < (int)n + 1; i++) {       int u, v, c;       cin >> u >> v >> c;       p[i] = make_pair(make_pair(u, v), c);     }     cin >> vp >> vs;     { cin >> p[n + 1].first.first >> p[n + 1].first.second >> p[n + 1].second; }     for (int i = (int)1; i < (int)n + 1; i++)       t += sqrt(dist(p[i - 1], p[i])) / vs;     if (dist(p[n], p[n + 1]) > t * t * vp * vp + ep) {       cout <<  NO ;       return 0;     }     cout <<  YES n ;     double lo = 0, hi = t + ep, g, res = -1;     pair<pair<double, double>, double> ans = curr(35);     do {       g = (lo + hi) / 2;       pair<pair<double, double>, double> tmp = curr(g);       double di = sqr(p[n + 1].first.first - tmp.first.first) +                   sqr(p[n + 1].first.second - tmp.first.second) +                   sqr(p[n + 1].second - tmp.second);       ans = tmp;       res = g;       if (di <= sqr(g) * sqr(vp) + ep) {         res = g;         hi = g - ep;       } else         lo = g + ep;     } while (lo + ep < hi);     printf( %.9lf n , res);     printf( %.9lf %.9lf %.9lf , ans.first.first, ans.first.second, ans.second);   }   