Pagini recente » Cod sursa (job #1410179) | Cod sursa (job #2456869) | Cod sursa (job #2122964) | Cod sursa (job #851891) | Cod sursa (job #63487)
Cod sursa(job #63487)
#include<stdio.h>
#include<math.h>
#define epsilon 0.000001
double q,c,x[50001],y[50001],xg,yg,summ;
int i,n;
double suma(double xg, double yg)
{
double sum=0;
for(int i=1;i<=n;i++)
sum+=sqrt((x[i]-xg)*(x[i]-xg)+(y[i]-yg)*(y[i]-yg));
return sum;
}
int main()
{
freopen("adapost2.in","r",stdin);
freopen("adapost2.out","w",stdout);
scanf("%d",&n);
for(i=1;i<=n;i++){
scanf("%lf %lf",&x[i],&y[i]);
xg+=x[i];
yg+=y[i];
}
xg/=n;
yg/=n;
summ=suma(xg,yg);
c=100;
while(c-epsilon>0){
q=suma(xg+c,yg);
if(q<summ) {summ=q;xg=xg+c;}
q=suma(xg-c,yg);
if(q<summ) {summ=q;xg-=c;}
q=suma(xg,yg+c);
if(q<summ) {summ=q;yg+=c;}
q=suma(xg,yg-c);
if(q<summ) {summ=q;yg-=c;}
q=suma(xg+c,yg+c);
if(q<summ) {summ=q;xg+=c;yg+=c;}
q=suma(xg+c,yg-c);
if(q<summ) {summ=q;xg+=c;yg-=c;}
q=suma(xg-c,yg+c);
if(q<summ) {summ=q;xg-=c;yg+=c;}
q=suma(xg-c,yg-c);
if(q<summ) {summ=q;xg-=c;yg-=c;}
c/=2;
}
printf("%0.4lf %0.4lf\n",xg,yg);
return 0;
}