#include <bits/stdc++.h>
using namespace std;
const double PI = acos(-1);
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout.precision(10);
  cout << fixed;
  int x1, y1, r1, x2, y2, r2;
  cin >> x1 >> y1 >> r1 >> x2 >> y2 >> r2;
  long double d = sqrt(pow(x1 - x2, 2) + pow(y1 - y2, 2));
  long double area;
  if (d >= r1 + r2) {
    area = 0;
  } else if (d <= abs(r2 - r1)) {
    area = PI * pow(min(r1, r2), 2);
  } else {
    long double d1 = 0.5 * (d * d + 1.0 * r1 * r1 - 1.0 * r2 * r2) / d;
    long double d2 = d - d1;
    long double theta1 = 2 * acos(d1 / r1), theta2 = 2 * acos(d2 / r2);
    long double area1 = theta1 / 2 * r1 * r1 - sin(theta1) * r1 * r1 / 2;
    long double area2 = theta2 / 2 * r2 * r2 - sin(theta2) * r2 * r2 / 2;
    area = area1 + area2;
  }
  cout << area << '\n';
  return 0;
}
