#include<stdio.h>#include<math.h>#define pi acos(-1.0)#define eps 1.0e-8double distance(double x1, double y1, double x2, double y2) { return sqrt((x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2));}int main() { double x1, y1, r1, x2, y2, r2, r12, dis, temp, res; while (~scanf("%lf %lf %lf %lf %lf %lf", &x1, &y1, &r1, &x2, &y2, &r2)) { dis = distance(x1, y1, x2, y2); r12 = fabs(r1 - r2); if (dis - r1 - r2 > eps) { printf("%.3lfn", 0.0); continue; } if (dis - r12 > eps) { temp = acos((dis * dis + r1 * r1 - r2 * r2) / (2 * dis * r1)) * 2; res = r1 * r1 * temp / 2.0 - r1 * r1 * sin(temp) / 2.0; temp = acos((dis * dis + r2 * r2 - r1 * r1) / (2 * dis * r2)) * 2; res += r2 * r2 * temp / 2.0 - r2 * r2 * sin(temp) / 2.0; printf("%.3lfn", res); continue; } temp = r1 > r2 ? r2 : r1; printf("%.3lfn", pi * temp * temp); } return 0;}