import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Random; import java.util.StringTokenizer; public class Coasters { public static void main(String[] args) throws IOException { // -1 0 2 -1 -2 3 2 BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer tk = new StringTokenizer(br.readLine()); int x = Integer.parseInt(tk.nextToken()); int y = Integer.parseInt(tk.nextToken()); int r = Integer.parseInt(tk.nextToken()); int ax = Integer.parseInt(tk.nextToken()); int ay = Integer.parseInt(tk.nextToken()); int bx = Integer.parseInt(tk.nextToken()); int by = Integer.parseInt(tk.nextToken()); Random random = new Random(System.currentTimeMillis()); int hits = 0; int miss = 0; double abx = (bx - ax); double aby = (by - ay); double rr = r * r; for (int i = 0; i < 100000000; i++) { double px = random.nextDouble() * abx + ax; double py = random.nextDouble() * aby + ay; double dx = px - x; double dy = py - y; if (dx * dx + dy * dy < rr) { hits++; } else { miss++; } } double recArea = Math.abs(abx * aby); double area = recArea / (hits + miss) * hits; System.out.println(area); } }