Pagini recente » Cod sursa (job #2342064) | Cod sursa (job #1025358) | Cod sursa (job #1795761) | Cod sursa (job #746099) | Cod sursa (job #2592680)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("adapost2.in");
ofstream fout("adapost2.out");
int n;
double medx,medy,solpointx,solpointy,soldist;
int dx[4]={-1,0,1,0},dy[4]={0,1,0,-1};
struct coord
{
double x,y;
};
coord v[50005];
double dist(double a,double b,double c,double d)
{
return sqrt((a-c)*(a-c)+(b-d)*(b-d));
}
double distall(double x,double y)
{
double sum=0;
for(int i=1;i<=n;i++)
{
sum+=dist(x,y,v[i].x,v[i].y);
}
return sum;
}
int main()
{
fin>>n;
for(int i=1;i<=n;i++)
{
fin>>v[i].x>>v[i].y;
medx+=v[i].x;
medy+=v[i].y;
}
solpointx=medx/n;
solpointy=medy/n;
soldist=distall(solpointx,solpointy);
double step=256.0;
for(int i=1;i<=40;i++)
{
double nextstep=step*0.5;
double x=solpointx;
double y=solpointy;
for(int j=0;j<4;j++)
{
double xx=x+dx[j]*step;
double yy=y+dy[j]*step;
double auxdist=distall(xx,yy);
if(auxdist<soldist)
{
soldist=auxdist;
solpointx=xx;
solpointy=yy;
nextstep=step;
}
}
step=nextstep;
}
fout<<setprecision(4)<<fixed<<solpointx<<" "<<solpointy;
}