Pagini recente » Cod sursa (job #2303390) | Cod sursa (job #1381234) | Cod sursa (job #1049392) | Cod sursa (job #2950603) | Cod sursa (job #1970021)
#include <cstdio>
#include <cmath>
const double nul=0.0f;
const double eps=1e-5f;
double sx[50001], sy[50001];
struct Pozitie
{
double x, y;
};
Pozitie cort, delta;
int n;
inline double dist( double cx, double cy )
{
int i;
double s=nul;
for( i=1;i<=n;i++ )
s+=sqrt((cx-sx[i])*(cx-sx[i])+(cy-sy[i])*(cy-sy[i]));
return s;
}
int main()
{
freopen( "adapost2.in", "r", stdin );
freopen( "adapost2.out", "w", stdout );
int i;
double pas=250.0f;
scanf( "%d", &n );
for( i=1;i<=n;i++ )
{
scanf( "%lf%lf", &sx[i], &sy[i]);
cort.x+=sx[i];
cort.y+=sy[i];
}
cort.x/=(double)n;
cort.y/=(double)n;
while( pas>eps )
{
delta.x=(dist(cort.x+eps,cort.y)-dist(cort.x,cort.y))/eps;
delta.y=(dist(cort.x,cort.y+eps)-dist(cort.x,cort.y))/eps;
if( delta.x<nul )
cort.x+=pas;
else
cort.x-=pas;
if( delta.y<nul )
cort.y+=pas;
else
cort.y-=pas;
pas*=2.0f/3.0f;
}
printf( "%.4f %.4f", cort.x, cort.y );
return 0;
}