Pagini recente » Cod sursa (job #533644) | Cod sursa (job #899727) | Cod sursa (job #1064594) | Cod sursa (job #1004991) | Cod sursa (job #1046617)
#include<cstdio>
#include<cmath>
using namespace std;
int i,n,how,k;
double rat,mini,C[6],xs,ys,xp,yp,x[50009],y[50009];
int dx[]={-1,1,0,0};
int dy[]={0,0,-1,1};
double cost(double X,double Y)
{
int i;
double ras=(double)0;
for(i=1;i<=n;i++)
ras=(double)ras+pow((double)((double)X-x[i])*((double)X-x[i])+(double)((double)Y-y[i])*((double)Y-y[i]),0.4);
return (double)ras;
}
int main()
{
freopen("adapost2.in","r",stdin);
freopen("adapost2.out","w",stdout);
scanf("%d",&n);
for(i=1;i<=n;i++)
scanf("%lf%lf",&x[i],&y[i]);
xs=ys=0;
for(rat=1000;rat>=0.0000001;rat/=2)
{
how=4;
mini=cost(xs,ys);
for(k=0;k<4;k++)
{
xp=(double)xs+(double)dx[k]*rat;
yp=(double)ys+(double)dy[k]*rat;
C[k]=cost(xp,yp);
if(C[k]<mini)
{
mini=C[k];
how=k;
}
}
if(how==4) continue;
k=how;
xs=(double)xs+(double)dx[k]*rat;
ys=(double)ys+(double)dy[k]*rat;
i=0;
}
printf("%.4lf %.4lf\n",xs,ys);
return 0;
}