//Lib
#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<cmath>
#include<ctime>
#include<iostream>
#include<algorithm>
#include<vector>
#include<string>
#include<queue>
#include<stack>
#include<set>
#include<map>
using namespace std;
//Macro
#define rep(i,a,b) for(int i=a,tt=b;i<=tt;++i)
#define drep(i,a,b) for(int i=a,tt=b;i>=tt;--i)
#define erep(i,e,x) for(int i=x;i;i=e[i].next)
#define irep(i,x) for(__typeof(x.begin()) i=x.begin();i!=x.end();i++)
#define read() (strtol(ipos,&ipos,10))
#define sqr(x) ((x)*(x))
#define pb push_back
#define PS system("pause");
typedef long long ll;
typedef pair<int,int> pii;
const int oo=~0U>>1;
const double inf=1e100;
const double eps=1e-6;
string name="", in=".in", out=".out";
//Var
struct P
{
double x,y;
P(){}
friend P operator+(const P &a,const P &b)
{
P c;c.x=a.x+b.x;c.y=a.y+b.y;
return c;
}
friend P operator/(const P &a,const double &b)
{
P c=a;c.x/=b;c.y/=b;
return c;
}
}o,p[100008];
int n;
double r;
double Dis(P &x,P &y){return sqrt(sqr(x.x-y.x)+sqr(x.y-y.y));}
void Set(P &x,P &y,P &z)
{
double a1,b1,c1,a2,b2,c2;
a1=2*(x.x-y.x),b1=2*(x.y-y.y),c1=sqr(x.x)-sqr(y.x)+sqr(x.y)-sqr(y.y);
a2=2*(x.x-z.x),b2=2*(x.y-z.y),c2=sqr(x.x)-sqr(z.x)+sqr(x.y)-sqr(z.y);
o.x=(c1*b2-c2*b1)/(a1*b2-a2*b1);o.y=(c1*a2-c2*a1)/(b1*a2-b2*a1);
r=Dis(o,x);
}
void Work()
{
scanf("%d",&n);
rep(i,1,n)scanf("%lf%lf",&p[i].x,&p[i].y);
random_shuffle(p+1,p+1+n);
o=p[1];r=0;
rep(i,2,n)if(Dis(o,p[i])>r)
{
o=(p[i]+p[1])/2;
r=Dis(o,p[i]);
rep(j,1,i-1)if(Dis(o,p[j])>r)
{
o=(p[i]+p[j])/2;
r=Dis(o,p[i]);
rep(k,1,j-1)
if(Dis(o,p[k])>r)
Set(p[i],p[j],p[k]);
}
}
printf("%.10lf\n%.10lf %.10lf\n",r,o.x,o.y);
}
int main()
{
// freopen((name+in).c_str(),"r",stdin);
// freopen((name+out).c_str(),"w",stdout);
// Init();
Work();
return 0;
}
Ly9MaWIKI2luY2x1ZGU8Y3N0ZGlvPgojaW5jbHVkZTxjc3RyaW5nPgojaW5jbHVkZTxjc3RkbGliPgojaW5jbHVkZTxjbWF0aD4KI2luY2x1ZGU8Y3RpbWU+CiAKI2luY2x1ZGU8aW9zdHJlYW0+CiNpbmNsdWRlPGFsZ29yaXRobT4KI2luY2x1ZGU8dmVjdG9yPgojaW5jbHVkZTxzdHJpbmc+CiNpbmNsdWRlPHF1ZXVlPgojaW5jbHVkZTxzdGFjaz4KI2luY2x1ZGU8c2V0PgojaW5jbHVkZTxtYXA+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Ci8vTWFjcm8KI2RlZmluZSByZXAoaSxhLGIpICBmb3IoaW50IGk9YSx0dD1iO2k8PXR0OysraSkKI2RlZmluZSBkcmVwKGksYSxiKSBmb3IoaW50IGk9YSx0dD1iO2k+PXR0Oy0taSkKI2RlZmluZSBlcmVwKGksZSx4KSBmb3IoaW50IGk9eDtpO2k9ZVtpXS5uZXh0KQojZGVmaW5lIGlyZXAoaSx4KSAgIGZvcihfX3R5cGVvZih4LmJlZ2luKCkpIGk9eC5iZWdpbigpO2khPXguZW5kKCk7aSsrKQojZGVmaW5lIHJlYWQoKSAgKHN0cnRvbChpcG9zLCZpcG9zLDEwKSkKI2RlZmluZSBzcXIoeCkgICgoeCkqKHgpKQojZGVmaW5lIHBiICBwdXNoX2JhY2sKI2RlZmluZSBQUyAgc3lzdGVtKCJwYXVzZSIpOwp0eXBlZGVmIGxvbmcgbG9uZyAgIGxsOwp0eXBlZGVmIHBhaXI8aW50LGludD4gcGlpOwpjb25zdCBpbnQgb289fjBVPj4xOwpjb25zdCBkb3VibGUgaW5mPTFlMTAwOwpjb25zdCBkb3VibGUgZXBzPTFlLTY7CnN0cmluZyBuYW1lPSIiLCBpbj0iLmluIiwgb3V0PSIub3V0IjsKLy9WYXIKc3RydWN0IFAKewogICAgZG91YmxlIHgseTsKICAgIFAoKXt9CiAgICBmcmllbmQgUCBvcGVyYXRvcisoY29uc3QgUCAmYSxjb25zdCBQICZiKQogICAgewogICAgICAgIFAgYztjLng9YS54K2IueDtjLnk9YS55K2IueTsKICAgICAgICByZXR1cm4gYzsKICAgIH0KICAgIGZyaWVuZCBQIG9wZXJhdG9yLyhjb25zdCBQICZhLGNvbnN0IGRvdWJsZSAmYikKICAgIHsKICAgICAgICBQIGM9YTtjLngvPWI7Yy55Lz1iOwogICAgICAgIHJldHVybiBjOwogICAgfQp9byxwWzEwMDAwOF07CmludCBuOwpkb3VibGUgcjsKZG91YmxlIERpcyhQICZ4LFAgJnkpe3JldHVybiBzcXJ0KHNxcih4LngteS54KStzcXIoeC55LXkueSkpO30Kdm9pZCBTZXQoUCAmeCxQICZ5LFAgJnopCnsKICAgIGRvdWJsZSBhMSxiMSxjMSxhMixiMixjMjsKICAgIGExPTIqKHgueC15LngpLGIxPTIqKHgueS15LnkpLGMxPXNxcih4LngpLXNxcih5LngpK3Nxcih4LnkpLXNxcih5LnkpOwogICAgYTI9MiooeC54LXoueCksYjI9MiooeC55LXoueSksYzI9c3FyKHgueCktc3FyKHoueCkrc3FyKHgueSktc3FyKHoueSk7CiAgICBvLng9KGMxKmIyLWMyKmIxKS8oYTEqYjItYTIqYjEpO28ueT0oYzEqYTItYzIqYTEpLyhiMSphMi1iMiphMSk7CiAgICByPURpcyhvLHgpOwp9CnZvaWQgV29yaygpCnsKICAgIHNjYW5mKCIlZCIsJm4pOwogICAgcmVwKGksMSxuKXNjYW5mKCIlbGYlbGYiLCZwW2ldLngsJnBbaV0ueSk7CiAgICByYW5kb21fc2h1ZmZsZShwKzEscCsxK24pOwogICAgbz1wWzFdO3I9MDsKICAgIHJlcChpLDIsbilpZihEaXMobyxwW2ldKT5yKQogICAgewogICAgICAgIG89KHBbaV0rcFsxXSkvMjsKICAgICAgICByPURpcyhvLHBbaV0pOwogICAgICAgIHJlcChqLDEsaS0xKWlmKERpcyhvLHBbal0pPnIpCiAgICAgICAgewogICAgICAgICAgICBvPShwW2ldK3Bbal0pLzI7CiAgICAgICAgICAgIHI9RGlzKG8scFtpXSk7CiAgICAgICAgICAgIHJlcChrLDEsai0xKQogICAgICAgICAgICAgICAgaWYoRGlzKG8scFtrXSk+cikKICAgICAgICAgICAgICAgICAgICBTZXQocFtpXSxwW2pdLHBba10pOwogICAgICAgIH0KICAgIH0KICAgIHByaW50ZigiJS4xMGxmXG4lLjEwbGYgJS4xMGxmXG4iLHIsby54LG8ueSk7Cn0KaW50IG1haW4oKQp7Ci8vICBmcmVvcGVuKChuYW1lK2luKS5jX3N0cigpLCJyIixzdGRpbik7Ci8vICBmcmVvcGVuKChuYW1lK291dCkuY19zdHIoKSwidyIsc3Rkb3V0KTsKLy8gIEluaXQoKTsKICAgIFdvcmsoKTsKICAgIHJldHVybiAwOwp9