Pagini recente » Cod sursa (job #809749) | Cod sursa (job #487953) | Cod sursa (job #2149745) | Cod sursa (job #1398536) | Cod sursa (job #2283134)
#include<fstream>
#include<cmath>
using namespace std;
ifstream cin("adapost2.in");
ofstream cout("adapost2.out");
int n;
double v[50005][2],maxim=1e20,deplasare=100.0,x,y;
double dx[]={0,0,1,-1},dy[]={1,-1,0,0};
double dist(double x1,double y1,double x2,double y2){
double d1=x1-x2,d2=y1-y2;
return sqrt(d1*d1+d2*d2);
}
double sdt(double x,double y){
double sum=0.0;
for(int i=1;i<=n;i++)
sum+=dist(v[i][0],v[i][1],x,y);
return sum;
}
int main(){
cin>>n;
for(int i=1;i<=n;i++)
cin>>v[i][0]>>v[i][1];
while(deplasare>0.0001){
int keep=0;
for(int i=0;i<4;i++){
double sumtot=sdt(x+dx[i]*deplasare,y+dy[i]*deplasare);
if(sumtot<maxim){
maxim=sumtot;
x+=dx[i]*deplasare;
y+=dy[i]*deplasare;
keep=1;
break;
}
}
if(!keep)deplasare/=10.0;
}
cout<<x<<' '<<y;
}