Pagini recente » Cod sursa (job #420205) | Cod sursa (job #601176) | Cod sursa (job #502705) | Cod sursa (job #421316) | Cod sursa (job #2618073)
#include<fstream>
#include<cmath>
#include<iomanip>
#define eps 0.001
using namespace std;
ifstream f("adapost2.in");
ofstream g("adapost2.out");
struct punct
{
double x,y;
};
punct v[50002],sol;
int n,dx[]={0,1,0,-1,0},dy[]={0,0,1,0,-1};
inline double dist(double x,double y)
{
int i;
double d=0;
for(i=1;i<=n;i++)
d+=sqrtl((max(x,v[i].x)-min(x,v[i].x))*(max(x,v[i].x)-min(x,v[i].x))+(max(y,v[i].y)-min(y,v[i].y))*(max(y,v[i].y)-min(y,v[i].y)));
return d;
}
int main()
{
int i;
double pas,d,x;
f>>n;
for(i=1;i<=n;i++)
f>>v[i].x>>v[i].y;
sol.x=500;
sol.y=500;
pas=500;
d=dist(sol.x,sol.y);
while(pas>=eps)
{
for(i=1;i<=4;i++)
{
x=dist(sol.x+pas*dx[i],sol.y+pas*dy[i]);
if(x<d)
{
d=x;
sol.x+=pas*dx[i];
sol.y+=pas*dy[i];
}
}
pas/=2;
}
g<<fixed<<setprecision(4)<<sol.x<<" "<<sol.y;
return 0;
}