func_code_string: #include <bits/stdc++.h>   using namespace std;   const int maxn = 1e3;   const double eps = 1e-8;   int n;   struct point {     double x, y, z;   } p[maxn], pp;   double dis(point a, point b) {     return (a.x - b.x) * (a.x - b.x) + (a.y - b.y) * (a.y - b.y) +            (a.z - b.z) * (a.z - b.z);   }   double get(double x, double y, double z) {     double res = 0;     for (int i = 1; i <= n; i++) res = max(res, dis(point{x, y, z}, p[i]));     return res;   }   double findz(double x, double y) {     double l = -1e4, r = 1e4;     while (r - l > eps) {       double m1 = (l + l + r) / 3;       double m2 = (l + r + r) / 3;       if (get(x, y, m1) < get(x, y, m2))         r = m2;       else         l = m1;     }     pp.z = (l + r) / 2;     return get(x, y, (l + r) / 2);   }   double findy(double x) {     double l = -1e4, r = 1e4;     while (r - l > eps) {       double m1 = (l + l + r) / 3;       double m2 = (l + r + r) / 3;       if (findz(x, m1) < findz(x, m2))         r = m2;       else         l = m1;     }     pp.y = (l + r) / 2;     return findz(x, (l + r) / 2);   }   double findx() {     double l = -1e4, r = 1e4;     while (r - l > eps) {       double m1 = (l + l + r) / 3;       double m2 = (l + r + r) / 3;       if (findy(m1) < findy(m2))         r = m2;       else         l = m1;     }     pp.x = (l + r) / 2;     return findy((l + r) / 2);   }   int main() {     scanf( %d , &n);     for (int i = 1; i <= n; ++i) scanf( %lf%lf%lf , &p[i].x, &p[i].y, &p[i].z);     findx();     printf( %.9lf %.9lf %.9lf n , pp.x, pp.y, pp.z);     return 0;   }   