func_code_string: #include <bits/stdc++.h>   using namespace std;   const double eps = 1e-10;   inline int sgn(int x) {     if (x > -eps || x < eps) return 0;     if (x > 0)       return 1;     else       return -1;   }   struct point {     double x, y;     point(double a = 0, double b = 0) {       x = a;       y = b;     }     point operator+(const point &b) const { return point(x + b.x, y + b.y); }     point operator-(const point &b) const { return point(x - b.x, y - b.y); }     point operator*(const double &t) const { return point(x * t, y * t); }   };   struct circle {     point o;     double r;   };   inline double sqr(double x) { return x * x; }   inline double det(const point &a, const point &b) {     return a.x * b.y - b.x * a.y;   }   inline double dist(const point &a, const point &b) {     return sqrt(sqr(a.x - b.x) + sqr(a.y - b.y));   }   inline double mysqrt(double x) { return sqrt(max(0.0, x)); }   inline circle inversion(circle a, point p, double R) {     circle res;     double d1 = dist(p, a.o);     res.r = a.r * R * R / (sqr(d1) - sqr(a.r));     double d2 = R * R / (d1 - a.r) - res.r;     res.o = p + (a.o - p) * (d2 / d1);     return res;   }   circle a, b;   int k;   double R, r, ans;   inline void prework() { scanf( %lf%lf%d , &R, &r, &k); }   inline void mainwork() {     double lx = R * 2, rx = sqr(R * 2) / (2 * r);     a.o = point(2 * r + (R - r), 0);     a.r = R - r;     a = inversion(a, point(0, 0), 2 * R);     b.o = point(a.o.x, a.o.y + k * (rx - lx));     b.r = (rx - lx) / 2;     b = inversion(b, point(0, 0), 2 * R);     ans = b.r;   }   inline void print() { printf( %.8f n , ans); }   int main() {     int t;     scanf( %d , &t);     for (int i = 1; i <= t; i++) {       prework();       mainwork();       print();     }     return 0;   }   