#include <bits/stdc++.h>
using namespace std;
long double cal(long double x) { return x * x; }
int main() {
  long double x1, y1, r1, x2, y2, r2, d, a1, a2, s1, s2;
  long double PI = 3.14159265358979323846264338327950238;
  cout.precision(20);
  cin >> x1 >> y1 >> r1 >> x2 >> y2 >> r2;
  d = sqrt(cal(x2 - x1) + cal(y2 - y1));
  if (d >= r1 + r2) {
    cout << 0 << endl;
  } else if (d + r2 <= r1) {
    cout << PI * cal(r2) << endl;
  } else if (d + r1 <= r2) {
    cout << PI * cal(r1) << endl;
  } else {
    a1 = acos((cal(r1) + cal(d) - cal(r2)) / (2 * r1 * d));
    a2 = acos((cal(r2) + cal(d) - cal(r1)) / (2 * r2 * d));
    s1 = a1 * cal(r1) - cos(a1) * sin(a1) * cal(r1);
    s2 = a2 * cal(r2) - cos(a2) * sin(a2) * cal(r2);
    cout << s1 + s2 << endl;
  }
  return 0;
}
