func_code_string: #include <bits/stdc++.h>   void swap(long double& a, long double& b) {     long double tmp = a;     a = b, b = tmp;   }   long double solve(long double d, long double r, long double R) {     const long double EPS = 1e-9L;     if (d + EPS >= r + R) return 0;     if (r > R) swap(r, R);     if (R + EPS >= d + r) return acosl(-1.0) * r * r;     long double T = 2 * acosl((R * R + d * d - r * r) / (2 * R * d)),                 t = 2 * acosl((r * r + d * d - R * R) / (2 * r * d));     return .5 * (R * R * (T - sinl(T)) + r * r * (t - sinl(t)));   }   int main() {     long double x1, y1, r1, x2, y2, r2;     scanf( %Lf%Lf%Lf%Lf%Lf%Lf , &x1, &y1, &r1, &x2, &y2, &r2);     long double dx = x1 - x2, dy = y1 - y2;     printf( %.20Lf n , solve(sqrtl(dx * dx + dy * dy), r1, r2));   }   