Lang:G++
Edit12345678910111213141516171819202122232425262728293031#include <cmath>#include <cstdio>#include <iostream>#include <algorithm>using namespace std;const int maxn = 2000 + 10;const double eps = 1e-8;struct Point{double x, y;Point() {}Point(double tx, double ty){x = tx;y = ty;}};double dist(Point p1,Point p2){return sqrt((p1.x - p2.x) * (p1.x - p2.x) + (p1.y - p2.y) * (p1.y - p2.y));}Point get_circle(Point p1, Point p2, double r){Point mid = Point((p1.x + p2.x) / 2, (p1.y + p2.y) / 2);double angle = atan2(p1.x - p2.x, p2.y - p1.y);double d = sqrt(r * r - pow(dist(p1, mid), 2));return Point(mid.x + d * cos(angle), mid.y + d * sin(angle));