TLE+WA
#include<bits/stdc++.h>
#define N 100005
#define down 0.996
#define eps 1e-15
#define double long double
using namespace std;
int n;
struct node{
double x,y;
}a[N];
double ansx,ansy,ansr;
double calc(double x,double y)
{
double ret = 0;
for(int i=1;i<=n;i++)
{
double dx = x-a[i].x;
double dy = y-a[i].y;
double dis = sqrt(dx*dx+dy*dy);
ret = max(ret,dis);
}
return ret;
}
void SA()
{
double T=2500;
while(T>eps)
{
double nex = ansx + (rand()*2-RAND_MAX)*T;
double ney = ansy + (rand()*2-RAND_MAX)*T;
double nw = calc(nex,ney);
double delta = nw-ansr;
if(delta<0)
{
ansx=nex; ansy=ney; ansr=nw;
}
else if(exp(-delta/T) * RAND_MAX > rand())
{
ansx=nex; ansy=ney;
}
T*=down;
}
}
int main()
{
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
scanf("%Lf%Lf",&a[i].x,&a[i].y);
ansx += a[i].x;
ansy += a[i].y;
}
ansx /= n; ansy /= n;
ansr = calc(ansx,ansy);
SA(); SA(); SA();
printf("%.10Lf\n",ansr);
printf("%.10Lf %.10Lf",ansx,ansy);
return 0;
}