#include <bits/stdc++.h>   using namespace std;   const double pi = acos(-1.0);   int main() {     long double x1, y1, r1, x2, y2, r2;     while (~scanf( %Lf%Lf%Lf%Lf%Lf%Lf , &x1, &y1, &r1, &x2, &y2, &r2)) {       long double de = (x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2);       long double d = sqrt(de);       if (d >= (r1 + r2)) {         printf( 0.00000000000000000000 n );         continue;       }       if (d <= fabs(r1 - r2)) {         printf( %.20Lf n , pi * min(r1, r2) * min(r1, r2));         continue;       }       long double s1 = acos((r1 * r1 + de - r2 * r2) / (2.0 * r1 * d));       long double s2 = acos((r2 * r2 + de - r1 * r1) / (2.0 * r2 * d));       long double v1 = s1 * r1 * r1;       long double ss1 = 1.0 / 2.0 * r1 * r1 * sin(2.0 * s1);       long double v2 = s2 * r2 * r2;       long double ss2 = 1.0 / 2.0 * r2 * r2 * sin(2.0 * s2);       printf( %.20Lf n , v1 + v2 - ss1 - ss2);     }   }   