func_code_string: #include <bits/stdc++.h>   using namespace std;   double round(double x) { return ((long long)(x * 1e8 + 0.5)) / 1e8; }   double x[5], y[5], r[5];   set<pair<double, double> > c[5];   set<pair<double, double> > u;   void intersection(int i, int j) {     double d =         sqrt((x[i] - x[j]) * (x[i] - x[j]) + (y[i] - y[j]) * (y[i] - y[j]));     if ((d <= r[i] + r[j] && d >= abs(r[i] - r[j]))) {     } else {       return;     }     double a, h, x1, y1, x2, y2, _x, _y;     a = (r[i] * r[i] - r[j] * r[j] + d * d) / (2 * d);     h = sqrt(r[i] * r[i] - a * a);     _x = x[i] + a * (x[j] - x[i]) / d;     _y = y[i] + a * (y[j] - y[i]) / d;     x1 = _x + h * (y[j] - y[i]) / d;     y1 = _y - h * (x[j] - x[i]) / d;     x2 = _x - h * (y[j] - y[i]) / d;     y2 = _y + h * (x[j] - x[i]) / d;     x1 = round(x1);     x2 = round(x2);     y1 = round(y1);     y2 = round(y2);     c[i].insert({x1, y1});     c[i].insert({x2, y2});     c[j].insert({x2, y2});     c[j].insert({x1, y1});     u.insert({x1, y1});     u.insert({x2, y2});   }   int main() {     std::ios::sync_with_stdio(false);     cin.tie(NULL);     int n;     cin >> n;     for (int i = 0; i < n; i++) {       cin >> x[i] >> y[i] >> r[i];     }     if (n == 1) {       cout << 2 << endl;       return 0;     } else if (n == 2) {       intersection(0, 1);       if (u.size() == 2) {         cout << 4 << endl;       } else         cout << 3 << endl;       return 0;     }     for (int i = 0; i < n; i++) {       for (int j = i + 1; j < n; j++) {         intersection(i, j);       }     }     int v = u.size();     if (v == 0) {       cout << 4 << endl;       return 0;     }     int cc = 0;     int e = 0;     for (int i = 0; i < n; i++) {       e += c[i].size();       if (c[i].size() == 0) {         cc++;       }     }     int f = e - v + 2 + cc;     cout << f << endl;   }   