#include using namespace std; int main(void) { // LONG DOUBLE?! long double x, y, r, ax, ay, bx, by; cin >> x >> y >> r >> ax >> ay >> bx >> by; ax -= x; bx -= x; ay -= y; by -= y; long double lx = min(ax, bx); long double rx = max(ax, bx); long double uy = max(ay, by); long double dy = min(ay, by); long double steps = 50000000; long double sum = 0; lx = max(lx, -r); rx = min(rx, r); long double stepsize = (rx - lx)/steps; for (int i = 0; i < steps; i++) { long double x = lx + i * stepsize; long double up = sqrt(r * r - x * x); long double bot = -up; long double ups = min(up, uy); long double bots = max(bot, dy); if (bots < ups) { long double segint = ups - bots; sum += segint * stepsize; } } printf("%0.10Lf\n", sum); }