#include using namespace std; using ll = long double; //long double dist_line(ll p1, ll p2, ll p3, ll p4, ll m1, ll m2){ // ll h1 = p1 - p3; // ll h2 = p2 - p4; // ll b1 = p1* h1 +p2 *h2; // ll b2 = p3*h1 + p4*h2; // cout << "h1" << h1 << " h2 " << h2 << " b2 " << b2 << endl; // ll d1 = m1 * h1 + m2 * h2 - b1; // ll d2 = m1 * h1 + m2*h2 - b2; // // d1 = max(d1, -d1); // d2 = max(d2,-d2); // // cout << d1 << " " << d2 << endl; // return min((long double)d1,(long double)d2); //} long double dist_line(ll p1, ll p2, ll p3, ll p4, ll m1, ll m2){ long double h1 = p1 - p3; long double h2 = p2 - p4; long double b1 = p1* h1 +p2 *h2; long double b2 = p3*h1 + p4*h2; long double d1 = (b1 - h1 * m1 - h2 * m2)/(h1*h1 + h2*h2); long double d2 = (b2 - h1 * m1 - h2 * m2)/(h1*h1 + h2*h2); // long double nm11 = m1 + h1 * d1; // long double nm12 = m2 + h2 * d1; // // // long double nm21 = m1 + h1 * d2; // long double nm22 = m2 + h2 * d2; // // long double len1 = sqrt((nm11 - m1) * (nm11 - m1) + (nm12 - m2)*(nm12 - m2)); // long double len2 = sqrt((nm21 - m1) * (nm21 - m1) + (nm22 - m2)*(nm22 - m2)); long double len1 = sqrt(h1 * d1 * h1 *d1 + h2 * d1 * h2 * d1); long double len2 = sqrt(h1 * d2 * h1 *d2 + h2 * d2 * h2 * d2); // << len1 << " LINE " << len2 << endl; return min(len1, len2); // cout << "h1" << h1 << " h2 " << h2 << " b2 " << b2 << endl; // ll d1 = m1 * h1 + m2 * h2 - b1; // ll d2 = m1 * h1 + m2*h2 - b2; // // d1 = max(d1, -d1); // d2 = max(d2,-d2); // // cout << d1 << " " << d2 << endl; // return min((long double)d1,(long double)d2); } long double dist_circle(ll p1, ll p2, ll p3, ll p4, ll m1, ll m2) { long double c1 = (p1 + p3)/2; long double c2 = (p2 + p4)/2; // long double r2 = (p1 - p3) * (p1 - p3) + (p2 - p4) * (p2 - p4); // long double r = sqrt(r2) / 2; long double r2 = (p1 - c1) * (p1 - c1) + (p2 - c2) * (p2 - c2); long double r = sqrt(r2); long double d2 = (m1 - c1)*(m1 - c1) + (m2 -c2)*(m2 -c2); long double d = sqrt(d2); // cout << "circle" << endl; if (d >= r) { //cout << d - r << endl; return d - r; } // cout << r - d << endl; return r - d; } int main() { std::cout.precision(10); long double a1,a2,b1,b2,c1,c2; cin >> a1>>a2>>b1>>b2>>c1>>c2; // cout << dist_line(-1,-1,2,2,1,1) << " dsadas"<< endl; long double m1 = min(dist_line(a1,a2,b1,b2,c1,c2), dist_circle(a1,a2,b1,b2,c1,c2)); long double m2 = min(dist_line(a1,a2,c1,c2,b1,b2), dist_circle(a1,a2,c1,c2,b1,b2)); long double m3 = min(dist_line(b1,b2,c1,c2,a1,a2), dist_circle(b1,b2,c1,c2,a1,a2)); // cout << m1 <<" " << m2 << " " << m3 << endl; cout << min(m1,min(m2,m3)) << endl; return 0; }