#include <bits/stdc++.h>
#define rep(i,n,m) for(int i=n;i<(int)(m);i++)
#define rrep(i,n,m) for(int i=((int)(n)-1);i>=m;i--)
#define all(x) (x).begin(),(x).end()
typedef long long ll;
const int INF = 1e9;
const int MOD = 1e9+7;
const ll LINF = 1e18;
using namespace std;
double x1,x2,x3,Y1,Y2,Y3;
double dist(double x,double y,double s,double t){
    return  sqrt(pow(x-s,2)+pow(y-t,2));
}
bool f(double x){
    double a=dist(x2,Y2,x3,Y3);
    double b=dist(x1,Y1,x3,Y3);
    double c=dist(x1,Y1,x2,Y2);
    
    double X=(a*x1+b*x2+c*x3)/(a+b+c);
    double Y=(a*Y1+b*Y2+c*Y3)/(a+b+c);
    
    double S=abs((x1-x3)*(Y2-Y3)-(x2-x3)*(Y1-Y3))/2;
    double d=(2*S)/(a+b+c);
    
    if(d<x) return false;
    
    double p1=((d-x)*x1+x*X)/d;
    double q1=((d-x)*Y1+x*Y)/d;
    double p2=((d-x)*x2+x*X)/d;
    double q2=((d-x)*Y2+x*Y)/d;
    double p3=((d-x)*x3+x*X)/d;
    double q3=((d-x)*Y3+x*Y)/d;
    
    
    if(dist(p1,q1,p2,q2)>=2*x) return true;
    if(dist(p1,q1,p3,q3)>=2*x) return true;
    if(dist(p3,q3,p2,q2)>=2*x) return true;
    return false;
}
int main() {
    cin>>x1>>Y1>>x2>>Y2>>x3>>Y3;
    
    double ng = 10000, ok = 0;
    rep(i,0,10000) {
        double mid = (ng + ok) / 2;
        (f(mid) ? ok : ng) = mid;
    }
    
    cout<<fixed<<setprecision(12)<<ok<<endl;
}

