Pagini recente » Cod sursa (job #195675) | Cod sursa (job #2339406) | Cod sursa (job #3223252) | Cod sursa (job #1613018) | Cod sursa (job #762310)
Cod sursa(job #762310)
#include<fstream>
#include<iomanip>
#include<cmath>
using namespace std;
const double eps=0.0001;
int N,i;
double x[50005],y[50005],xx,yy,daux;
double verific(double midx,double midy){
daux=0;
for(i=1;i<=N;++i){
xx=x[i]-midx; yy=y[i]-midy;
xx*=xx; yy*=yy;
daux+=sqrt(xx+yy);
}
return daux;
}
int main(void){
ifstream fin("adapost2.in");
ofstream fout("adapost2.out");
int i;
double midx=0,midy=0,pasx,W,aux;
fin>>N;
for(i=1;i<=N;++i){
fin>>x[i]>>y[i];
midx+=x[i]; midy+=y[i];
}
midx/=N; midy/=N; pasx=512;
W=verific(midx,midy);
while(pasx>=eps){
if((aux = verific(midx+pasx,midy))<W){ midx+=pasx; W=aux; continue; }
if((aux = verific(midx,midy+pasx))<W){ midy+=pasx; W=aux; continue; }
if((aux = verific(midx-pasx,midy))<W){ midx-=pasx; W=aux; continue; }
if((aux = verific(midx,midy-pasx))<W){ midy-=pasx; W=aux; continue; }
pasx/=2;
}
fout<<setprecision(4)<<fixed;
fout<<midx<<' '<<midy<<'\n';
return 0;
}