#include using namespace std; double dist(double ax, double ay, double bx, double by) { return hypot(ax-bx, ay-by); } double checkRight(double ax, double ay, double bx, double by, double cx, double cy) { double avgx = (ax+bx)/2; double avgy = (ay+by)/2; double l = dist(avgx, avgy, ax, ay); double l2 = dist(avgx, avgy, cx, cy); return abs(l-l2); } double getT(double ax, double ay, double bx, double by, double cx, double cy) { return ((by-ay)*(bx-cx)-(bx-ax)*(by-cy))/((bx-cx)*(bx-cx)-(cy-by)*(by-cy)); } double check(double ax, double ay, double bx, double by, double cx, double cy) { double t = getT( ax, ay, bx, by, cx, cy); double a2x = t*(cy - by) + ax; double a2y = t*(bx-cx) + ay; return min(dist(a2x, a2y, bx, by), dist(a2x, a2y, cx, cy)); } int main() { vector coords(6); for(auto&a:coords)cin>>a; double result = 200000; for(int i = 0; i < 6 ; i+=2){ for(int j = 0; j < 6 ; j+=2){ if(i == j) continue; for(int k = 0; k < 6 ; k+=2) { if(j==k||i==k) continue; //result = min(result, check(coords[i], coords[i+1], coords[j], coords[j+1], coords[k], coords[k+1])); result = min(result, checkRight(coords[i], coords[i+1], coords[j], coords[j+1], coords[k], coords[k+1])); } } } cout << setprecision(10) << result << '\n'; }