Pagini recente » Cod sursa (job #1418170) | Cod sursa (job #625460) | Cod sursa (job #930650) | Cod sursa (job #1636051) | Cod sursa (job #762269)
Cod sursa(job #762269)
#include<fstream>
#include<iomanip>
#include<cmath>
using namespace std;
const double eps=1e-5;
int N;
double x[50005],y[50005],daux;
double dist(double x1,double x2,double y1,double y2)
{ double dx=x2-x1,dy=y2-y1;
return sqrt((dx*dx)+(dy*dy));
}
double verific(double midx,double midy){
daux=0;
for(int i=1;i<=N;++i)
daux+= sqrt((x[i]-midx)*(x[i]-midx) + (y[i]-midy)*(y[i]-midy));
return daux;
}
int main(void){
ifstream fin("adapost2.in");
ofstream fout("adapost2.out");
int i;
double xmax=-1,xmin=1001,ymax=-1,ymin=1001;
double midx,midy,pas;
fin>>N;
for(i=1;i<=N;++i)
fin>>x[i]>>y[i];
midx=0; midy=0;
for(pas=512;pas>=eps;pas/=2){
if(verific(midx+pas,midy)<verific(midx,midy)){ midx+=pas; pas*=2; continue; }
if(verific(midx,midy+pas)<verific(midx,midy)){ midy+=pas; pas*=2; continue; }
if(verific(midx-pas,midy)<verific(midx,midy)){ midx-=pas; pas*=2; continue; }
if(verific(midx,midy-pas)<verific(midx,midy)){ midy-=pas; pas*=2; continue; }
//pasx/=2;
}
fout<<setprecision(4)<<fixed;
fout<<midx<<' '<<midy<<'\n';
return 0;
}