Pagini recente » Cod sursa (job #2282659) | Cod sursa (job #1543970) | Cod sursa (job #3001400) | Cod sursa (job #678922) | Cod sursa (job #2285096)
#include <stdio.h>
#include <math.h>
#define NMAX 55555
#define eps 1e-10
double X[NMAX], Y[NMAX], Xi, Yi, D;
int N;
double dist(double x1, double y1, double x2, double y2)
{
return sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
}
int main()
{
int i;
double d, s, xi, yi;
freopen("adapost2.in", "r", stdin);
scanf("%d", &N);
for (i = 0; i < N; i++)
{
scanf("%lf %lf", X+i, Y+i);
Xi += X[i]; Yi += Y[i];
}
Xi = Xi/(double)N; Yi = Yi/(double)N;
for (i = 0; i < N; i++)
d += dist(Xi, Yi, X[i], Y[i]);
while (fabs(d-D) > eps)
{
D = d;
s = 0;
xi = Xi; yi = Yi;
Xi = Yi = 0;
for (i = 0; i < N; i++)
{
d = dist(xi, yi, X[i], Y[i]);
Xi += X[i]/d;
Yi += Y[i]/d;
s += (1.0/d);
}
Xi /= s; Yi /= s;
d = 0;
for (i = 0; i < N; i++)
d += dist(Xi, Yi, X[i], Y[i]);
}
freopen("adapost2.out", "w", stdout);
printf("%.4lf %.4lf\n", Xi, Yi);
return 0;
}