func_code_string: #include <bits/stdc++.h>   using namespace std;   pair<int, int> a[100007];   pair<int, int> b[100007];   pair<int, int> p, r;   double t, q, x, y, w;   int fl = 1;   int main() {     int n;     int d1, d2, res = 0;     scanf( %d , &n);     ;     scanf( %d , &d1);     ;     scanf( %d , &d2);     ;     for (int i = 1; i <= n; ++i) {       scanf( %d , &a[i].first);       ;       scanf( %d , &a[i].second);       ;       scanf( %d , &b[i].first);       ;       scanf( %d , &b[i].second);       ;     }     for (int i = 1; i < n; ++i) {       p.first = b[i + 1].first - a[i + 1].first;       p.second = b[i + 1].second - a[i + 1].second;       r.first = b[i].first - a[i].first;       r.second = b[i].second - a[i].second;       t = 2.0 * r.first * (p.first - r.first);       t += 2.0 * r.second * (p.second - r.second);       q = 2.0 * (r.first - p.first) * (r.first - p.first);       q += 2.0 * (r.second - p.second) * (r.second - p.second);       t = t / q;       t = -t;       x = r.first * r.first + r.second * r.second;       y = p.first * p.first + p.second * p.second;       if (t <= 0.0 || t >= 1.0) {         if (y <= 1.0 * d1 * d1 && fl == 1) {           res += 1;           fl = 0;         } else if (y > 1.0 * d2 * d2 && fl == 0)           fl = 1;       } else {         w = (t * (p.first - r.first) + r.first) *             (t * (p.first - r.first) + r.first);         w += (t * (p.second - r.second) + r.second) *              (t * (p.second - r.second) + r.second);         if (w < x) {           if (w <= 1.0 * d1 * d1 && fl == 1) {             res += 1;             fl = 0;           }           if (y > 1.0 * d2 * d2 && fl == 0) fl = 1;         } else {           if (w > 1.0 * d2 * d2 && fl == 0) fl = 1;           if (y <= 1.0 * d1 * d1 && fl == 1) {             res += 1;             fl = 0;           }         }       }     }     printf( %d n , res);     return 0;   }   