using namespace std;
#include<fstream>
#include<math.h>
#include<stdlib.h>
#include<time.h>
#define Nmax 50010
double x[Nmax],y[Nmax];
int N;
double dist(double X, double Y){
double ret = 0.0,dx,dy;
for(int i=0;i<N;i++){
dx = x[i] - X;
dy = y[i] - Y;
ret += sqrt(dx*dx + dy*dy);
}
return ret;
}
int main(){
ifstream fin("adapost2.in");
FILE *fout=fopen("adapost2.out","w");
fin>>N;
for(int i=0;i<N;i++)
fin>>x[i]>>y[i];
double X=0.0,Y=0.0,val,crt,aux,prec;
crt = dist(X,Y);
int care;
srand( time(NULL) );
for(int i=0;i<100;i++){
double xx,yy;
xx = (double) ((rand() % 1000) + 1);
yy = (double) ((rand() % 1000) + 1);
aux = dist(xx,yy);
if(aux < crt)
X=xx, Y=yy, crt=aux;
}
//1.00
prec = 1.0;
while(1){
care = 0;
val = crt;
aux = dist(X-prec,Y);
if(aux < val)
val = aux , care =1;
aux = dist(X,Y-prec);
if(aux < val)
val = aux , care =2;
aux = dist(X+prec,Y);
if(aux < val)
val = aux , care =3;
aux = dist(X,Y+prec);
if(aux < val)
val = aux , care =4;
if(val < crt){
crt = val;
if(care == 1)
X-=prec;
else
if(care == 2)
Y-=prec;
else
if(care == 3)
X+=prec;
else
Y+=prec;
}
else
break;
}
// fprintf(fout,"%.4f %.4f\n",X,Y);
prec = 0.1;
while(1){
care = 0;
val = crt;
aux = dist(X-prec,Y);
if(aux < val)
val = aux , care =1;
aux = dist(X,Y-prec);
if(aux < val)
val = aux , care =2;
aux = dist(X+prec,Y);
if(aux < val)
val = aux , care =3;
aux = dist(X,Y+prec);
if(aux < val)
val = aux , care =4;
if(val < crt){
crt = val;
if(care == 1)
X-=prec;
else
if(care == 2)
Y-=prec;
else
if(care == 3)
X+=prec;
else
Y+=prec;
}
else
break;
}
// fprintf(fout,"%.4f %.4f\n",X,Y);
prec = 0.01;
while(1){
care = 0;
val = crt;
aux = dist(X-prec,Y);
if(aux < val)
val = aux , care =1;
aux = dist(X,Y-prec);
if(aux < val)
val = aux , care =2;
aux = dist(X+prec,Y);
if(aux < val)
val = aux , care =3;
aux = dist(X,Y+prec);
if(aux < val)
val = aux , care =4;
if(val < crt){
crt = val;
if(care == 1)
X-=prec;
else
if(care == 2)
Y-=prec;
else
if(care == 3)
X+=prec;
else
Y+=prec;
}
else
break;
}
// fprintf(fout,"%.4f %.4f\n",X,Y);
prec = 0.001;
while(1){
care = 0;
val = crt;
aux = dist(X-prec,Y);
if(aux < val)
val = aux , care =1;
aux = dist(X,Y-prec);
if(aux < val)
val = aux , care =2;
aux = dist(X+prec,Y);
if(aux < val)
val = aux , care =3;
aux = dist(X,Y+prec);
if(aux < val)
val = aux , care =4;
if(val < crt){
crt = val;
if(care == 1)
X-=prec;
else
if(care == 2)
Y-=prec;
else
if(care == 3)
X+=prec;
else
Y+=prec;
}
else
break;
}
// fprintf(fout,"%.4f %.4f\n",X,Y);
prec = 0.0001;
while(1){
care = 0;
val = crt;
aux = dist(X-prec,Y);
if(aux < val)
val = aux , care =1;
aux = dist(X,Y-prec);
if(aux < val)
val = aux , care =2;
aux = dist(X+prec,Y);
if(aux < val)
val = aux , care =3;
aux = dist(X,Y+prec);
if(aux < val)
val = aux , care =4;
if(val < crt){
crt = val;
if(care == 1)
X-=prec;
else
if(care == 2)
Y-=prec;
else
if(care == 3)
X+=prec;
else
Y+=prec;
}
else
break;
}
fprintf(fout,"%.4f %.4f\n",X,Y);
fin.close();
fclose(fout);
return 0;
}