Cod sursa(job #1046559)

Utilizator BarracudaFMI-Alex Dobrin Barracuda Data 3 decembrie 2013 09:19:20
Problema Adapost 2 Scor 5
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.81 kb
#include<cstdio>
#include<cmath>
#define dim 50006
using namespace std;


double x,y,Dabs,step;
int i,n;
struct {
double x,y;
}v[dim];
double Dist(double x,double y){
	double s=0;
	for(int i=1;i<=n;++i){
		s+=sqrt((x-v[i].x)*(x-v[i].x)+(y-v[i].y)*(y-v[i].y));
	}
	return s;
}
int main () {
	
	freopen("adapost2.in","r",stdin);
    freopen("adapost2.out","w",stdout);
	
	
	scanf("%d",&n);
	
	for(i=1;i<=n;++i) {
		scanf("%lf%lf",&v[i].x,&v[i].y);
		x+=v[i].x;
		y+=v[i].y;
	}
	
	step=200;
	Dabs=Dist(x,y);
	
	while(step>0.0001) {
		
		double dx[]={0,0,-step,step};
		double dy[]={-step,step,0,0};
		for(i=0;i<4;++i){
			if(Dist(x+dx[i],i+dy[i])<Dabs){
				Dabs=Dist(x+dx[i],y+dy[i]);
				x+=dx[i];
				y+=dy[i];
			}
		}
		step/=2;
	}
	
	printf("%.4lf %.4lf",x,y);
	return 0;
}