#include <bits/stdc++.h>
using namespace std;
int main() {
  long double x1, y1, r1, x2, y2, r2, d;
  cin >> x1 >> y1 >> r1 >> x2 >> y2 >> r2;
  d = sqrt((x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2));
  if (d >= (r1 + r2))
    printf("0.00000000000000000000\n");
  else if (d <= fabs(r1 - r2)) {
    long double k = min(r1, r2);
    long double ans = acos(-1.0) * k * k;
    printf("%.20f\n", (double)ans);
  } else {
    long double aa = acosl((r1 * r1 + d * d - r2 * r2) / 2 / r1 / d);
    long double bb = acosl((r2 * r2 + d * d - r1 * r1) / 2 / r2 / d);
    long double cc = aa * r1 * r1 - 0.5 * r1 * r1 * sin(aa * 2) + bb * r2 * r2 -
                     0.5 * r2 * r2 * sin(bb * 2);
    printf("%.20f\n", (double)cc);
  }
  return 0;
}
