Pagini recente » Cod sursa (job #1262194) | Cod sursa (job #3127703) | Cod sursa (job #1046260) | Cod sursa (job #1197581) | Cod sursa (job #1046497)
#include<fstream>
#include<iomanip>
#include<cmath>
#define maxn 50005
#define eps 0.0001
using namespace std;
ifstream fi("adapost2.in");
ofstream fo("adapost2.out");
double x[maxn],y[maxn],salt;
double px=0.0,py=0.0,q=0.0;
int i,n;
inline double dist(double a,double b){
double d=0.0;
for(int i=1;i<=n;i++)
d+=sqrt((x[i]-a)*(x[i]-a)+(y[i]-b)*(y[i]-b));
return d;
}
int main(){
fi>>n;
for(i=1;i<=n;i++) {
fi>>x[i]>>y[i];
px+=x[i];
py+=y[i];
}
px/=n; py/=n; q=dist(px,py); salt=500;
bool t;
while(salt>eps)
{
t=false;
if (dist(px,py+salt)<q) { py+=salt; q=dist(px,py); t=true; };
if (dist(px,py-salt)<q) { py-=salt; q=dist(px,py); t=true; };
if (dist(px+salt,py)<q) { px+=salt; q=dist(px,py); t=true; };
if (dist(px-salt,py)<q) { px-=salt; q=dist(px,py); t=true; };
salt/=2;
if(t)salt*=2;
}
fo<<fixed<<setprecision(4)<<px<<" "<<py;
fi.close();
fo.close();
return 0;
}