Pagini recente » Cod sursa (job #2839205) | Cod sursa (job #798489) | Cod sursa (job #1465052) | Cod sursa (job #1859470) | Cod sursa (job #1044074)
#include<iostream>
#include<cstdio>
#include<cmath>
#define eps 0.0000001
using namespace std;
typedef struct un_punct
{
double x;
double y;
}punct;
punct p[50000];
double distanta(double x1, double y1, double x2, double y2)
{
return sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1));
}
int main()
{
FILE *fin, *fout;
fin=fopen("adapost2.in","r");
fout=fopen("adapost2.out","w");
int n, aux, i, j;
double a, b, pas,s, pa, pb, smin=1000000;
fscanf(fin, "%d", &n);
for(i=0; i<n; i++)
{
fscanf(fin, "%lf %lf", &p[i].x, &p[i].y);
}
a=p[0].x;
b=p[0].y;
pas=1000;
while(pas>0.0001)
{
double da[]={pas, -pas, 0, 0};
double db[]={0, 0, pas, -pas};
aux=-1;
for(j=0; j<4; j++)
{
pa=a+da[j];
pb=b+db[j];
s=0;
for(i=0; i<n; i++)
{
s+=distanta(pa, pb, p[i].x, p[i].y);
}
if(s<smin)
{
smin=s;
aux=j;
}
}
if(aux!=-1)
{
a=a+da[aux];
b=b+db[aux];
}
pas/=2;
}
fprintf(fout, "%lf %lf", a, b);
}