#include #include using namespace std; using ll = long long; // #define int ll template struct Point{ typedef Point P; T x, y; explicit Point(T x = 0, T y = 0) : x(x), y(y) {} T cross(P p) const {return x*p.y - y*p.x;} double dist() const {return sqrt((double)x*x + y*y);} P operator-(P p) const {return P(x-p.x, y - p.y);} P operator+(P p) const {return P(x+p.x, y + p.y);} }; signed main() { vector> pts(3); for (int i = 0; i < 3; i++) { cin >> pts[i].x >> pts[i].y; } double ans = 1e15; for (int i = 0; i < 3; i++) { for (int j = i + 1; j < 3; j++) { for (int z = 0; z < 3; z++) { if (z == i || z == j) continue; Point mid = pts[i] + pts[j]; mid.x /= 2; mid.y /= 2; double mid_dist = (pts[z] - mid).dist(); double r = (pts[i] - mid).dist(); ans = min(ans, abs(mid_dist - r)); } } } cout << fixed << setprecision(10) << ans << endl; }