/*
TASK: atom
LANG: C++
*/
#include <stdio.h>
#include <math.h>
#include <algorithm>
#define EPS 1e-9
using namespace std;

 typedef
  struct
   {
    double A,B,C;
   } line;

 typedef
  struct
   {
    double x,y;
   } point;

 int n;
 point a[102];
 point rp,t;
 double res;
 int e;
 pair<double,double> r[102];

 line make_line (point a,point b)
  {
   line ret;
   ret.A=a.y-b.y;
   ret.B=b.x-a.x;
   ret.C=a.x*b.y-a.y*b.x;
   return ret;
  }

 int box (point a,point b,point c)
  {
   return min(b.x,c.x)-EPS<=a.x && a.x<=max(b.x,c.x)+EPS
       && min(b.y,c.y)-EPS<=a.y && a.y<=max(b.y,c.y)+EPS;
  }

 point cross (line a,line b)
  {
   point ret;
   ret.x=(b.B*a.C-a.B*b.C)/(b.A*a.B-a.A*b.B);
   ret.y=(b.A*a.C-a.A*b.C)/(a.A*b.B-b.A*a.B);
   return ret;
  }

 double dist (point a,point b)
  {
   return sqrt((a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y));
  }

 int solve (double z)
  {
   int i,j,p,q,k;
   point o,p1,p2;
   line sim,per,er;
   double d,pom,h,cur;
   for (i=1;i<=n;i++)
    for (j=i+1;j<=n;j++)
     {
      er=make_line(a[i],a[j]);
      p1.x=p2.x=(a[i].x+a[j].x)/2.0;
      p1.y=p2.y=(a[i].y+a[j].y)/2.0;
      sim.A=er.B;
      sim.B=-er.A;
      sim.C=er.A*p1.y-er.B*p1.x;
      for (p=1;p<=n;p++)
       for (q=p+1;q<=n;q++)
        {
         er=make_line(a[p],a[q]);
         if (fabs(er.A*sim.B-er.B*sim.A)<EPS) continue;
         o=cross(er,sim);
         if (box(o,a[p],a[q])==0) continue;
         if (box(p1,o,p2)) p1=o;
          else
           if (box(p2,o,p1)) p2=o;
        }
      e=0;
      for (k=1;k<=n;k++)
       {
        per.A=sim.B;
        per.B=-sim.A;
        per.C=sim.A*a[k].y-sim.B*a[k].x;
        o=cross(per,sim);
        h=dist(o,a[k]);
        if (h-EPS<=z)
         {
          d=sin(acos(h/z))*z;
          pom=dist(p1,o);
          if (box(p1,o,p2)) pom=-pom;
          e++;
          r[e].first=dist(p1,o)-d;r[e].second=dist(p1,o)+d;
         }
       }
      sort(&r[1],&r[e+1]);
      d=dist(p1,p2);
      cur=0;
      for (k=1;k<=e;k++)
       if (cur-EPS<=r[k].first && cur-EPS<=d)
        {
         rp.x=p1.x+cur/d*(p2.x-p1.x);
         rp.y=p1.y+cur/d*(p2.y-p1.y);
         return 1;
        }
         else
          cur=max(cur,r[k].second);
     }
   return 0;
  }

 int main ()
  {
   int i;
   double l,r,med;
   scanf("%d",&n);
   for (i=1;i<=n;i++)
    scanf("%lf%lf",&a[i].x,&a[i].y);
   l=0;
   r=1e9;
   while (r-l>EPS)
    {
     med=(l+r)/2.0;
     if (solve(med))
      {
       res=med;//
       t=rp;//
       l=med;
      }
       else
        r=med;
    }
   printf("%.2lf\n",res);
   printf("%.2lf %.2lf\n",t.x,t.y);
   return 0;
  }
