#include <bits/stdc++.h>
using namespace std;
const long double PI = acos(-1.0);
int main() {
  long double x1, y1, r1, x2, y2, r2;
  while (cin >> x1 >> y1 >> r1 >> x2 >> y2 >> r2) {
    long double d = sqrt((x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1));
    if (d >= r1 + r2)
      printf("0.00000000000000000000\n");
    else if (d + min(r1, r2) <= max(r1, r2)) {
      if (r1 <= r2)
        printf("%.20lf\n", (double)(PI * r1 * r1));
      else
        printf("%.20lf\n", (double)(PI * r2 * r2));
    } else {
      long double a = acos((r1 * r1 + d * d - r2 * r2) / (2 * r1 * d));
      long double b = acos((r2 * r2 + d * d - r1 * r1) / (2 * r2 * d));
      long double S_rect = r1 * r1 * sin(a) * cos(a);
      S_rect += r2 * r2 * sin(b) * cos(b);
      long double left = r1 * r1 * a;
      long double right = r2 * r2 * b;
      long double S = left + right;
      long double ans = S - S_rect;
      printf("%.20lf\n", double(ans));
    }
  }
  return 0;
}
