func_code_string: #include <bits/stdc++.h>   typedef struct {     double x;     double y;     double r;   } circle;   typedef struct {     double x;     double y;   } pt;   int x[3];   int y[3];   int r[3];   pt np(double x, double y) {     pt q;     q.x = x;     q.y = y;     return q;   }   double abs_d(double d1) {     if (d1 > 0) return d1;     return -d1;   }   bool flag2 = true;   pt p;   double dist(pt p1, pt p2) {     return sqrt((p1.x - p2.x) * (p1.x - p2.x) + (p1.y - p2.y) * (p1.y - p2.y));   }   void circumcenter(pt p1, pt p2, pt p3) {     double K = abs_d(.5 * (p1.x * p2.y + p2.x * p3.y + p3.x * p1.y - p1.y * p2.x -                            p2.y * p3.x - p3.y * p1.x));     if (K < .01) {       flag2 = false;       return;     }     double a = dist(p1, p2);     double b = dist(p1, p3);     double c = dist(p2, p3);     double R = a * b * c / 4 / K;     double d = sqrt(R * R - (a / 2) * (a / 2));     double nx = (p1.x + p2.x) / 2;     double ny = (p1.y + p2.y) / 2;     double mx = p1.y - p2.y;     double my = p2.x - p1.x;     double len = sqrt(mx * mx + my * my);     mx /= len;     my /= len;     p.x = nx + d * mx;     p.y = ny + d * my;     if (abs_d(dist(p, p3) - R) > .001) {       p.x = nx - d * mx;       p.y = ny - d * my;     }   }   bool flag = true;   pt pos1;   pt pos2;   void intersection(circle c1, circle c2) {     pt p;     p.x = -1e9;     p.y = -1e9;     double d =         sqrt((c1.x - c2.x) * (c1.x - c2.x) + (c1.y - c2.y) * (c1.y - c2.y));     if (d > c1.r + c2.r) flag = false;     if (abs_d(c1.r - c2.r) > d) flag = false;     if (flag == false) return;     double a = d;     double b = c1.r;     double c = c2.r;     double s = (a + b + c) / 2;     double K = sqrt(s * (s - a) * (s - b) * (s - c));     double h = 2 * K / a;     double d_par = sqrt(b * b - h * h);     if (b * b + d * d < c * c) d_par = -d_par;     double nx = c1.x + (c2.x - c1.x) * d_par / d;     double ny = c1.y + (c2.y - c1.y) * d_par / d;     double oppx = c2.y - c1.y;     double oppy = c1.x - c2.x;     double len = sqrt(oppx * oppx + oppy * oppy);     oppx /= len;     oppy /= len;     pos1.x = nx + h * oppx;     pos1.y = ny + h * oppy;     pos2.x = nx - h * oppx;     pos2.y = ny - h * oppy;   }   int main() {     for (int i = 0; i < 3; i++) {       scanf( %d %d %d , &x[i], &y[i], &r[i]);     }     pt p1 = np(x[0], y[0]);     pt p2 = np(x[1], y[1]);     pt p3 = np(x[2], y[2]);     if (r[0] == r[1] && r[1] == r[2]) {       circumcenter(p1, p2, p3);       if (flag2) {         printf( %.5f %.5f , p.x, p.y);       }     } else {       circle c1, c2, c3;       if (r[0] != r[1]) {         double x1 = (r[1] * p1.x + r[0] * p2.x) / (r[1] + r[0]);         double y1 = (r[1] * p1.y + r[0] * p2.y) / (r[1] + r[0]);         double x2 = (r[1] * p1.x - r[0] * p2.x) / (r[1] - r[0]);         double y2 = (r[1] * p1.y - r[0] * p2.y) / (r[1] - r[0]);         c1.x = (x1 + x2) / 2;         c1.y = (y1 + y2) / 2;         c1.r = sqrt((x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2)) / 2;       }       if (r[0] != r[2]) {         double x1 = (r[2] * p1.x + r[0] * p3.x) / (r[2] + r[0]);         double y1 = (r[2] * p1.y + r[0] * p3.y) / (r[2] + r[0]);         double x2 = (r[2] * p1.x - r[0] * p3.x) / (r[2] - r[0]);         double y2 = (r[2] * p1.y - r[0] * p3.y) / (r[2] - r[0]);         c2.x = (x1 + x2) / 2;         c2.y = (y1 + y2) / 2;         c2.r = sqrt((x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2)) / 2;       }       if (r[1] != r[2]) {         double x1 = (r[2] * p2.x + r[1] * p3.x) / (r[2] + r[1]);         double y1 = (r[2] * p2.y + r[1] * p3.y) / (r[2] + r[1]);         double x2 = (r[2] * p2.x - r[1] * p3.x) / (r[2] - r[1]);         double y2 = (r[2] * p2.y - r[1] * p3.y) / (r[2] - r[1]);         c3.x = (x1 + x2) / 2;         c3.y = (y1 + y2) / 2;         c3.r = sqrt((x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2)) / 2;       }       if (r[0] == r[1]) {         intersection(c2, c3);       } else if (r[0] == r[2]) {         intersection(c1, c3);       } else {         intersection(c1, c2);       }       if (flag) {         if (dist(pos1, p1) > dist(pos2, p1)) {           printf( %.5f %.5f , pos2.x, pos2.y);         } else {           printf( %.5f %.5f , pos1.x, pos1.y);         }       }     }     fflush(stdin);     getchar();   }   