Pagini recente » Cod sursa (job #337293) | Cod sursa (job #2678110) | Cod sursa (job #3004440) | Cod sursa (job #2856175) | Cod sursa (job #1054627)
#include <fstream>
#include <math.h>
#include <iomanip>
#define maxxx 50010
using namespace std;
ifstream fin("adapost2.in");
ofstream gout("adapost2.out");
int n;
double x[maxxx], y[maxxx];
double minn = 200000000;
double fun(int i, int j)
{
double x1 = x[i]-x[j], y1 = y[i] - y[j];
return sqrt( x1 * x1 + y1 * y1);
}
double lungime(double a, double b)
{
double s0 = 0;
x[n + 1] = a; y[n + 1] = b;
for( int i = 1; i <= n; i++)
s0 += fun(i, n+1);
return s0;
}
int main()
{
int i;
double sxx = 0, syy = 0,eroare = 200;
fin>>n;
for( i = 1; i <= n; i++)
{
fin>>x[i]>>y[i];
sxx += x[i];
syy += y[i];
}
sxx /= n;
syy /= n;
while(eroare > 0.0005)
{
double f;
f = lungime(sxx + eroare, syy);
if( f < minn)
{
minn = f;
sxx += eroare;
}
f = lungime(sxx - eroare, syy);
if( f < minn)
{
minn = f;
sxx -= eroare;
}
f = lungime( sxx, syy + eroare);
if( f < minn)
{
minn = f;
syy += eroare;
}
f = lungime( sxx, syy - eroare);
if( f < minn)
{
minn = f;
syy -= eroare;
}
eroare = eroare / 2;
}
gout<<fixed<<setprecision(4);
gout <<sxx<<" "<<syy;
return 0;
}