Pagini recente » Cod sursa (job #1536050) | Cod sursa (job #1713043) | Cod sursa (job #972092) | Cod sursa (job #971043) | Cod sursa (job #1060940)
#include <cstdio>
#include <cstdlib>
#include <cmath>
#include <algorithm>
using namespace std;
const int NMAX = 50010;
const double EPS = 1e-4;
const int DX[4] = {-1, 0, 0, 1};
const int DY[4] = {0, -1, 1, 0};
int N;
double X[NMAX], Y[NMAX], AnsX, AnsY;
double TotalDist(double PX, double PY)
{
double Ans = 0;
for(int i = 1; i <= N; ++ i)
Ans += sqrt((PX - X[i]) * (PX - X[i]) + (PY - Y[i]) * (PY - Y[i]));
return Ans;
}
int main()
{
freopen("adapost2.in", "r", stdin);
freopen("adapost2.out", "w", stdout);
scanf("%i", &N);
for(int i = 1; i <= N; ++ i) scanf("%lf %lf", &X[i], &Y[i]);
double NowDist = TotalDist(AnsX, AnsY);
for(double Step = 512; Step > EPS; Step /= 2)
for(int i = 0; i < 4; ++ i)
{
double NX = AnsX + Step * DX[i], NY = AnsY + Step * DY[i];
if(TotalDist(NX, NY) < NowDist)
{
NowDist = TotalDist(NX, NY);
AnsX = NX;
AnsY = NY;
Step *= 2;
break;
}
}
printf("%lf %lf\n", AnsX, AnsY);
}