{
TASK:ATOM
LANG:PASCAL
}

const
  infile = '';

  maxn = 101;

type
  tp = record x, y : double; end;

var
  f : text;

  rr : tp;
  cur, res, resx, resy : double;
  a1, a2, b1, b2, cc1, cc2, x1, x2, x3, y1, y2, y3 : double;
  c1, c2, c3 : integer;
  i, j, k, q, n, nh : longint;
  p : array[0..maxn] of tp;
  ac : array[0..maxn] of double;
  as : array[0..maxn] of integer;
  hull : array[0..maxn] of integer;

function dist(p1, p2 : tp) : double;
begin
  dist:=sqrt(sqr(p1.x-p2.x) + sqr(p1.y-p2.y));
end;

var dr, da, db, dc : double;
function dist2(p1, p2, pp : tp) : double;
begin
  da:=p1.y - p2.y;
  db:=p2.x - p1.x;
  dc:=-(da*p1.x + db*p1.y);
  dr:=da*pp.x + db*pp.y + dc;
  if dr > 0 then dist2:=1
  else if dr < 0 then dist2:=-1
  else dist2:=0;
end;

var y : integer;
procedure qsort(ll, rr : integer);
var
  l, r : integer; x : double;
begin
  l:=ll;
  r:=rr;
  x:=ac[as[(l+r) div 2]];
  repeat
    while ac[as[l]] < x do inc(l);
    while ac[as[r]] > x do dec(r);
    if l <= r then
    begin
      y:=as[l];
      as[l]:=as[r];
      as[r]:=y;
      inc(l);
      dec(r);
    end;
  until l > r;
  if l < rr then qsort(l, rr);
  if r > ll then qsort(ll, r);
end;

var t, tt : double;
  ii : integer;
function inside : boolean;
begin
  for ii:=2 to n do
  begin
    t:=dist2(p[as[ii]], p[as[ii-1]], rr);
    if dist2(p[as[ii]], p[as[ii-1]], rr) < 0 then
    begin inside:=false; exit; end;
  end;
  if dist2(p[as[1]], p[as[n]], rr) < 0 then inside:=false else inside:=true;
end;

function ismax : boolean;
begin
  for ii:=1 to n do
    if dist(p[ii], rr) < cur then begin ismax:=false; exit; end;
  ismax:=true;
end;

begin
  assign(f, infile);
  reset(f);
  readln(f, n);
  p[0].x:=9999999;
  p[0].y:=9999999;
  for i:=1 to n do
  begin
    readln(f, p[i].x, p[i].y);
    if (p[i].y < p[j].y)or((p[i].y = p[j].y)and(p[i].x < p[j].x)) then
      j:=i;
  end;
  close(f);

  as[1]:=j;
  k:=1;
  for i:=1 to n do
    if i <> j then
  begin inc(k); as[k]:=i; ac[i]:=(p[i].x - p[j].x) / dist(p[i], p[j]); end;

  qsort(2, n);

  for c1:=1 to n-2 do
    for c2:=c1+1 to n-1 do
      for c3:=c2+1 to n do
      begin
        x1:=p[as[c1]].x; y1:=p[as[c1]].y;
        x2:=p[as[c2]].x; y2:=p[as[c2]].y;
        x3:=p[as[c3]].x; y3:=p[as[c3]].y;

        b1:=y1 - y2;
        a1:=x1 - x2;
        cc1:=-(a1*(x1+x2)/2 + b1*(y1+y2)/2);

        b2:=y2 - y3;
        a2:=x2 - x3;
        cc2:=-(a2*(x2+x3)/2 + b2*(y2+y3)/2);

        if (a1*b2 - b1*a2) = 0 then rr.x:=(b1*cc2 - b2*cc1) / (a1*b2 - b1*a2 + 0.0000001)
        else rr.x:=(b1*cc2 - b2*cc1) / (a1*b2 - b1*a2);
        if b2 = 0 then rr.y:=-(cc2 + a2*rr.x) / (b2 + 0.0000001)
        else rr.y:=-(cc2 + a2*rr.x) / (b2);

        cur:=sqrt(sqr(rr.x-x1) + sqr(rr.y-y1));
//        writeln(cur:0:2);

        if cur > res then
          if inside then
            if ismax then
            begin
              res:=cur;
              resx:=rr.x;
              resy:=rr.y;
            end;
      end;

  writeln(res:0:2);
  writeln(resx:0:2, ' ', resy:0:2);
end.
