{
TASK: atom
ID: A11
LANG: PASCAL
}


type point = record
              x, y : extended;
             end;

type el = record
           v : longint;
           x, y : extended;
          end;



const ogr1 = 110;


var a : array[0..ogr1] of point;
    ch : array[0..ogr1] of el;
    used : array[0..ogr1] of longint;
    ww, fl, i, j, k, l, o, p, m, n, vr : longint;
    xx, yy, xt, yt, x2, y2, x, y, x1, y1, a1, b1, c1, a2, b2, c2 : extended;
    a3, b3, c3, t1, t2, s, s1, s2, r, r1, r2, r3, rt : extended;
    sw : point;


procedure input;
var f : text;
 begin
  assign(f, '');
  reset(f);
  readln(f, n);
  x := 1000000;
  y := 1000000;
  for i := 1 to n do
    begin
     readln(f, a[i].x, a[i].y);
     if (a[i].y < y) or ((a[i].y = y) and (a[i].x < x)) then
       begin
        x := a[i].x;
        y := a[i].y;
        l := i;
       end;
    end;
  close(f);
  xt := x;
  yt := y;
  for i := 1 to n do
    begin
     a[i].x := a[i].x - x;
     a[i].y := a[i].y - y;
    end;
 end;


procedure preprocessing;
 begin
  s := -10000000;
  r := 10000000;
  for i := 2 to n do
    begin
     r1 := a[i].x;
     r2 := sqrt(sqr(a[i].x) + sqr(a[i].y));
     if (a[i].y = 0) and (a[i].x > 0) then s1 := 1
     else if (a[i].y = 0) and (a[i].x < 0) then s1 := -1
     else if (a[i].x = 0) then s1 := 0
     else s1 := r1 / r2;
     if (s1 > s) or ((s1 = s) and (r1 < r)) then
       begin
        s := s1;
        r := r1;
        l := i;
       end;
    end;
 sw := a[2];
 a[2] := a[l];
 a[l] := sw;
 ch[1].v := 1;
 ch[2].v := 2;
 ch[1].x := 0;
 ch[1].y := 0;
 ch[2].x := a[2].x;
 ch[2].y := a[2].y;
 vr := 2;
 used[1] := 0;
 used[2] := 1;

 end;


function mid(x, y : extended) : boolean;
var r1, r2, r3 : extended;
 begin
  r1 := sqrt(sqr(ch[1].x - ch[2].x) + sqr(ch[1].y - ch[2].y));
  r2 := sqrt(sqr(ch[1].x - x) + sqr(ch[1].y - y));
  r3 := sqrt(sqr(x - ch[2].x) + sqr(y - ch[2].y));
  if r1 + r3 = r2 then mid := true
  else mid := false;
 end;




procedure main;
 begin
  while used[1] = 0 do
    begin
     s := -10000000;
     r := 10000000;
     for i := 1 to n do
       if (used[i] = 0) and ((i <> 1) or (vr <> 2)) and (mid(a[i].x, a[i].y) = false) then
         begin
          a1 := ch[vr - 1].y - ch[vr].y;
          b1 := ch[vr].x - ch[vr - 1].x;
          c1 := ch[vr - 1].x * ch[vr].y - ch[vr - 1].y * ch[vr].x;
          if (a1 * a[i].x + b1 * a[i].y + c1 = 0) then
            begin
             s1 := 1;
             rt := r2;
            end
          else
            begin
             r1 := sqrt(sqr(ch[vr - 1].x - ch[vr].x) + sqr(ch[vr - 1].y - ch[vr].y));
             r2 := sqrt(sqr(a[i].x - ch[vr].x) + sqr(a[i].y - ch[vr].y));
             r3 := sqrt(sqr(ch[vr - 1].x - a[i].x) + sqr(ch[vr - 1].y - a[i].y));
             t1 := (r1 * r1 + r3 * r3 - r2 * r2);
             t2 := (2 * r1 * r3);
             s1 := t1 / t2;
            end;
          if (s1 > s) or ((s1 = 1) and (s = 1) and (rt > r)) then
            begin
             s := s1;
             r := rt;
             l := i;
            end;
         end;
     inc(vr);
     ch[vr].v := l;
     ch[vr].x := a[l].x;
     ch[vr].y := a[l].y;
     used[l] := 1;
    end;
 end;


begin
 input;
 sw := a[1];
 a[1] := a[l];
 a[l] := sw;
 l := 0;
 preprocessing;
 main;
 r := 0;
 for i := 1 to n do
   for j := i + 1 to n do
     for l := j + 1 to n do
       begin
        x := (a[i].x + a[j].x) / 2;
        y := (a[i].y + a[j].y) / 2;
        a1 := a[i].y - a[j].y;
        b1 := a[j].x - a[i].x;
        c1 := a[i].x * a[j].y - a[i].y * a[j].x;
        a2 := -b1;
        b2 := a1;
        c2 := -(x * a2) -(y * b2);


        x := (a[l].x + a[j].x) / 2;
        y := (a[l].y + a[j].y) / 2;
        a1 := a[l].y - a[j].y;
        b1 := a[j].x - a[l].x;
        c1 := a[l].x * a[j].y - a[l].y * a[j].x;
        a3 := -b1;
        b3 := a1;
        c3 := -x * a3 -y * b3;
        a1 := a3;
        b1 := b3;
        c1 := c3;

        if (b2 * a1 - a2 * b1) <> 0 then y := (a2 * c1 - c2 * a1) / (b2 * a1 - a2 * b1)
        else if (b1 * a2 - a1 * b2) <> 0 then y := (a1 * c2 - c1 * a2) / (b1 * a2 - a1 * b2)
        else y := 0;

        if a1 <> 0 then x := -(b1 * y + c1) / a1
        else if a2 <> 0 then x := -(b2 * y + c2) / a2
        else x := 0;


        r1 := 100000000;
        for o := 1 to n do
          begin
           r2 := sqrt(sqr(x - a[o].x) + sqr(y - a[o].y));
           if r2 < r1 then r1 := r2;
          end;

        fl := 0;
        for o := 1 to n - 1 do
          begin
           a1 := ch[o].y - ch[o + 1].y;
           b1 := ch[o + 1].x - ch[o].x;
           c1 := ch[o].x * ch[o + 1].y - ch[o].y * ch[o + 1].x;
           if a1 * x + b1 * y + c1 < 0 then
             begin
              fl := 1;
              break;
             end;
          end;

           a1 := ch[n].y - ch[1].y;
           b1 := ch[1].x - ch[n].x;
           c1 := ch[n].x * ch[1].y - ch[n].y * ch[1].x;
           if a1 * x + b1 * y + c1 < 0 then
             begin
              fl := 1;
             end;



        if (r1 > r) and (fl = 0) then
          begin
           r := r1;
           xx := x;
           yy := y;
          end;
       end;
 writeln(r : 0 : 2);
 xx := xx + xt;
 yy := yy + yt;
 writeln(xx : 0 : 2, ' ', yy : 0 : 2);
end.

































