Cod sursa(job #1167778)

Utilizator nicolaetitus12Nicolae Titus nicolaetitus12 Data 5 aprilie 2014 21:58:31
Problema Adapost 2 Scor 66
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.75 kb
#include <iostream>
#include <math.h>
#include <fstream>
#define N 50001
double x[N];
double y[N];
int n;		

double dist(double ex, double ey)
{
	double ret = 0;
	for(int i=0;i<n;i++)
	{
		ret+=sqrt(pow(ex-x[i],2)+pow(ey-y[i],2));	
	}
	return ret;
}

int main ()
{
	std::ifstream  fin("adapost2.in");
	std::ofstream fout("adapost2.out");
	fin>>n;
	for(int i=0;i<n;i++)
	{
		fin>>x[i]>>y[i];	
	}
			
	double dx=0, dy=0;	
	double s=1000;			
	double imx=0, imy=0;	

	int ix,iy;
	while(s>0.00001)	
	{
		double min=123456789;
		for(ix=0;ix<=1;ix++)
		{
			for(iy=0;iy<=1;iy++)
			{
				double t = dist(dx+ix*s, dy+iy*s);		
				if(t<min)
				{
					min=t;
					imx=ix;
					imy=iy;		
				}			
			}
		}
		s/=2;
		dx+=s*imx;
		dy+=s*imy;
	}

	fout<<dx<<" "<<dy;	

	return 0;
}