Pagini recente » Cod sursa (job #784033) | Cod sursa (job #2358218) | Cod sursa (job #902434) | Cod sursa (job #975622) | Cod sursa (job #1846000)
#include <iostream>
#include <cmath>
using namespace std;
const int Q=50007;
int n;
struct point
{
float x,y;
}v[Q];
float dist(float a, float b)
{
float rez=0;
for(int i=1; i<=n; i++)
{
rez+=sqrt((a-v[i].x)*(a-v[i].x) + (b-v[i].y)*(b-v[i].y));
}
return rez;
}
int main()
{
freopen("adapost2.in","r",stdin);
freopen("adapost2.out","w",stdout);
cin>>n;
float gx=0,gy=0;
for(int i=1; i<=n; i++)
{
cin>>v[i].x>>v[i].y;
gx+=v[i].x;
gy+=v[i].y;
}
gx/=n;
gy/=n;
float pas=1<<9;
float aux,dist_act=dist(gx,gy);
for(int tmp=1; tmp<=30; tmp++)
{
aux=dist(gx,gy+pas);
if(aux<dist_act)
{
gy+=pas;
dist_act=aux;
}
aux=dist(gx+pas,gy);
if(aux<dist_act)
{
gx+=pas;
dist_act=aux;
}
aux=dist(gx-pas,gy);
if(aux<dist_act)
{
gx-=pas;
dist_act=aux;
}
aux=dist(gx,gy-pas);
if(aux<dist_act)
{
gy-=pas;
dist_act=aux;
}
pas/=2;
}
printf("%.6f %.6f\n",gx,gy);
return 0;
}